144 karma · joined August 2, 2015
It's absolutely amazing that Disney is doing this, especially as the license is quite permissive and also allows the usage for non-research purposes.
[0] https://dl.acm.org/citation.cfm?id=2927384
[1] http://pbrt.org/
[2] https://blog.yiningkarlli.com/2018/07/disney-animation-datas...
[3] https://s3-us-west-1.amazonaws.com/assets.disneyanimation.co...
Ray re-ordering is indeed a nightmare, but sorting very large ray batches (millions of rays) into coherent ray streams is less of a hassle, and it should enable coherent geometry access (which amortizes the cost of those reads, not sure to what extent).
They do mention some tests with "out-of-core rendering of scenes with massive amounts of geometry" in the paper, but there isn't much info on it. AFAIK their patents mention streaming in geometry too.
I know that buying more RAM is probably easier, but it would be interesting to render very large scenes on commodity hardware. I guess paging in geometry is just too much of a hassle, you constantly have to stream in geometry to memory; to compute surface derivates, to do subsurface scattering, to sample arbitrary geometry lights, etc.
I guess that you don't want to page in full models (as you either need a very large amount of memory per thread, which means smaller ray batches, or you need to have a shared cache, which means waiting on other threads). So you'll probably need something similar to Toro (as described by Pharr et al.), which just doesn't seem very efficient to me (as grids have improved little compared to BVHs).
[1] https://www.quora.com/How-much-faster-would-it-be-to-render-...
The current edition of Physically Based Rendering still uses literate programming, but most of the maths are separated from the code, so you can skip over most of the code. Even if you can't stand I can really recommend reading it, as it's a great book. Shirley's Realistic Ray Tracing is still very useful these days, but obviously it's lacking the state of the art. If you really want to avoid any code you should read Veach's PhD thesis [2] and then some papers on BSDFs [3], shapes [4] and ray tracing acceleration [5].
[1] http://wjakob.github.io/nori/
[2] http://graphics.stanford.edu/papers/veach_thesis/
[3] http://www.cs.cornell.edu/~srm/publications/EGSR07-btdf.html
[4] http://www.graphics.cornell.edu/pubs/1997/MT97.html
[5] http://www.nvidia.com/object/nvidia_research_pub_012.html
Pixar has ditched RSL in favor of BSDFs written in C++, so there is no real reason for learning RSL anymore. Open Shading Language (OSL) is a new shading language which is getting more and more use in the industry, but it's completely different by design.
Mitsuba is great for research though. It has support for a lot of experimental rendering algorithms (such as Metropolis Light Transport), which are not supported in production renderers. Due to Mitsuba's modular structure it's also incredibly easy to implement new algorithms, which makes Mitsuba a great framework for comparing rendering algorithms. A lot of papers use Mitsuba to compare their new algorithm to other algorithms.
Most production renderers use CPUs (just like Mitsuba). GPUs are incredibly powerful and some benchmarks show 400% speed improvements over CPU-based renderers. The problem is though is that GPU-based renderers struggle with the scenes that are used in production. Typical production scenes contain over 250GB of textures and over 10s of GBs of geometry (pre-tessellation). This isn't going to fit the in the memory of a GPU and the GPU will spend most of the time loading assets from the hard drive (or network).
The question though is whether or not this paper should have been published at EGSR. Personally I think that an EGSR paper should either propose a novel idea or should provide a good survey of the field. I don't think this paper succeeds at either of those. Their method is 'simply' a combination of already published ideas and I don't think that they do a very good job at comparing those existing ideas.
Personally, I think this paper would have been better suited as a talk at SIGGRAPH, a publication at JCGT or a technical report (like Pixar). So: great paper, wrong venue.
[1] http://cgg.unibe.ch/publications/2011/progressive-photon-map...
From an engineering standpoint I think that Hyperion is an amazing renderer and I'd love to dig into its source code. From an academic standpoint however I think that their paper on it wasn't very interesting. I don't mind reading about the details of a production renderer, as there is a whole lot of info on writing production renderers. But I don't think that it should have been published at EGSR. There were no real new ideas in that paper that were worth publishing. The paper could have had some merit if they provided a good comparison between their architecture and other architectures, but sadly they decided to compare their renderer with other off the shelf renderers. Very little is known about the architectures of those renderers and as they all have their own implementations of acceleration structures, texturing and other shared components, they aren't comparable at all. It would have been much nicer if they implemented their algorithm in a framework such as Mitsuba, so that it could be compared with other algorithms.
I do think you should give them more credit on the engineering side though. Using large amounts of geometry has been done before, but renderers such as RenderMan and Arnold require that all geometry fits in the memory at once. Tracing large batches of rays at the same time allows you to load in or subdivide geometry on demand, which makes the size of the harddrive and the size of the individual meshes the limit, instead of the memory being the limit. Their scheme also allows for creating good ray packets, which clearly is needed if we want to reap the benefits of Moore's law, as those extra transistors mostly translate to wider SIMD vectors instead of higher clockspeeds and simply increasing the amount of children of a BVH node won't scale well. Reordering the rays allows you to create coherent packets out of incoherent rays and it allows you to efficiently handle motion blur, as all rays in a packet need to be in the same time interval, which allows you to efficiently make use of those wider SIMD vectors.
I'm certain they could have produced Big Hero 6 without Hyperion, but Hyperion gave their artists a lot of freedom by removing some of the technical limitations.
The main problem with RenderMan before version 19 was that it didn't have a good acceleration structure and that you basically had to implement a path tracer in RSL on your own. Pixar wrote a path tracer in RSL for Monster's University, so Disney could have just used that. I doubt that they would write their own renderer if they could have just asked Pixar to implement a better acceleration structure in PRMan, so there were obviously different reasons too.
I think Ptex was an important reason for them to write their own renderer, as they seem to put a lot of focus on textures in their paper on the architecture of Hyperion [2]. Hyperion's architecture also allows them to use packet tracing and to load and subdivide geometry on demand, which is also really great.
[1] http://www.realtimerendering.com/resources/RTNews/html/rtnv1...
[2] https://disney-animation.s3.amazonaws.com/uploads/production...
[1] https://disney-animation.s3.amazonaws.com/uploads/production...
[2] http://www.sci.utah.edu/~wald/Publications/2011/singleray_hy...
[3] http://fileadmin.cs.lth.se/graphics/research/papers/2014/drs...
Here's the paper that explains some of the renderers details:
https://disney-animation.s3.amazonaws.com/uploads/production...
Here is a better source for papers (SIGGRAPH, Eurographics and EGSR have the best papers on rendering):
http://kesen.realtimerendering.com/
The Hyperion renderer was made by Disney, not Pixar by the way. Pixar only uses their own RenderMan renderer. Disney uses a mix of Hyperion and RenderMan, as Hyperion is not useable for test renders, as it can take up to 15 minutes until a pixel will appear on the screen, as they trace millions of rays at the same time.