Hacker News new | past | comments | ask | show | jobs | submit login
Path Tracing 3D Fractals (hvidtfeldts.net)
171 points by arunc on Jan 19, 2015 | hide | past | favorite | 17 comments



Those results are fantastic. I have to say, I like the noise that path tracing creates (you can see it in the video for the Brigade engine as well, mentioned in another comment). It looks rather like the noise you get from a lower-end digital camera, which actually rather enhances the realism for me.


> lower-end digital camera

And here I was going to say "the grain you get from high ISO film (http://i.imgur.com/4FDyk.jpg)". Dang kids, get off my lawn!

Anyways, you can actually see this effect (combined with chromatic aberration, which simulated the effect of cheap camera optics) used to great effect in P.T., which was a sort of tech demo/playable trailer for an upcoming silent hill game. Here's a screenshot: http://www.silenthillmemories.net/silent_hills/screens/pics/...


Ha, of course, film as well; for whatever reason, my first thought was "crappy flip-phone camera".

In any case, it's great. The noise hides some details that would otherwise reveal flaws in the render, similar to how motion blur and focus help as well.


> It looks rather like the noise you get from a lower-end digital camera, which actually rather enhances the realism for me.

That's the advantage of ray tracing: you're simulating physical reality, so any errors emulate physical reality as well.

In the case of noise, it's simply the result of each pixel not having sufficient sampling depth, because the ray tracing algorithm hasn't been run long enough. This is exactly the same as when it happens with a camera: if you opened the shutter for a longer time period, the noise would go away (although you might not be able to hold the camera still).


Maybe I'm wrong but these fractals are made with raymarching not raytracing see ex: http://www.iquilezles.org/www/articles/mandelbulb/mandelbulb...


The terminology is admittedly confusing. This is how I understand it:

   Ray casting:   Determine intersection of a ray analytically
   Ray marching:  Determine intersection of a ray by taking stepwise samples
   Ray tracing:   Ray casting or marching along a light path (from the camera)
   Path tracing:  Ray tracing with random experiments
The first two are ray calculation strategies, the latter are rendering strategies. In ray tracing you usually have many simplifications and effects like in real-time rendering, for example direct light models. In path tracing these effects are the result from approximating the full rendering equation.


Hmm, I think some of those definitions are a bit off. Let me try:

- Ray-casting is the general technique of using ray/object intersections (usually to solve a graphics problem). Could be via analytical solutions or not.

- Ray-marching refers to using an iterative technique for computing ray/object intersections. This type of strategy is used for these 3D fractals.

- Ray-tracing creates an image by casting rays for each pixel in the image (from the camera).

- Path-tracing is one of many random ray-tracing techniques. It averages across many random deep bounces of rays following light paths to accurately solve for lighting.

In this case, the ray-tracing casts rays against the 3D fractal via ray-marching and uses path-tracing to compute accurate lighting.


So path tracing is only used for the secondary rays and beyond?


I think think that's kind of a philosophical question. Wikipedia, for example, explains path tracing as integrating over incident light on a surface. You could either think of that as incident light at a point on a virtual film/sensor plane behind a lens or incident light on the first object you hit in the scene.


Such techniques are often generally known as "Global Illumination".

Often in physics based rendering you are attempting to estimate the BSDF (bi-directional scattering distribution function, often broken into T, transmission and R reflection) parts. This gets complicated by interactive media and subsurface scattering (i.e the photons go into a material and bounce around) but in the simple case of a surface interaction you are estimating an integral over solid angle for all light interactions. Monte Carlo path tracing is one way to do this estimation.


What gaming engines already implement or plan to implement path tracing in them in the future? Path tracing looks like the future of gaming graphics, and would do especially well with VR in a decade or so (hopefully by then path tracing will also be accelerated in hardware).


A company called Caustic Graphics built an FPGA ray tracing hardware accelerator once, called the CausticOne and CausticTwo: http://www.pcper.com/reviews/Graphics-Cards/Caustic-Graphics...

As I understood it back then (2010), it was a big step forward in performance. But the company was purchased by Imagination Technologies, and I haven't really heard about it since.


There is the Brigade engine[1] that I know of. It's as far as I know a one man project. I haven't heard of an update in a long time though.

[1] https://www.youtube.com/watch?v=BpT6MkCeP7Y


http://raytracey.blogspot.fi/

Sam Lapere seems to have left Otoy around November 2014.


I'd guess Jacco Bikker and Jeroen van Schijndel are still involved though?


I've been following this blog for a bit. Fragmentarium is pretty interesting.


The results look great!




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: