Ray Tracing Is No New Thing
bytecellar.com
bytecellar.com
if by "new" you mean well over a decade old...
The post does cover the history but it is a response to coverage like this: "...a new graphics rendering technique called ray tracing."
I consider this 3d rendering as a spectrum: rasterization requires little computation but has little to do with physics. Ray tracing is what requires a lot of computation and has everything to do with physics. Somewhere in between are hybrid methods: rasterization with ray tracing components added to it, or ray tracing with approximations.
For instance, pure rasterization cannot do shadows. It is approximated by rendering the scene from the viewpoint of a light and test the rasterized scene for occlusions casting shadows. And the other way around: real time ray tracing cannot compute all indirect lighting paths, a subset is only considered at the cost of e.g. variance.
I think ray tracing is at best an ad-hoc model for light that produces nice results, but physically based it isn't.
(You could do something that uses ray tracing to determine what's visible and what isn't and radiosity to determine the colour, but that's an entirely different story).
I mean, unless you're expecting them to calculate absorption/re-emission at every bounce...
It still seems pretty "physical" to me.
However, Physics knows since the end of the 18th century light is a wave.
https://en.wikipedia.org/wiki/Young%27s_interference_experim...
It's not that the model breaks down only in extreme conditions (like Newton's laws of mechanices), but in day to day situations as well.
I think that's the essence of my qualm.
Physicists still rely on snells law. Optics courses still includes path tracing when studying refraction and dielectrics.
Excluding the particle behavior of light just because the wave nature exists, is not something a physicist would do.
Are you purporting that photon streams don't follow a ray? And when they interact with a surface they don't obey Snells law? And when you look at the interface between mediums a percentage of the intensity is transmitted and the remainder is reflected (the ratio of which is determined by the angle of incidence?)
Usually all of that is smoothed over by light sources being extended sources not points, so the interference contrast is lost by infinitely many interference patterns being overlaid incoherently. Also, almost all light sources (except for rlasers) have microseconds of coherent emission, so the pattern changes so fast it blurs into a regular blurry edge of shadow.
I can only think of some very special situations where some blinds select a very narrow angular range of sunlight and then you see interference fringes in the shadow.
Or when you look into a puddle with an oil film or at some sort of diffraction grating or holographic film (which can be predicted with ray-based methods, like Wigner-distribution based ray-tracing, though that still comes with some error at large angles).
Even in laser optics, 95% of the optics design is done with geometrical optics methods, because the rays you use can be related to the phase profile of the radiation in the system. You can then integrate (with rays) the diffraction pattern (but not as well in the shadow of apertures ofc).
is a pretty one.
Well... the technique that you describe (shadow mapping) is actually pure rasterization it just requires more than one rasterization pass. This also ignores the fact that there are other techniques for getting shadows in rasterizing renderers (stencil volumes and other stuff that is rather considered historical today).
I get your point that rasterization doesn't support shadows "naturally" like ray tracing, but in my opinion your wording and the example is rather unfortunate. The same goes for reflections, I would say SSS or caustics probably are better examples since they are really only done with techniques based on ray tracing.
Games these days implement SSS in screen space using rasterisation, no rays tracing either.
Light transport, shading, shadowing are all just implemented on top and not a direct result of the visibility calculation.
Ray tracing, on the other hand, has always been about (forward or backward) rays of light propagating through object space. It wasn't about light transport in the early days (just visibility and shading, based on simple models like Phong) but it is very well-suited to modelling transport, because it addresses the notion of fully-spatial rays in object space.
Writing a physically based (light transport)renderer which was internally based purely on rasterization to rectangular images would be an odd choice, partly because many of the intermediate images would be have to somehow be parameterized to represent locations on a hemisphere, etc.
I'm open to correction on this, but rasterization algorithms are really tied to projections onto a rectilinear grid, orthographic or perspective. Ray-tracing doesn't need to assume/know about this raster grid idea and as a result can be used with other geometries. This makes it strictly more powerful than rasterization. This kind of thing, for example: https://www.glassner.com/computer-graphics/graphics-research... is a very bad fit for polygon rasterizers because each triangle is going to be warped in image space.
Just what that "orthogonal" means is a bit mysterious, but their project seems to be to generalize rasterization further than they've got in this paper: "we aim for further generalization, in particular, a parameterization which allows for incremental computation, not only for the ray direction, but also the ray origin"
For example if all you need are shadows cast from a point light source, a rasterization technique like stencil shadows will give you the same exact result as simple raytracing, and neither will be physically correct.
It is just that depending on your rendering time budget, some things are better done with rasterization and others are better done with raytracing. Real time engines, with simplified models typically work better with rasterization, while precalculated scenes, with more realistic models work better with raytracing.
Is it industry hurting to make the GPU they sell have any exposed new capability, other than making the same old thing slightly faster?
It is up to the other vendors to produce their own hardware and respective OpenGL/Vulkan extensions.
And maybe Khronos eventually gets to standardize them.
Basically I am interested in the Cost of such Direct X RT implementation. And what sort of time frame could we see these on the market.
Since AMD continues to hold console developers with their semi-custom chips, this is only likely to impact a limited set of titles in the near future.
We're probably nowhere close to getting real-time Pixar-quality rendering in our games right now, but we've definitely made leaps and bounds over the last few decades.
We'll never be close to getting today's real-time Pixar-quality until Pixar rendering is good enough that they stop meaningfully improving it. What we can have is yesterday's Pixar quality rendering in-game.
(Note: I know offline rendering and real-time raster rendering we use in GPU's are completely different methods. But there is a point where the raster trickery can catch up and match the offline stuff.)
REYES really is an early take on rasterization with tesselation, designed for hardware with extreme memory constraints. Although the actual tesselation algorithm works differently from GPU hardware tesselation, the basic idea of tesselating dynamically to the required level of detail for the current frame carried over intonthe hardware.
Well, they do, you just have to look back X years depending on your criteria. Look at modern in game graphics v PSX cinematics for instance. It's not even close.
The only tip-off I had that (some of) Nier Automata's cutscenes are pre-rendered was the drop to 30fps...
So, ray tracing. It’s a rendering technique that has been around for over 45 years. It’s nothing new. Finally seeing the benefits of this technology enhance the environments in our games and VR worlds — in real time — thanks to a new API and dedicated consumer hardware, that’s the New Thing.