pouët.net

John carmack plans to switch to realtime raytracing...

category: general [glöplog]
at least carmack did not fall for the usual RTRT si teh futura crap as Intel promotes it.. so anything sane he has to tell the world is basically good!

apart from that i don't get his vision of using octrees yet.. of course octrees are cool as you can use a lot of fast tricks related to regular grids (hierarchy construction, etc) and they also have a pretty small memory footprint.. maybe it's really all about some help with dedicated hardware at the end to really determine the RT data structures of the future?!
(i'm all in for BVHs at the moment, so sorry, no kD or other spatial subdivisions for me anymore :))
added on the 2008-03-14 10:21:44 by toxie toxie
after reading the stuff again, i maybe understood his vision now: just wait until all geometry is so highly detailed that you just store everything in voxels.. sounds reasonable and future proof..
added on the 2008-03-14 10:29:01 by toxie toxie
btw: anyone got some cool links that -really- describes the mega-texture stuff in rage?
added on the 2008-03-14 10:36:52 by toxie toxie
Quote:

In the end I think the fact that he choses voxels over kd-trees isnt a question of why he think voxels are better for doing surfaces but what else he intends to do with them that he isnt saying in an open forum...


I think you're mixing up 2 very different things: the acceleration structure and the data it contains...
added on the 2008-03-14 10:41:05 by nystep nystep
he explicitly mentions the whole dataset stored this way being smaller than the triangle (list) representation he needs for rasterization. which kind of implies that it's not an acceleration structure tacked onto a triangle list.
added on the 2008-03-14 11:16:22 by ryg ryg
so... when is John *G0D* Carmack invited to breakpoint ?! :p
added on the 2008-03-14 11:24:58 by Zest Zest
nystep,

as ryg points out, this isnt an acceleration structure for triangles, this is a true voxel data set: at least thats hpow I read the article. I'm not mixing anything : you are.
added on the 2008-03-14 11:29:24 by auld auld
auld,

i never said JC would raytrace triangles... don't make me say what i havent...
added on the 2008-03-14 11:49:25 by nystep nystep
aha, so you propose kd-trees for voxel data?
added on the 2008-03-14 11:53:23 by auld auld
if you think you can raytrace only triangles when using kd-trees, YOU are mixing up things :)
added on the 2008-03-14 11:53:32 by nystep nystep
auld, to be more exact, i proposed kd-trees for point cloud data. :) that's it.
added on the 2008-03-14 11:54:10 by nystep nystep
ok so fine thats clear now...yet I still dont see any advantage a kd-tree offers for things like water or smoke or in a dynamic scene...perhaps you do?
added on the 2008-03-14 12:02:56 by auld auld
why do you talk about dynamic scenes :) i only said it was good to use it for what it's best at: static scenes...
added on the 2008-03-14 12:16:24 by nystep nystep
dynamic because hes moving through a world which is too large to hold all at once so parts are paged in...not dynamic as in things move but dynamic as in he needs to hold only parts of the world at one time and very quickly page in other parts...
added on the 2008-03-14 12:35:42 by auld auld
Zest: as soon as he makes a good game.
added on the 2008-03-14 12:50:33 by Gargaj Gargaj
Gargaj : so you're serious, and all ? :) Come on, have you never had fun while fragging some friends in a random Quake arena, everyone flying like fools through cyberspace in a jumper-pad'n rocket-launcher frenzy ?
added on the 2008-03-14 13:04:15 by TomS4wy3R TomS4wy3R
*manly voice* GORE ! BITTERMAN ! ORB ! LUCY ! ANARCHY ! SLASH ! :D

...now you remember ?
added on the 2008-03-14 13:05:51 by TomS4wy3R TomS4wy3R
Its also interesting that while David Kirk is playing down raytracing, the board of NVidia authorises the purchase of Mental Images, famous for its Mental Ray raytracer. So Nvidia bought, what is essentially a successful raytracing rendering company? Anyone have any insight why?
added on the 2008-03-14 13:16:06 by auld auld
so... when does Intel buy NVidia ?
added on the 2008-03-14 13:28:26 by Zest Zest
tom: i have never played Q3 (literally), played Q2 and Q1 in single player for the first level. i generally consider the quake-series subpar compared to other games at their times, and they caused the gaming business to go to shit.
added on the 2008-03-14 13:50:13 by Gargaj Gargaj
nystep, point cloud is just another assumption.

but discussing the data structure without knowing what he actually does with it is utterly pointless.
added on the 2008-03-14 13:53:13 by ryg ryg
the beauty of octrees is that if you use split in the middle, you only need 4 bytes per node, what is quite cool taking into account that you have 8 children; it's a small overhead compared to the usual 8 bytes per node of kdtrees for only two children. Also, sorting the children depending on the ray direction is very easy (just need some bit operations, and can probably be done without branching, or even LUTed).

I'm still fan of kdtrees, it's the most natural for me (and they adapt better to geometry than octrees), plus traversal is really simple. Even for huge voxel worlds where you have to page, it's all mostly static, paging doesn't really have an influence on the fact you can precompute your tree. And for dynamic (deformable) subvoxels, one can use bih.

added on the 2008-03-14 13:57:21 by iq iq
My two cents:

About Carmack's "vision"... the voxlap kind of dream is almost as old as the "raytracing is tha futura"...

For me, personally, the advantages of raycasting approaches (of tris, or sparse voxels) as standard rendering technique over rasterization are:
1. rendering massive models (what is not the case in games)
2. easy special ffx development (shadows, gi, etc)

1 just doesn't hold for games. 2, the goal of casting rays is to have elegant implementation pf shadows or gi, but for that we still need lot of rays, and so to improve the raycasting speed by say 25. One can argue that in the beginning shadowmaps and ssao could be used, but then why would anyone change it's current rendering framework to get "the same" as they do today...

In the other hand, hybrid approaches (like having a cast() function in GLSL) needs could be done if for each static VBO the card holds an acceleration structure. Then the raycast could only be local to the object, or a few "raycastSamplers" could be bound to the shader (as one bounds textures) and the cpu could decide to bound the closest objects only to overcome the locality of the raycast. Still cost would be linear on the amount of object (and log in the number of tris for each object). But it could be a first step. Anyway, I would be surprised if nVidia's movement go into that direction, perhaps the bought Mentalimages just to show "we are powerful".
added on the 2008-03-14 14:07:48 by iq iq
iq,

re: buy to show we are powerful. This doesn't happen. Purchases like this are examined deeply over many months and a solid, very solid, business case has to be presented to share holders. You cant just do it to show off. That said I dont mean to imply that Nvidia must now be doing raytracing but theres no way they bought Mental Images just because they could.
added on the 2008-03-14 14:13:18 by auld auld
ok, now it reached the brain, i mixed up voxels and point clouds. /me goes to hide under the desk now.
added on the 2008-03-14 14:19:35 by nystep nystep

login