Game graphics superheroes bring some sense into future of real-time
I'm glad that Carmack spoke out on ray-tracing for real-time. More precisely against the approach that Intel as been semi-officially following.
Shooting at triangle soups with cosmic rays is hardly efficient.
Predictably, Carmack has mentioned a possible evolution from 3D worlds made of very many unique texels to 3D worlds made of very many unique texels in 3D space.. basically voxels in sparse matrices (using run length compression for hollow spaces inside objects (assuming that one doesn't want to render actual solids 8)).
Using voxels (in sparse matrices) is definitely attractive, but the transition from 2D textures isn't so straightforward. Good resolution textures are only efficient because of mip-mapping. Mip-mapping is largely based on a static pre-process (creating smaller resolution copies of a texture).
When animating a model, one easily moves vertices that define polygons, while the heavy details are in textures that are based on static mip-maps.
If polygons go away, and there are only voxels (fat points) available, one would still need to do subsampling somehow, depending on the size of an object.. or else aliasing artifacts and terrible cache trashing would become major problems.
Anyway, today (Saturday) I went to work and I started writing a software renderer.. nothing new, and very very basic so far (one point per vertex !), but it's a good time to start, especially now with that I have a better understanding of hardware shaders.
..I think I agree on software renderers having a future, but I'll write more on that later.
zzzzzzzzzzz


Never mind my comment about
Never mind my comment about which links Carmack was talking about ... 8P It looks like the past is once again becoming the present. Perhaps we can share some tech notes on our efforts. ;-)
Back to the present
moo.. I think the past never went away. Hardware still has to be programmed.
Every time there is a bus and an API somewhere, there are some optimizations that can be done only by getting rid of one or the other, or both 8)
hhmmm..... software
hhmmm..... software renderer.... good luck with that!!!
..it has always been my
..it has always been my speciality after all. I certainly prefer to be able to optimize anything I want, rather than having to try guess the fastest path in a driver for a certain hardware.
The big problems with software rendering are CPU's lack of sheer horsepower, combined with lack of vector instructions and lack of dedicated texture sampler. Though, I'm not sure exactly why a CPU with dedicated vector instructions (like MMX or SSE2) can't keep up with a dedicated texture sampler.. I'd think it's more of a memory layout issue (use mipmaps and swizzle so that nearby texels fall in the same cache line even if by near it measn those below and not just those at the right).
I guess it's kind of the
I guess it's kind of the same for 2D games (and graphics). About 10 years ago it seemed that 2D would die off when 3D started become the next big thing, but looking at everything know, there's still a lot of life left with 2D stuff ... After reading and listening to some of Carmack's comments, I was convinced that some of the stuff about ray tracing might just not yet be ready for prime time. But if (somehow) Intel manages to build hardware that's fast and cheap enough, they could still push things in a different direction.
Of course, none of these advancements do too much for game design and gameplay ... but it's not games we're talking about here ... just pure graphics and rendering .. 8P
In the end 3D in games is
In the end 3D in games is only a way to generate more dynamic 2D display 8)
In the end it all combines!
In the end it all combines!
Aaaaaaaah ... the power of
Aaaaaaaah ... the power of planar projections!!! 8P
From a philosophical point
From a philosophical point of view, Microsoft's Talisman was quite interesting.
A bit too hacky.. but shows that there is a billion things one can still do.
Optimizing keeping animation in mind for example sounds unreliable for double buffering, but starts making more sense for triple buffering because often drastic changes are due to camera cuts, which don't happen at every frame. So one can expect to economize by taking advantage of animation coherence while being ready to spend a whole extra frame for when a camera cut happens.
curved ray tracing
Hey i liked your articles, though i must admit its too complex for me.
(i am not math guy nor programer)
I had this idea about raytracing.
well it apears its not that original, people are already doing staff what i proposed.
but still if you would have any coments on my thoghts, i would be glad to get a coment :)
best,
m.
http://3dideas.wordpress.com/2008/01/31/hello-world/
Congratulations... your
Congratulations... your calligraphy is worse than mine (but only slightly so 8)
If you want more people to be interested, I'm afraid that you'll have to try implement your idea somehow. Implementing in this case is the hard bit, I don't think it's fair to hope that somebody else will do it for you ;)
Or at the very least you should develop your idea better (with some actual proper drawing that doesn't require too much guessing).
Now, about curving rays, this is nothing new really. Light does change direction all the time depending on which material it travels through. This is easily identifiable with caustics which are well in use by the more advanced ray tracers.. ..unless you were trying to do something different ?
curved rays.
Heheheh, thanks for caligraphy compliment :)
yeh, i know ..implimentation... though, no way, i guess it will remain crapy pictures :(
its like asking a poet to wrote c++, u know :) so...
and u are right in one hand we can say that its already done, as u sed when ray goes thrugh diferent surfaces..
but thats standart in all 3d raytracers/renderers for meny years i guess now...
and my idea is to make it much more complex.
But even that seems to be implimented, here:
http://www.hakenberg.de/diffgeo/special_relativity.htm
its much more like what i thoght of doing, but its main intention its to do this releativity theory stuff, like when light rays are destorted by gravity and stuff... so its kind of scientifick aprouch to curved raytracing.
and mine was esentily the same only aplication i was thinking is to get distorted image, as an affect, distorted and curvy shadows and stufff... well i think i explaned it in my blog quite good, though lots of text :)
and no actual prototype, so i guess it will remain under category "craizy 3d ideas" :)
thanks for reply,
best,
m.
Post new comment