What's ray marching?
Ray-tracing lite.
The Order has Ray-tracing?Huh? What are you talking about. It's not ray-tracing 'lite". It's more like ray-tracing 'uber'. For every ray cast, you are stepping along that ray in small steps seeing what's in shadow and what isn't -- accumulating opacity as you go. It's extremely expensive -- more so than just regular ray tracing.
Huh? What are you talking about. It's not ray-tracing 'lite". It's more like ray-tracing 'uber'. For every ray cast, you are stepping along that ray in small steps seeing what's in shadow and what isn't -- accumulating opacity as you go. It's extremely expensive -- more so than just regular ray tracing.
Ray casting, ray tracing and ray marching all tend to be used interchangeably as a generalists catch-all term for a rendering process which relies on computed lines of intersection, but there are subtle distinctions implied when speaking precisely.
Ray casting is a process where points of intersection with a line are computed analytically, using formulas of intersection.
Ray marching is a specific algorithm, a variant on ray casting where samples are taken down a line to test for intersections or other criteria. This is easier to implement and allows for speed optimizations via number of samples, but is not as precise even when large numbers of samples are used.
Ray tracing is a more complex series of tasks which uses ray casting and/or ray marching to compute not only the point of intersection between origin and object surface (or voxel cell etc) but which iteratively computes secondary and tertiary rays, which can be used to collect data used typically (but not exclusively) for calculation of reflected or refracted light.
In like-for-like purposes, not really. The equivalent "non discrete steps" approach for ray-sampled scattered volumetric lighting would be to calculate where a cast ray will intersect the next ray volume edge (instead of sample point tests to see whether you're inside or outside); the resulting data would permit results that are more precise than what Lords of the Fallen is doing.Huh? What are you talking about. It's not ray-tracing 'lite". It's more like ray-tracing 'uber'. For every ray cast, you are stepping along that ray in small steps seeing what's in shadow and what isn't -- accumulating opacity as you go. It's extremely expensive -- more so than just regular ray tracing.
In like-for-like purposes, not really. The equivalent "non discrete steps" approach for ray-sampled scattered volumetric lighting would be to calculate where a cast ray will intersect the next ray volume edge (instead of sample point tests to see whether you're inside or outside); the resulting data would permit results that are more precise than what Lords of the Fallen is doing.
No, I'm responding to your claim that ray marching is ray tracing uber.What are you talking about exactly? Are we discussing the Order's approach to volume lighting compared to Lords of the Fallen for which one is superior?
I did a quick google and this came up:
No, I'm responding to your claim that ray marching is ray tracing uber.
You argued that point by comparing sampling a bunch of points on a ray going in and out of light volumes, to calculating where a ray intersects opaque geometry. I responding by pointing out that that's not a like-for-like task; a better comparison would be with a ray-casting method that calculates where the cast ray intersects the boundaries of the light volumes.
If you're running something only once in the ray-cast case, then you're obviously carrying out a very different task than in the marching case. We're talking about cases where the two approach are used for similar things.Not only would you have to test for intersections but you'd have to compute the color/opacity of each step along the ray by stepping through the volume to get the overall color of that pixel. In essence, calling the shader several more times per ray.
If you're running something only once in the ray-cast case, then you're obviously carrying out a very different task than in the marching case. We're talking about cases where the two approach are used for similar things.
You seem to be thinking of this distinction:
We're talking about this distinction:
Nobody here is talking about ray tracing as the full process of rendering out opaque geometry; they're talking about the ray trace itself, as in the method of calculating where a ray intersects a piece of geometry. How that technique is applied to what part of the rendering process is left unspecified in the term "ray tracing", in this conversation.No. I'm not talking about the best optimal way to ray march.
I'm talking about ray marching vs ray tracing. In your drawn out examples.. ray tracing would be the upper right. Fire a ray, hit something, evaluate a shader, and return the color. Done.
I didn't leave out anything; the lower right image represents what people mean by "ray tracing" for the same task that "ray marching" would be applied in the context of this sort of volumetric lighting*. If the polygon represents a slice of a light volume, the "ray tracing" method would calculate where it enters and leaves the light volume and use that information to figure the amount of scattered light it should be seeing. Meanwhile, the left side image (top and bottom) would show something more like what Lords of the Fallen is doing with ray marching; sample regularly along the ray to see whether the ray is currently inside or outside a light volume. Same basic goal, but determining "in volume" and "outside of volume" using somewhat different techniques.I'm talking about the lower right image ( btw, you left out marching from the start to the end point for that polygon)
I didn't leave out anything; the lower right image represents what people mean by "ray tracing" for the same task that "ray marching" would be applied in the context of this sort of volumetric lighting*.[/b] If the polygon represents a slice of a light volume, the "ray tracing" method would calculate where it enters and leaves the light volume and use that information to figure the amount of scattered light it should be seeing. Meanwhile, the left side image (top and bottom) would show something more like what Lords of the Fallen is doing with ray marching; sample regularly along the ray to see whether the ray is currently inside or outside a light volume. Same basic goal, but determining "in volume" and "outside of volume" using somewhat different techniques.
Forums > Embedded 3D Forums > Console Forums > Console GamesTaking game implementations out of the discussion
Which you've mostly supported as being more expensive courtesy of the sorts of tasks that you might do at each step (i.e. generate new rays based on atmospheric properties). That might make ray marching a more natural fit for more-expensive algorithms in offline renderers, but it's not a strong argument that ray marching is more expensive in and of itself.ray-marching is more expensive than just ray-tracing as you would not only have to trace a ray, but also march through a volume.
This...Forums > Embedded 3D Forums > Console Forums > Console Games
...and this...Which you've mostly supported as being more expensive courtesy of the sorts of tasks that you might do at each step (i.e. generate new rays based on atmospheric properties). That might make ray marching a more natural fit for more-expensive algorithms in offline renderers, but it's not a strong argument that ray marching is more expensive in and of itself.
...and this!Data structures play a big part, and sometimes traversing a spatial-sample representation (in the case of LotF, via shadow mapping) can be a cheaper way of getting satisfactory results than calculating intersections on polygons.
Is that considered ray tracing or ray marching?Forums > Embedded 3D Forums > Console Forums > Console Games
In this short (using Renderman), we used raymarching for the smoke on Road Runner's trail. It took hours and hours and hours to render it alone (we split the asset out of the scene). Contrast that with this shot (0:54) where most of the screen space is used up for ray-tracing reflections.. and it didn't take nearly as long.