8 ms·
Disney's Hyperion Renderer
- Xophmeister 11y agoWhat's the difference between path tracing, ray tracing and photon mapping? I'd never heard of path tracing before now and the video makes it sound the same as ray tracing/casting, but what I've read implies otherwise (but I'm not sure how). Clearly it's different to photon mapping, but what ever happened to that: Was it too computationally expensive for the pay-off?
- pmorici 11y agoThe way I understand it; ray tracing and path tracing are the same conceptually except for how so called 'global illumination' (GI) is calculated. Ray tracing uses a short cut that computes the value with an equation that can be applied efficiently to the entire image. Path tracing on the other hand calculates the GI by tracing not only direct rays from the camera lens bouncing off an object to the light sources but also follows indirect rays that bounce around multiple objects in the scene on their path from the camera to the light source. Practically speaking path tracing is going to give you a more real to life image at the expense of a slower rendering process.
- tomvbussel 11y agoThis is wrong. Ray tracing simply is a way to determine visibility between two points, just like the Z-buffer. Ray tracing won't produce a color on its own. Path tracing on the other hand is a method which uses ray tracing to solve the light transport integral. It creates paths between the camera and the light using ray tracing and then it calculates the contribution of that path to the image. Most toy ray tracers only handle specular reflection and transmission, and direct illumination. This is called Whitted ray tracing and is probably what you're referring to.
- DonHopkins 11y agoIs the light transport integral isomorphic to what Heckbert's paper [1] refers to as "gratuitous partial differential equations [2]," as explained by Fuller [3]? >The “begetted” eightness as the system-limit number of the nuclear uniqueness of self-regenerative symmetrical growth may well account for the fundamental octave of unique interpermutative integer effects identified as plus one, plus two, plus three, plus four, as the interpermuted effects of the integers one, two, three, and four, respectively; and as minus four, minus three, minus two, minus one, characterizing the integers five, six, seven, and eight, respectively [3]. [1] http://www.ecse.rpi.edu/~wrf/Teaching/graphics-s2005/heckbert-rls-jello.pdf http://www.ecse.rpi.edu/~wrf/Teaching/graphics-s2005/heckber... [2] https://wattsupwiththat.files.wordpress.com/2012/01/bg-equations.jpg https://wattsupwiththat.files.wordpress.com/2012/01/bg-equat... [3] Fuller. R.B. Synergetics. MacMillan, New York, 1975,~. 125.
- dahart 11y agoYou're probably right, but nobody I know calls it "Whitted ray tracing" unless Turner is there in the room, or some point is being made about or in reference to his paper specifically. ;) In my experience, graphics people generally do mean producing colors for pixels when they say "ray tracing". But I think physicists would assume "ray tracing" means visibility queries and nothing more. When someone says 'ray tracing' to me today, before they elaborate on what they mean, I assume they're talking about using straight line segment visibility tests probably to make some kind of picture, probably using Monte Carlo techniques, probably for global illumination. So, they might mean path tracing, or one of the (many) other ways to simulate lighting, or my assumption might be wrong, but that's okay because language is fun, and vague, overridden and imperfect terms allow us to have longer conversations. :)
- huuu 11y agoRay tracing is the art of tracing rays and detecting collision. Ray tracing is used in photon mapping and path tracing. With photon mapping you trace a ray from a light source and store the light energy for the area where the light hits an object. With path tracing you ray trace a ray from the camera and every time you hit an object you check if you can see a light source from that spot. If true you return all the gathered energy back to the camera (pixel).
- kuya 11y agoRay tracing is a more generic term that covers rendering techniques which trace rays between a camera and a scene. Back in the day everyone used Whitted style ray tracers to render shiny metal blobs because secular reflections are trivially handled with ray tracing. Unfortunately other physical aspects of light like diffuse reflections were not handled by early ray tracing algorithms. Kajiya introduced the rendering equation, a mathematical formulation of global illumination (takes diffuse, secular into account). It's a multidimensional integral equation. Unidirectional path tracing is an algorithm he introduced to solve the rendering equation. It uses several rays traced from pixels in the camera bouncing randomly through the scene. It's a Monte Carlo integration algorithm for solving the nasty integrals. Photon mapping involves a pass algorithm tracing light from light sources into the scene, then a pass (like path tracing) gathering that light back at the camera. It better handles more complex light effects like caustics.
- kuya 11y agoStupid phone: secular-specular
- Xcelerate 11y ago> It better handles more complex light effects like caustics. I wouldn't say better. I would say it provides an approximation to the rendering equation more quickly than path tracing does. However, photon mapping is a biased algorithm, which means that if you average many independent renderings together, they won't converge on the correct (exact) image. Path tracing methods (bi-directional, Metropolis, etc.) converge on the exact solution, regardless of how noisy each individual rendering is. (However, it may be the case that an unwieldy number of samples is required for tricky caustics, so in practice, path tracing may fail to produce a correct result because of high variance.)
- tomvbussel 11y agoPhoton Mapping might be biased, but it's extremely easy to make it consistent by using the method outlined by Knaus and Zwicker [1]. Using that method photon mapping will converge to the right result. Even without progressive photon mapping you can choose a photon radius that won't cause visible errors. [1] http://cgg.unibe.ch/publications/2011/progressive-photon-mapping-a-probabilistic-approach http://cgg.unibe.ch/publications/2011/progressive-photon-map...
- dahart 11y agoThe other answers here are correct, but to shed a little more light on it, the main development of path tracing over ray tracing is that path tracing involves Monte Carlo integration to simulate many effects, the big one being Global Illumination, but depth of field and soft shadows as well. What this means is that at every step along a ray path, you carefully pick a new direction for the next ray segment that is randomized according to whatever effect that segment corresponds to, whether it's the surface material there, or the camera lens or the area/volume light source, or something else. The implication of this randomizing / Monte Carlo integration is that it typically takes many ray paths to get the color for a single pixel. (You can use only one or just a few, and your result will be very noisy.) When people talk about ray tracing as something different than path tracing, they usually mean the first form of ray tracing that only did direct diffuse lighting, point light sources, simplistic materials, and multiple bounces of perfect specular reflections. (Aka recursive ray tracing.) Note that not everyone makes a distinction between path tracing and ray tracing, you can easily find lots of examples of people referring to ray tracing and talking about GI and Monte Carlo techniques. "Ray tracing" is evolving to incorporate modern developments.
- pmorici 11y agoAnyone have any insight as to why Disney would build a separate rending engine when they own Pixar and could use their renderman engine?
- CyberDildonics 11y agoThe real answer to this is basically that the two companies aren't all that integrated, even today. At the same time, renderman was still using ray tracing as part of it's hybrid REYES architecture. Even so, they could have made it with renderman. Presentations saying 'this wouldn't have been possible' are more marketing than reality. It was more likely to be a combination of the right time to pitch creating a new ray tracer to see how much could be gained through batching while also having a renderer they could control and make sure was modern.
- Xophmeister 11y agoThis article[1] implies that there's a lot of cross-pollination with regard to computer graphics research and technology within the movie/VFX industry. So my guess is a bit of friendly competition that keeps spurring new innovation (similar to the browser wars). [1] http://www.fxguide.com/featured/disneys-new-production-renderer-hyperion-yes-disney/ http://www.fxguide.com/featured/disneys-new-production-rende...
- eddieroger 11y agoNot backed by an article, but I'd assume there's also the factor of needing a new or different capability for an upcoming project, which would prompt the technicians to try something different without affecting in-flight projects. They can always share some of Hyperion with Pixar when Pixar is at a point to change things.
- berkut 11y agoBecause until last year when Pixar released PRMan 19 RIS, PRMan was not that good at ray tracing / path tracing - the REYES method of rendering and shading didn't scale as well for big complex scenes when global illumination and raytraced light occlusion was done. The RSL shading language was also causing a rather large overhead of shading time as it was an interpreted language that could no longer amortise its runtime cost over a shading grid of points using SSE - in path tracing, you generally shade one point at a time per ray vertex, although you can batch them up in some cases (but without significant ray re-ordering and deferring, after the first bounce this becomes less and less useful). Disney also use Ptex for texturing, which doesn't really like incoherent shading points, so that was another reason to put effort into doing large scale re-ordering of rays and batching them up.
- shocks 11y agoThe Pixar online library is a really great resource. http://graphics.pixar.com/library/ http://graphics.pixar.com/library/
- tomvbussel 11y agoThey have some pretty cool papers on there, but the few landmark papers that Pixar published were all published in the 80s. Here is a better source for papers (SIGGRAPH, Eurographics and EGSR have the best papers on rendering): http://kesen.realtimerendering.com/ 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.
- mineral_or_veg 11y ago"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." None of the things you claim in this sentence are true. Disney does not use PRman at all anymore.
- mineral_or_veg 11y agoSorry, I guess what I meant was that Hyperion is perfectly capable of being used in test renders. The amount of time before you see any resolved pixels is of course dependent on the size of your scene, the desired resolution, etc. It could take 15 minutes before a pixel shows up, but that's not a standard case for production test renders in an artist's daily work.
- deleted 11y ago[deleted]
- dr_zoidberg 11y agoThey talk about the bounces of light, which reminds me of radiosity global illumination[1]. I'm left wondering if this idea of going "from the camera to the light sources" is applied in any particular radiosity implementation, and which are it's differences in respecto to the basic form of the algorithm (that would be "from the light sources to the camera"). [1] https://en.wikipedia.org/wiki/Radiosity_%28computer_graphics%29 https://en.wikipedia.org/wiki/Radiosity_%28computer_graphics...
- wlesieutre 11y agoRadiosity doesn't track where light is coming from or going to, just the total amount of light hitting a face from any direction. It's built around the simplification that all surfaces are perfectly diffuse so that it can iterate through all the faces and exchange light with every other face. This has its advantages and disadvantages, the biggest advantage being that it's "view independent." Since there's no specular reflection, a surface looks equally bright from any direction, and you don't need to recalculate anything if you move the camera. The big disadvantage is there's no soecular reflection, so light bounces wrong off anything that should have been glossy. I'm not aware of any attempts to do it "backward," and I can't think of how that would work. The camera in radiosity is essentially an afterthought; you can calculate the entire scene without even having one, and the view you get afterward is more of a data visualization of that result than anything that involved the camera in a fundamental way.
- dr_zoidberg 11y agoSounds about right. Not having the time to work on implementing this sort of thing (even as a toy project) leaves me at the point where I sometimes read about the algorithms but can't see through them into the details.
- couchand 11y agoI saw Greg Nichols give a talk about this at the UICC [0] this year. It was a very entertaining talk covering the business and technical aspects of this project. From the start the art team on Big Hero 6 wanted to make a really big movie. They envisioned those big sweeping shots of San Fransokyo that made the technical folks shudder. They have a massive rendering farm at their disposal but still probably wouldn't be able to render all the shots in time for the release; for one reason, because the art folks kept making changes, and for another, because they contain so many entities. A handful of folks on the rendering team built a proof-of-concept renderer with support for the global-illumination look they wanted while also being able to handle the massive scale. As the linked article mentions, the solution was to optimize a massively-parallel algorithm by finding coherent rays that can be efficiently calculated together. It's a batch method: start casting a bunch of rays, identify similar rays and group them, calculate collisions for each group, cast reflected rays, identify similar rays and group them, etc. What I like about it conceptually is that in a way it treats light as a field rather than as individual directed rays. Their initial tests were rendering an infinite plane of generated buildings. The dystopian metropolis was mesmerizing, and I think Disney would be wise to come up with some dark plot line to set there. Anyway, someone way at the top (the director or art director I think) saw the proof-of-concept renderings and decided that it was the perfect tool to attain their vision of this movie, which, by the way, has a hard release date something like three months away. So they proceeded to turn the proof-of-concept into a production-grade renderer in time to render all the frames and save the movie. And somehow they pulled it off, they released a really beautiful movie, and they wrote a paper about it, too. [0]: http://www.acm.uiowa.edu/uicc/speakers.html#nichols http://www.acm.uiowa.edu/uicc/speakers.html#nichols
- xwintermutex 11y ago> As the linked article mentions, the solution was to optimize a massively-parallel algorithm by finding coherent rays that can be efficiently calculated together. It's a batch method: start casting a bunch of rays, identify similar rays and group them, calculate collisions for each group, cast reflected rays, identify similar rays and group them, etc. What I like about it conceptually is that in a way it treats light as a field rather than as individual directed rays. How does this differ from "coherent ray tracing" and "ray packets", like people have been doing the last 15 years? (e.g. "Interactive Rendering with Coherent Ray-Tracing" by Wald et al.: http://www.sci.utah.edu/~wald/Publications/2001/CRT/CRT.pdf http://www.sci.utah.edu/~wald/Publications/2001/CRT/CRT.pdf)
- cbsmith 11y agoThis article is from 2013. Why is it getting attention now?
- tomvbussel 11y agoThis web page is from this month, not 2013. They published a paper on the architecture of Hyperion in 2013, but that never received a lot of attention as it appeared out of the blue and it was published at a 'minor' conference. As most people thought that Disney was still using RenderMan, people never realized that they were actually using that architecture in a production renderer. A few months ago FXGuide published an article on Hyperion and in the past few months there have been a few talks by Disney on it, but this is the first public article by Disney specifically about their renderer. And besides, there aren't a whole lot of discussions on Hacker News on offline rendering, so this article is a good opportunity to discuss graphics.
- cbsmith 11y agoThanks. I had heard about it last year, and so thought it was all old news.
- gioele 11y agoIn the first comparison I see that the shadows in the picture generated by Hyperion are way too fuzzy compared to the reference photo. Is this a problem of the technique or just the result of the way in which lightning and polygons have been set up?