<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-3558910597161148058</id><updated>2026-07-23T22:57:28.208-07:00</updated><category term="Travel"/><category term="Cg"/><category term="Pixar"/><category term="Food"/><category term="Allegorithmic"/><category term="Photography"/><category term="Substance"/><category term="Adobe"/><category term="Animal Logic"/><category term="MPC"/><category term="Politics"/><title type='text'>Da Krunch</title><subtitle type='html'>Coffee-induced deliria about computer graphics, food, travel and life</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://dakrunch.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3558910597161148058/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://dakrunch.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/3558910597161148058/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>Davide Pesare</name><uri>http://www.blogger.com/profile/02004541122380635353</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjVv5yK9dQzgi_Rhw_L1Z6aP-l0EFX4ZaX5_wbrqUJT2BsbFur0p9Jcvld2D4rAn3GnGtIA8lk_CzZwSpc14QhSnopKGppH-MckEeif19h9u_3ephxnOVQ2gy8ysiOx6tj6xeb640KSTI0qTYsz-CW4_zVLJp5xD4bWYHiOohFCo9SmDU/s220/1743541473925.jpeg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>143</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3558910597161148058.post-8154722092430769021</id><published>2026-01-21T15:13:00.000-08:00</published><updated>2026-02-04T21:16:09.269-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Cg"/><category scheme="http://www.blogger.com/atom/ns#" term="Substance"/><title type='text'>The Road to Substance Modeler: VR Roots, Desktop Reinvention</title><content type='html'>&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;I volunteered to join the&amp;nbsp;&lt;/span&gt;&lt;a data-preview=&quot;&quot; href=&quot;https://www.adobe.com/products/substance3d/apps/modeler.html&quot; target=&quot;_blank&quot;&gt;Substance Modeler&lt;/a&gt;&amp;nbsp;&lt;span style=&quot;font-family: inherit;&quot;&gt;team less than a year after it came to Adobe, from Oculus. The team was really strong, and it had hired a couple of top tier engineers to beef up the roster. On my end, I was a confident &quot;toolsmith&quot; and I really wanted them to succeed in their push to have a usable Beta in a very tight schedule. A few months later they surprised me by asking me to stay as a tech lead. While I am usually quite confident in my skills, it sure felt intimidating to be the tech lead of such a team, full of experts in VR and sculpting (I was neither). Nonetheless, I pulled up my sleeves and got to work, because&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;b&lt;/span&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;uilding this gem wasn&#39;t going to happen overnight, and it wasn&#39;t going to be easy.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;None of the information in this post is confidential, however it also reflects my views, not necessarily Adobe&#39;s.&lt;/span&gt;&lt;/p&gt;&lt;h2 style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;Modeler&#39;s engines&lt;/span&gt;&lt;/h2&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;In my previous post I wrote about the implications of deferring topology. Working on such system has a tactile immediacy that is quite delightful. The speed you can create and carve complex primary and secondary shapes feels quite amazing. But creation speed only happens if we have a geometry engine which can support the level of detail an ambitious artist demands.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;Modeler ships with a sculpt engine and a rendering engine. The two work together to define our geometry real time pipeline. While Mediums feels quite different than Modeler, these two components were both initially inherited from it, and improved with the brilliant and diligent work of our engineers.&lt;/span&gt;&lt;/p&gt;&lt;h3 style=&quot;text-align: justify;&quot;&gt;Sculpting engine&lt;/h3&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFTi4UCyh7PlODpiKzzwqMfvlHRIgQqr4sNQQqg6rNo59qv4WKQbxKTQzPw_7EpMF7AYnNHEJYvU3KEeKnBqtOpJRPmWdtuMq92Ty9FERRfacK98Z3xWVOSwZUDWuKW1c6iQQZHCZflKFzXv0zOAe2In4M61KOSmyRXN_rbL6P9nwT7hmb5WwEYMT26Vg/s1348/danny-mcgrath-untitled-3.jpg&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1348&quot; data-original-width=&quot;1346&quot; height=&quot;640&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFTi4UCyh7PlODpiKzzwqMfvlHRIgQqr4sNQQqg6rNo59qv4WKQbxKTQzPw_7EpMF7AYnNHEJYvU3KEeKnBqtOpJRPmWdtuMq92Ty9FERRfacK98Z3xWVOSwZUDWuKW1c6iQQZHCZflKFzXv0zOAe2In4M61KOSmyRXN_rbL6P9nwT7hmb5WwEYMT26Vg/w640-h640/danny-mcgrath-untitled-3.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://www.artstation.com/artwork/XglED3&quot;&gt;Joan of Arc, artwork by Danny McGrath&lt;/a&gt;&lt;/div&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;Let&#39;s dig in a bit and see how the digital sausage is made, so to speak. Modeler&#39;s sculpting engine is a library used to author &lt;a href=&quot;https://dakrunch.blogspot.com/2025/11/deferring-topology-in-substance-3d.html&quot;&gt;Clay&lt;/a&gt;&amp;nbsp;layers, the basic building block of an art piece. A Clay layer is primarily a hierarchy of blocks&amp;nbsp;containing voxel data - a small block is 8x8x8 voxels. The ground truth is captured in the voxels. Voxels represent a narrow band signed distance field (&lt;a href=&quot;https://en.wikipedia.org/wiki/Signed_distance_function&quot;&gt;SDF&lt;/a&gt;), meaning the value of a voxel is the signed distance from the closest surface, where 0 is the place where the surface lies. The level set data is clamped between -2.0 and +2.0 so many of the constant field blocks far from the zero isosurface can be compressed to a single value. Clay objects also have an associated GPU polygon representation, generated with a &quot;&lt;a data-preview=&quot;&quot; href=&quot;https://www.google.com/search?ved=1t:260882&amp;amp;q=marching+cubes+algorithm&amp;amp;bbid=3558910597161148058&amp;amp;bpid=8154722092430769021&quot; target=&quot;_blank&quot;&gt;marching cubes&lt;/a&gt;&quot; technique (for CPU exported meshes, we switched to &quot;&lt;a data-preview=&quot;&quot; href=&quot;https://www.google.com/search?ved=1t:260882&amp;amp;q=dual+marching+cubes+algorithm&amp;amp;bbid=3558910597161148058&amp;amp;bpid=8154722092430769021&quot; target=&quot;_blank&quot;&gt;dual marching cubes&lt;/a&gt;&quot;).&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;Next to this level set sits a color voxel grid, which is only defined on boundary areas (no volumetric color inside the objects). At a quick glance, this data structure is similar to&amp;nbsp;&lt;/span&gt;&lt;a data-preview=&quot;&quot; href=&quot;https://www.google.com/search?ved=1t:260882&amp;amp;q=OpenVDB&amp;amp;bbid=3558910597161148058&amp;amp;bpid=8154722092430769021&quot; style=&quot;text-align: left;&quot; target=&quot;_blank&quot;&gt;OpenVDB&lt;/a&gt;&lt;span style=&quot;text-align: left;&quot;&gt;, though the hierarchy details and the disk storage differ.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;In terms of space, the data of each Clay layer feels practically unbounded on all three axes (the range was +/- 1M), and that is a great improvement from Medium (+/- 1024), where artists had to carefully manage their layer bounding boxes. In Modeler, they can just explore and create shapes of any size without worrying about their distance from the origin, regardless of the voxel density.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;When an artist operates on clay using one of Modeler&#39;s tools, the engine can quickly detect which blocks were affected and only recompute the necessary pieces of the associated polygon mesh. The LODs are computed immediately, too, by downsampling the SDF and using the same marching cubes algorithm.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;Here&#39;s the kicker. Initially we thought that volume authoring was the most expressive tool for an artist, but it turned out that high precision tasks like micro-displacement and crease control, operating on the surface rather than the volume gives better control. So over time we added or rewrote some volume tools into surface tools.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;Here&#39;s how surface tools work in a world, where the ground truth is still voxels: we work on the associated GPU polygon mesh directly.&amp;nbsp;Small vector offsets are applied on each vertex in the area of effect of the tool, then the voxel grid is quickly recomputed in the areas affected. The respective portion of mesh is immediately recomputed so we always have a fresh mesh with uniform tessellation. During many sculpting operations, this happens many times per second, reaching buttery real time update rates. When the operations are very frequent and subtle, there is a minor numerical drift. Initially the drift caused some small blocky artifacts, but we were able to reduce it down to a slight smoothing effect.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;If a sculpt operation works on a very large, very dense mesh however, the operation can take over a second. That is entirely acceptable and common on desktop applications which come equipped with progress bars and dialogs, but we have a VR device, where any time you drop under 90fps, bad things happen to the user, including nausea and dizziness. We don&#39;t let that happen, because of how our rendering engine works.&lt;/span&gt;&lt;/p&gt;&lt;h3 style=&quot;text-align: left;&quot;&gt;Rendering engine&lt;/h3&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;Rendering and sculpting are thread-decoupled in Modeler. Rendering is entirely focused on hitting target frame rates on VR devices. During heavy sculpting operations, happening on a separate set of threads, the engine continues rendering the meshes representing the previous committed voxel state unobstructed. The mesh being displayed is not the in-progress mesh. The new mesh replaces the old one on screen only&amp;nbsp;once the volume is updated and the submeshes recomputed.&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;In Modeler, rendering large scenes is made possible due to multiple techniques.&amp;nbsp;A Modeler scene is made of layers assembled in a scene graph, much like in many DCC tools. The scene graph supports instancing, so much data can be explicitly deduplicated. However, that is a creative choice, not an optimization, because we achieve the same optimization implicitly.&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;Modeler makes broad use of COW. A prime example is how our heavy voxel data is split in&amp;nbsp;&lt;/span&gt;&lt;span&gt;small&lt;/span&gt;&lt;span&gt;&amp;nbsp;hierarchical blocks (as described for the sculpt engine) but blocks with identical data are not duplicated, in memory or on disk. So if, say, a sculpt of a man is duplicated (not instanced), there is still only one in memory. If one of the copies gets a remodel of the right hand, the rest of the body data will remain shared between the two sculpts (even if they are each made of a single voxel object). The savings are implicit, the user does not need to create explicit instances of a model for this to work.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;The submeshes and the LODs associated with each block are also deduplicated this way, so that&amp;nbsp;&lt;/span&gt;&lt;span&gt;even if we have to display incredibly detailed scenes,&amp;nbsp;&lt;/span&gt;&lt;span&gt;the rendering engine&amp;nbsp;&lt;/span&gt;&lt;span&gt;only has to compute a very small fraction of them at any given frame.&amp;nbsp;&lt;/span&gt;&lt;span&gt;Our LODs are selected and smoothly interpolated based on the submesh size on screen, using a variant of &lt;/span&gt;&lt;a data-preview=&quot;&quot; href=&quot;https://transvoxel.org/&quot; target=&quot;_blank&quot;&gt;Transvoxel&lt;/a&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;We then apply&amp;nbsp;&lt;/span&gt;&lt;span&gt;backface, frustum and occlusion culling.&amp;nbsp;&lt;/span&gt;&lt;span&gt;This all contributes to handle billions of polygon (in terms of capacity) in a massive sculpted scene. We had solid engines which would carry Modeler far, but Modeler was not a product that was ready to ship yet.&lt;/span&gt;&lt;/p&gt;&lt;h2 style=&quot;text-align: left;&quot;&gt;Adobe-fication of Medium&lt;/h2&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;Taking a whimsical, fun tool such as &lt;a data-preview=&quot;&quot; href=&quot;https://www.google.com/search?ved=1t:260882&amp;amp;q=Oculus+Medium&amp;amp;bbid=3558910597161148058&amp;amp;bpid=8154722092430769021&quot; target=&quot;_blank&quot;&gt;Oculus Medium&lt;/a&gt; and turning it into a professional sculpting tool for the Substance Ecosystem at Adobe included quite a few steps. We expected and looked forward to the product work - change the UI, improve workflows, more advanced options. When it came to organizational work though, the workload was surprisingly substantial, especially for a team largely composed of hardcore graphics people.&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;We cheekily nicknamed these changes the &quot;Adobe Tax&quot;. It included creating and aligning all the infrastructure across our Substance products related to build and CI, security, analytics, crash reports, as well as licensing and legal. It involved rewriting or refactoring big swaths of code and negotiating with many teams in our organization as well as the others in Adobe.&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;Keep in mind, the Substance group as a whole was also new to Adobe, as we came from a relatively recent acquisition ourselves. The Adobe Tax felt like a burden at times, but being part of Adobe had incredible perks. We met an army of excited and renowned researchers.&amp;nbsp;We suddenly had access to resources and allies in business, engineering, law and marketing. We were also able to use some Adobe funds to support open source projects we relied on, which was a big priority for us.&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;I ended up volunteering for several of these because I was the tech lead and I wanted to make sure the graphics talent on the team would stay focused and motivated. It wasn&#39;t always fun, but I learned a lot and got to meet incredible professionals in other teams who would still be strangers if I hadn&#39;t stuck my neck out.&lt;/p&gt;&lt;h3 style=&quot;text-align: left;&quot;&gt;&lt;b style=&quot;text-align: justify;&quot;&gt;VR and 6 Degrees Of Freedom&lt;/b&gt;&lt;/h3&gt;&lt;div&gt;&lt;p data-prosemirror-content-type=&quot;node&quot; data-prosemirror-node-block=&quot;true&quot; data-prosemirror-node-name=&quot;paragraph&quot; style=&quot;text-align: justify;&quot;&gt;So after a year or so, we just got out of alpha and we had a voxel-based sculpting tool. There were a few such tools around those days. Because we had a very compressed Alpha stage, Modeler was still quite rough around the edges and not quite an obvious sell. Based on what I learned presenting at conferences like GDC and meeting artists, it was clear that Modeler&#39;s (and Medium&#39;s) main differentiator was that it was first and foremost a Virtual Reality (VR) tool. VR morphs the act of sculpting into a much more visceral experience, where you can see and feel your way around your creation in a way that a desktop tool just doesn&#39;t.&amp;nbsp;&lt;/p&gt;&lt;p data-prosemirror-content-type=&quot;node&quot; data-prosemirror-node-block=&quot;true&quot; data-prosemirror-node-name=&quot;paragraph&quot; style=&quot;text-align: justify;&quot;&gt;Even more than the visual immersion, what makes sculpting and painting in VR compelling is its 6 degrees of freedom (DOF) controllers, which approximate much more closely the way artists interact with physical sculpts. The result is that while desktop sculpting tools attract digital artists that are already familiar with 3D, VR sculpting tools are more compelling&amp;nbsp;to traditional artists, to those who would rather not touch a mouse and keyboard, and&amp;nbsp;would prefer sketching on paper or working with clay and marble.&amp;nbsp;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLpr1K_68nQjkSegwaTRr3QvbA8Ifws6O1PZPTrp6v5gMcLqjbgOsauEddPUp-tKa6vlw05VhtzqK7c8KzwsOjJ2TnzxNUrEd7lg8Iub2USdHO0LHP-P_1GSe_Ue7hiRKjFM_zklAdErbXVSp0jfQ_GyWvZ1RjvHtwZyMvGFZ-kLfqOlZlNUyBPT-Y1aE/s1920/tomi-vaisanen-technical-top.jpg&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1080&quot; data-original-width=&quot;1920&quot; height=&quot;360&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLpr1K_68nQjkSegwaTRr3QvbA8Ifws6O1PZPTrp6v5gMcLqjbgOsauEddPUp-tKa6vlw05VhtzqK7c8KzwsOjJ2TnzxNUrEd7lg8Iub2USdHO0LHP-P_1GSe_Ue7hiRKjFM_zklAdErbXVSp0jfQ_GyWvZ1RjvHtwZyMvGFZ-kLfqOlZlNUyBPT-Y1aE/w640-h360/tomi-vaisanen-technical-top.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style=&quot;text-align: center;&quot;&gt;Tribal Mech Warfare, Artwork by &lt;a href=&quot;https://www.artstation.com/tomivai&quot; target=&quot;_blank&quot;&gt;Tomi&amp;nbsp;Väisänen&lt;/a&gt;&lt;/div&gt;&lt;p data-prosemirror-content-type=&quot;node&quot; data-prosemirror-node-block=&quot;true&quot; data-prosemirror-node-name=&quot;paragraph&quot; style=&quot;text-align: justify;&quot;&gt;What really defines Modeler&#39;s success for our VR users is: it makes modeling fun again. That was a recurring quote from our users. It makes it easy and fast to transfer what is in your mind into the digital world. It removes the barriers that separate concept work from modeling work.&lt;/p&gt;&lt;p data-prosemirror-content-type=&quot;node&quot; data-prosemirror-node-block=&quot;true&quot; data-prosemirror-node-name=&quot;paragraph&quot; style=&quot;text-align: justify;&quot;&gt;The catch is that VR, at the time of writing, is still a rather small niche in the creative tooling landscape. A VR-first tool such as Modeler was in its early days really limited its user reach. It took a lot of strong will and optimism from our VP, to invest in a specialized team such as ours. It&#39;s worth remembering that Adobe normally deals with millions of users in its more successful applications. So in our search for a larger market fit, all the while improving our VR tooling, we had to pivot our focus away from VR and to a desktop-first sculpting tool.&lt;/p&gt;&lt;h2 style=&quot;text-align: justify;&quot;&gt;&lt;b&gt;Bringing Modeler to desktop&lt;/b&gt;&lt;/h2&gt;&lt;/div&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;Making a hybrid VR/desktop tool is no joke. While other applications in the Substance ecosystem are typically based on Qt and QML, over time&amp;nbsp;we replaced the legacy Medium UI system with two custom UI systems. Both were &quot;immediate&quot;, in the way&amp;nbsp;&lt;a href=&quot;https://github.com/ocornut/imgui&quot;&gt;ImGui&lt;/a&gt;&amp;nbsp;is, that is, little to no state is preserved across frames. These systems were aimed at allowing us to code our widgets, controls and dialogs simultaneously for VR and desktop.&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;By design we tried to maximize consistency between VR, which was well understood for us, and desktop, for familiarity&#39;s sake. But in time it became apparent that putting too much emphasis on consistency between the two worlds ended up doing a disservice to both. A successful UX&amp;nbsp;for 6 DOF and VR does not map very well to a screen, mouse and keyboard. The reverse is even worse.&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;To start from a few trivial examples, in VR, too many panels crowd the working space, while on desktop they can be organized in dockable panels across multiple screens (which, to be clear, we didn&#39;t get to implement). On desktop, precisely clicking is easy but relying too much on dragging can induce repetitive strain injuries, something I&#39;m well acquainted with. On the other hand, in VR aiming precisely on sliders can be eye straining and frustrating while dragging objects around the scene feels very natural.&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;Our early VR versions had no hierarchy view or panel. The scene hierarchy felt intuitive enough through &quot;direct scoping&quot; in VR. Entering and exiting &quot;scopes&quot; was as easy as a &quot;hover and tap&quot; action, accompanied by appropriate sound effects. However, desktop users felt the need for more familiar views such as a scene outliner. Adding an outliner for desktop effectively created needs we didn&#39;t have, such as selecting objects that are not siblings. That created serious complications to how the engine was structured, from the UX down to the core.&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;The VR render of the detailed geometry was, relatively speaking, fairly crude. That was acceptable in VR, but the need for a quality render became apparent on the desktop version. To tackle that we added support for custom cameras and lights. We also added a whole new GPU accelerated ray traced renderer, which would not have worked on a VR app (progressive rendering does not do well with moving cameras) or with our authoring tools that relied on vertex shaders. That caused some trouble while we were restructuring our rendering engine to fit in the new features without affecting the frame rate in VR.&lt;/p&gt;&lt;div&gt;&lt;h3 style=&quot;text-align: justify;&quot;&gt;&lt;b&gt;Non-destructive Primitives&lt;/b&gt;&lt;/h3&gt;&lt;/div&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;One other thing really helped make a desktop-first take of Modeler work well. It was a new type of data: the non-destructive primitives (in the app called simply &quot;primitives&quot;). These &lt;a href=&quot;https://en.wikipedia.org/wiki/Metaballs&quot;&gt;metaball&lt;/a&gt; reminiscent, &lt;a data-preview=&quot;&quot; href=&quot;https://projectneo.adobe.com/&quot; target=&quot;_blank&quot;&gt;Neo&lt;/a&gt;-like SDF functions can be combined in arbitrary ways. They bring back a workflow that is procedural rather than manual, non-destructive rather than viscerally physical. We had many desktop artists switch to use these almost exclusively.&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;Unlike Neo, they are still rendered as if they were made of Clay - maintaining the notions of volatile polygons and deferred topology. If we compare to ray marched SDF systems, this had advantages and disadvantages:&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;Among the advantages, we had a way to choose the render and compute quality of each component separately, in terms of voxel density. It helped keep the rendering pipeline clear, streamlined and extremely optimized. We could always up-res a set of primitives and the clay version would be analytically recomputed, with no loss of quality. It also gave a very good preview of what the mesh would look if exported &quot;raw&quot;.&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;Among the disadvantages, well, we had to choose the render and compute quality of each component separately. That meant the user has to make some choices in terms of quality/performance that they wouldn&#39;t need to do in &lt;a data-preview=&quot;&quot; href=&quot;https://www.shadertoy.com/&quot; target=&quot;_blank&quot;&gt;Shader Toy&lt;/a&gt; or Neo. It also meant the quality is determined by the voxel and mesh density rather than just the pixel resolution of the render, so when the camera gets really close, polygons become discernible.&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;Once the primitives shipped, the desktop version of Modeler finally started to feel like a real product. But switching to a desktop-first application was just one of the big adjustments we had to make. We started developing our alpha version during the year of the peak Metaverse hype. Then came other hypes. NFTs, crypto, Gen-AI, the new Mac processors, the iPad Pro, to name a few. Each time it felt like we needed to adjust the roadmap and learn new skills. However, despite the excitement in some of the leadership, our product was built within our core values and in the end we only worked on a couple initiatives. Here they are.&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;/p&gt;&lt;div style=&quot;-webkit-text-stroke-width: 0px; color: black; font-family: Times; font-size: medium; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: left; text-decoration-color: initial; text-decoration-style: initial; text-decoration-thickness: initial; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;h2 style=&quot;color: black; font-family: Times; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; letter-spacing: normal; orphans: 2; text-align: left; text-decoration-color: initial; text-decoration-style: initial; text-decoration-thickness: initial; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;Mac port&lt;/h2&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;When we started working on Modeler, it was a Windows-only tool. In fact, since much of the team and Medium itself came from the Oculus division at Facebook (now known as Meta Reality Labs), Modeler was working only on Oculus hardware, which is Windows-only. Given these restrictions, it made sense at the time to have the project be built in Visual Studio.&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhcAUU0-qeUbRP4Wbh2fz3rDVwJPv3aBJXFBjNnRuiF1ZamtL9oqLya4oUTMFDwMK5PsPl7IJuZ3J3FIgM15n2aNDqMHHjElLbA9eXLEpzL0znWMhegxqgxJ55FPZW02-9Y9eiBwVdrESAy5Zp1pPziVQFv24tupg5xA77OuLGZCkHz3v6lHF9cvymsSqU/s4000/terminal_01%20copy.jpg&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;4000&quot; data-original-width=&quot;4000&quot; height=&quot;400&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhcAUU0-qeUbRP4Wbh2fz3rDVwJPv3aBJXFBjNnRuiF1ZamtL9oqLya4oUTMFDwMK5PsPl7IJuZ3J3FIgM15n2aNDqMHHjElLbA9eXLEpzL0znWMhegxqgxJ55FPZW02-9Y9eiBwVdrESAy5Zp1pPziVQFv24tupg5xA77OuLGZCkHz3v6lHF9cvymsSqU/w400-h400/terminal_01%20copy.jpg&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;Sentaro Emotional Support Device&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;Artwork by &lt;a href=&quot;https://www.artstation.com/artwork/4NP2ZW&quot; target=&quot;_blank&quot;&gt;Vladimir Petrovic&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;When the port to other platforms became more likely in our quest to broaden the user base, we had to consider making the project more portable so I started converting the project to CMake. As I was making progress, a saw a demo of a more recent cross platform meta-build system, internal to Adobe but rather similar in principle to Bazel. I tried converting a few dependencies to it. The difference was stark: the declarative nature, dependency handling and binary caching got me making progress a lot faster, so I ended up abandoning the CMake port. The debate between CMake and that Adobe meta-build system for other products is still ongoing and while there is no clear winner due to technical tradeoffs, Modeler stayed with the Adobe one.&lt;p&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;The decision came to make a Mac port. We expected it because &quot;When is it coming for Mac?&quot; was the most common question we got on the Discord servers. At least for me, it was not clear however how many more users we would get, being part of the Substance ecosystem at Adobe. Adobe&#39;s creative user base is largely composed of Mac users. On the other hand, in the Substance ecosystem, Mac adoption is rather small, due to the fact that our biggest demographics&amp;nbsp;were game developers (mostly on Windows) and VFX/animation (mostly on Linux). Also, a Mac port was going to be a desktop only version, because the newly released Vision Pro had (at that time) some imposed rendering API constraints that made it impossible for us to achieve the experience we wanted, so betting on a Mac port was not a guaranteed win.&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;We hired a brilliant new engineer in our team who teamed up with an equally brilliant peer at Apple. The two prepared a version of Modeler that ran on Mac hardware and macOS. It took about a year, and I didn&#39;t follow all the details, but it required getting the code to compile with Clang (which has stricter warnings and differences in the STL implementations, among other things), losing or replacing some Windows-only dependencies and a lot of Metal shader work. I got a chance to try it, and it worked really well.&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;The Mac build was in QA when it was decided not to ship it yet (and to date, it has not launched). It was a bit of a shock: we had been announcing the Mac version was &quot;coming soon&quot; for a while, and we sure felt a mix of disappointment and relief across the team at the beginning. But it was also the right call: we really needed to focus on the desktop and primitives work, which was critical to expand our user base, and not spend our team&#39;s limited bandwidth in the inevitable initial issues that come up when a port on a new platform gets released.&lt;/p&gt;&lt;h2 style=&quot;color: black; font-family: Times; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; letter-spacing: normal; orphans: 2; text-align: left; text-decoration-color: initial; text-decoration-style: initial; text-decoration-thickness: initial; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;Modeler and AI&lt;/h2&gt;&lt;div&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&quot;But what about AI, Davide?&quot;. Don&#39;t worry, I didn&#39;t forget you. Yes, all tools in my org and beyond were asked to consider using Generative AI and evaluate its impact on the users. And evaluate, we did.&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;Turns out, to the surprise of nobody, our user base of professional and enthusiast sculptors weren&#39;t excited about Gen-AI if it was used to generate shapes. And that makes sense, since creating shapes is the fun and creative part of the process. We had lots of people ask about Gen-AI UV generation though, which is always a bit of a chore. And since sculptors aren&#39;t always lighting and photography experts, they didn&#39;t mind the idea of having Gen-AI make a better render of their sculpture, as long as it was accurate. So we did a bit of experimenting around using 3D shapes to guide GeniAI imagery, and we did get to something working and cool, but we also decided that Modeler was a 3D tool for 3D outputs (meshes) not 2D outputs (images).&amp;nbsp;Adding features around rendering and GeniAI, that wasn&#39;t helpful for the sculpting process itself, was more of a distraction than an improvement and would have detracted from the creative &quot;flow&quot; that Modeler strived to achieve.&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;Some AI did ship in Modeler though. It was my pet project, and the evolution of an old internal hackathon.&amp;nbsp;It used slightly older types of AI, that used deep learning to create embedding of 3D shapes into multi dimensional vectors. This technology, written in collaboration with Adobe Research and which I nicknamed Block to Stock, is what powers the kit bashing features of Modeler. The basic idea is: we indexed all of the Substance 3D Assets and stored their information in a small database, shipped with Modeler. The user sketches some shapes, maybe types a word, and voila, the UI proposes a number of models (human-generated by our crew of artists) from the Substance Source repository. On a click, you can swap your model (in place) with the one proposed. No generated geometry, the AI was used to find the closest matches to your sketch in the repository.&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;iframe allowfullscreen=&#39;allowfullscreen&#39; webkitallowfullscreen=&#39;webkitallowfullscreen&#39; mozallowfullscreen=&#39;mozallowfullscreen&#39; width=&#39;669&#39; height=&#39;357&#39; src=&#39;https://www.blogger.com/video.g?token=AD6v5dyI8FEkiaqdwZl8i_3y1onZ7BZqdpoYCHph8cm3bWusmw1AUUF7r6OL0Thjiyl_QRLjVGmAW63jb_FyiTdZaA&#39; class=&#39;b-hbp-video b-uploaded&#39; frameborder=&#39;0&#39;&gt;&lt;/iframe&gt;&lt;/div&gt;Block to Stock in action. Artwork by &lt;a href=&quot;https://www.artstation.com/gionakpil&quot; target=&quot;_blank&quot;&gt;Gio Nakpil&lt;/a&gt;&lt;/div&gt;&lt;p style=&quot;clear: both; text-align: justify;&quot;&gt;To tell the truth, only a couple of years later, this tech feels obsolete already. Gen-AI models are looking more and more like the ones people make: perfect quads, believable UVs and good shapes.&amp;nbsp;Searching a database of human-made models may start to feel limiting. In the end, we stuck to our choices, to show respect to the craft of our incredible users, whose talent and passion outshines anything an AI will generate for us any time soon.&lt;/p&gt;&lt;p style=&quot;clear: both; text-align: justify;&quot;&gt;&lt;span style=&quot;text-align: left; white-space-collapse: preserve;&quot;&gt;Modeler taught me more than I expected: about VR, about graphics, about AI, about teams — and about how hard it is to build something that feels simple. More importantly, it reminded me that t&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;ools come and go, technologies rise and fall, but the spark that drives someone to create — that part stays. Modeler was built for that spark, and I’m proud of the part I played.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;----------------------------
Extracted from blog:
http://dakrunch.blogspot.com&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dakrunch.blogspot.com/feeds/8154722092430769021/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3558910597161148058/8154722092430769021' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3558910597161148058/posts/default/8154722092430769021'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3558910597161148058/posts/default/8154722092430769021'/><link rel='alternate' type='text/html' href='http://dakrunch.blogspot.com/2026/01/the-road-to-substance-modeler-vr-roots.html' title='The Road to Substance Modeler: VR Roots, Desktop Reinvention'/><author><name>Davide Pesare</name><uri>http://www.blogger.com/profile/02004541122380635353</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjVv5yK9dQzgi_Rhw_L1Z6aP-l0EFX4ZaX5_wbrqUJT2BsbFur0p9Jcvld2D4rAn3GnGtIA8lk_CzZwSpc14QhSnopKGppH-MckEeif19h9u_3ephxnOVQ2gy8ysiOx6tj6xeb640KSTI0qTYsz-CW4_zVLJp5xD4bWYHiOohFCo9SmDU/s220/1743541473925.jpeg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFTi4UCyh7PlODpiKzzwqMfvlHRIgQqr4sNQQqg6rNo59qv4WKQbxKTQzPw_7EpMF7AYnNHEJYvU3KEeKnBqtOpJRPmWdtuMq92Ty9FERRfacK98Z3xWVOSwZUDWuKW1c6iQQZHCZflKFzXv0zOAe2In4M61KOSmyRXN_rbL6P9nwT7hmb5WwEYMT26Vg/s72-w640-h640-c/danny-mcgrath-untitled-3.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3558910597161148058.post-5295752209977385491</id><published>2025-11-14T16:45:00.000-08:00</published><updated>2026-02-01T21:26:57.889-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Adobe"/><category scheme="http://www.blogger.com/atom/ns#" term="Cg"/><category scheme="http://www.blogger.com/atom/ns#" term="Substance"/><title type='text'>Deferring topology in digital sculpting</title><content type='html'>&lt;h4 style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;During this long hiatus, with my brain in the trenches of working at Adobe and my free time well spent on parenting our lovely little one, I have been missing writing. Now that my 2 years at Allegorithmic and 5 years at Adobe awarded me some time for a short sabbatical, I have been thinking about how modeling was the first thing I took up when approaching Computer Graphics, and how it still influences what I do so many years later. So here are some of my reflections on the discipline, as well as my time spent as a tech lead in the Substance teams as especially on Substance 3D Modeler.&lt;/span&gt;&lt;/h4&gt;&lt;div&gt;&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjEAfeynV-KtsSlWyBBaHQ_G2ZdEzqSDxzOELBlINSwj6YWewB2tociar6rHLWamlZeRO35q4K_v9j5Z1Hbp1qrwxAH13Gh-FW9Hp_jnAb-53EZu9nV_3P2VFW1LG_efRcjmCuhxAAAJZazRESKYuMEhOnM35aTScYEzD4_DW8R2c4rVuK_SSPT093d2c/s750/media_125b5397820294c5f3cb36a32920c01c39a2297d3.png&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;458&quot; data-original-width=&quot;750&quot; height=&quot;244&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjEAfeynV-KtsSlWyBBaHQ_G2ZdEzqSDxzOELBlINSwj6YWewB2tociar6rHLWamlZeRO35q4K_v9j5Z1Hbp1qrwxAH13Gh-FW9Hp_jnAb-53EZu9nV_3P2VFW1LG_efRcjmCuhxAAAJZazRESKYuMEhOnM35aTScYEzD4_DW8R2c4rVuK_SSPT093d2c/w400-h244/media_125b5397820294c5f3cb36a32920c01c39a2297d3.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Screenshot from a working session on Substance 3D Modeler&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;h3 style=&quot;text-align: left;&quot;&gt;Modeling is a craft more than an art form&lt;/h3&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;/p&gt;&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;float: right; margin-left: 1em; text-align: right;&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEgyWvX38bgchZNqxgOEcZddDgcCQcArAgtjDxSxIcppXrTdUVEVROtlQ9gfx9YXkJ6Ui77zwefxM4H9x_B7xQcaMUp6WAdnGEuF79ljHiJP6dnzd7uy7xrQ0C9PVE07zoB2ClCsKUU6iMGMKEmt6DHn7tjgtmvhVOEuO7siNhOajEjR5tWDZEi55QEsqow&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img alt=&quot;Screenshot of a fan art job I did in college, 15 years ago&quot; data-original-height=&quot;1050&quot; data-original-width=&quot;1400&quot; height=&quot;240&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEgyWvX38bgchZNqxgOEcZddDgcCQcArAgtjDxSxIcppXrTdUVEVROtlQ9gfx9YXkJ6Ui77zwefxM4H9x_B7xQcaMUp6WAdnGEuF79ljHiJP6dnzd7uy7xrQ0C9PVE07zoB2ClCsKUU6iMGMKEmt6DHn7tjgtmvhVOEuO7siNhOajEjR5tWDZEi55QEsqow=w320-h240&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Fan art project I did in college, 15 years ago&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&lt;/p&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;Ok, don&#39;t shoot yet. Hear me out. When I started getting into CG, I used to think I would be a professional modeler. Modeling as a hobbyist felt to me like an exquisitely creative process. That impression was shaped by the incredible work I saw posted on CG Talk and similar sites by extremely talented generalists, who could do everything from concept to rendering. I never minded learning the tools, so picking up new software never was more of a fun challenge than a chore, because at my core I a have always been fascinated by CG tools and their making, sometimes even more than the final product.&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;div&gt;&lt;p data-pm-slice=&quot;0 0 []&quot; data-prosemirror-content-type=&quot;node&quot; data-prosemirror-node-block=&quot;true&quot; data-prosemirror-node-name=&quot;paragraph&quot; style=&quot;text-align: justify;&quot;&gt;While my early career steered me away from modeling and into shading pretty quickly, it also became apparent that in larger production realities a large portion of the creative work is done outside the modeling realm, and often by someone else - it was done in the concept stage, usually in 2d renditions, or clay sculpts, where characters and environments are designed without the limitations and technical knowledge required by existing 3D software. In other words, the creative step felt like it was controlled by talented traditional, 2D and clay concept artists for whom modeling tools were holding them back rather than empowering them.&lt;/p&gt;&lt;p data-pm-slice=&quot;0 0 []&quot; data-prosemirror-content-type=&quot;node&quot; data-prosemirror-node-block=&quot;true&quot; data-prosemirror-node-name=&quot;paragraph&quot; style=&quot;text-align: justify;&quot;&gt;On the other side of the hand-off, we have highly skilled modelers. While it does require good artistry, a great eye for detail and a keen eye for aesthetics, traditional polygon modeling in the VFX and animation productions is in many ways a technical craft. Positioning edge loops, getting the poly count right, preparing for rigging and negotiating with animators can take more time than getting the shapes right. And that&#39;s before we even mention UVs, whose ownership sometimes feels like a hot potato, to be assigned to someone else if possible.&lt;/p&gt;&lt;h3 style=&quot;text-align: justify;&quot;&gt;Sculpting: deferring the topology problem&lt;/h3&gt;&lt;p data-prosemirror-content-type=&quot;node&quot; data-prosemirror-node-block=&quot;true&quot; data-prosemirror-node-name=&quot;paragraph&quot; style=&quot;text-align: justify;&quot;&gt;&lt;/p&gt;&lt;table cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;float: left; margin-right: 1em; text-align: left;&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEi2WPCPGdveZwSdNNw_KDmxZLAo4d5dZEHD0EJlNEbVDWDLeIMYKU_ar9K_3_VoeEWY617RTc0mwMkCpV1CMFHQCGKHEC1OOA5DH4aIBPCjzjLEnlY9DI-17OTDAk7l9vVAuWFJCHNSKqN8SrXx6wX-_mppEIug44gN4UkBkTHeLmNHWPGnkgGVdT5sdBI&quot; style=&quot;clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;&quot;&gt;&lt;img alt=&quot;&quot; data-original-height=&quot;1178&quot; data-original-width=&quot;1120&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEi2WPCPGdveZwSdNNw_KDmxZLAo4d5dZEHD0EJlNEbVDWDLeIMYKU_ar9K_3_VoeEWY617RTc0mwMkCpV1CMFHQCGKHEC1OOA5DH4aIBPCjzjLEnlY9DI-17OTDAk7l9vVAuWFJCHNSKqN8SrXx6wX-_mppEIug44gN4UkBkTHeLmNHWPGnkgGVdT5sdBI=w304-h320&quot; width=&quot;304&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Dragon sculpt by &lt;br /&gt;&lt;a data-preview=&quot;&quot; href=&quot;https://www.google.com/search?ved=1t:260882&amp;amp;q=Damien+Guimoneau+art&amp;amp;bbid=3558910597161148058&amp;amp;bpid=5295752209977385491&quot; target=&quot;_blank&quot;&gt;Damien Guimoneau&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;(&lt;a data-preview=&quot;&quot; href=&quot;https://www.google.com/search?ved=1t:260882&amp;amp;q=zbrush+software&amp;amp;bbid=3558910597161148058&amp;amp;bpid=5295752209977385491&quot; target=&quot;_blank&quot;&gt;zbrush&lt;/a&gt;/&lt;a data-preview=&quot;&quot; href=&quot;https://www.google.com/search?ved=1t:260882&amp;amp;q=substance+3d+Painter+software&amp;amp;bbid=3558910597161148058&amp;amp;bpid=5295752209977385491&quot; target=&quot;_blank&quot;&gt;substance 3d Painter&lt;/a&gt;)&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&lt;/p&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;This equation changes when we look at &quot;sculpting&quot; tools. In a major shift, the concern of polygon topology, central to modeling, is shifted &quot;right&quot; in the pipeline, that is, delayed until the primary and secondary shapes, and sometimes even the details, are fully formed in a digital 3D space, not in wet clay. In our industry and at the time of writing, the main player is &lt;a href=&quot;https://www.maxon.net/en/zbrush&quot; target=&quot;_blank&quot;&gt;ZBrush&lt;/a&gt;. Without going into the technical details, sculpting tools have a huge role in empowering artists to create shapes directly on densely tessellated polygon meshes. As the shapes keep morphing in the creative process, some of these tools can handily re-topologize portions of the artpiece, as the underlying polygons get stretched too far into very long, thin strips.&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p data-prosemirror-content-type=&quot;node&quot; data-prosemirror-node-block=&quot;true&quot; data-prosemirror-node-name=&quot;paragraph&quot; style=&quot;text-align: justify;&quot;&gt;The final result of this process is a very dense mesh. However, if we temporarily disregard downstream technology like &lt;a data-preview=&quot;&quot; href=&quot;https://www.google.com/search?ved=1t:260882&amp;amp;q=Epic+Nanite+technology&amp;amp;bbid=3558910597161148058&amp;amp;bpid=5295752209977385491&quot; target=&quot;_blank&quot;&gt;Epic&#39;s Nanite&lt;/a&gt;&amp;nbsp;or &lt;a href=&quot;https://developer.nvidia.com/blog/nvidia-rtx-mega-geometry-now-available-with-new-vulkan-samples/&quot;&gt;NVidia&#39;s Meta Geometry&lt;/a&gt;, what is usually needed in production is more akin to a mesh with much less density, nice topology properties, well distributed UVs and a baked-out normal and/or displacement map, which makes up for the loss in detail. Also the mesh should preferably be quad-dominant and free of spirals of edges that make&amp;nbsp;rigging so unwieldy.&lt;/p&gt;&lt;h3 style=&quot;text-align: justify;&quot;&gt;Creating shapes while abandoning polygons&lt;/h3&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;There is another class of sculpting tools that treats topology as even more volatile, to borrow a C++ term, and uses a different type of data as its &quot;ground truth&quot;: &lt;a data-preview=&quot;&quot; href=&quot;https://www.google.com/search?ved=1t:260882&amp;amp;q=define+Signed+Distance+Fields&amp;amp;bbid=3558910597161148058&amp;amp;bpid=5295752209977385491&quot; target=&quot;_blank&quot;&gt;Signed Distance Fields&lt;/a&gt;, or SDF.&lt;/p&gt;&lt;p data-prosemirror-content-type=&quot;node&quot; data-prosemirror-node-block=&quot;true&quot; data-prosemirror-node-name=&quot;paragraph&quot; style=&quot;text-align: justify;&quot;&gt;&lt;/p&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;table cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;float: right; margin-left: 1em; text-align: right;&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEiiypi_61OxE09vsjRmBdCt5WOjOyR5BYcQFVYMN0qeKIgcKDmGnxVMVT6_TT8ce8j40CuVoTIfS7djsaG6NqMqy03UjIfWBLHtbWHOXpumXqOb-SYN-5drP9cnPZ8Qif85_SFl-xTNLU6nfgnyzE6bKN50ojEjysR5bB6D9lDR3maYqyZl63JWlEd7cRA&quot; style=&quot;clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;&quot;&gt;&lt;img alt=&quot;&quot; data-original-height=&quot;1004&quot; data-original-width=&quot;1204&quot; height=&quot;240&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEiiypi_61OxE09vsjRmBdCt5WOjOyR5BYcQFVYMN0qeKIgcKDmGnxVMVT6_TT8ce8j40CuVoTIfS7djsaG6NqMqy03UjIfWBLHtbWHOXpumXqOb-SYN-5drP9cnPZ8Qif85_SFl-xTNLU6nfgnyzE6bKN50ojEjysR5bB6D9lDR3maYqyZl63JWlEd7cRA&quot; width=&quot;288&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;&lt;table cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;float: right; margin-left: 1em; text-align: right;&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Project Neo uses analytical SDF for modeling&lt;br /&gt;Art by &lt;a data-preview=&quot;&quot; href=&quot;https://www.google.com/search?ved=1t:260882&amp;amp;q=Luc+Chamerlat+art&amp;amp;bbid=3558910597161148058&amp;amp;bpid=5295752209977385491&quot; target=&quot;_blank&quot;&gt;Luc Chamerlat&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;Some, like &lt;a href=&quot;https://projectneo.adobe.com/&quot; target=&quot;_blank&quot;&gt;Adobe&#39;s Project NEO&lt;/a&gt;, but also many of the creations on the popular site &lt;a href=&quot;https://www.shadertoy.com/&quot;&gt;ShaderToy&lt;/a&gt; use analytical SDF to build nondestructive workflows. Models are created from implicit mathematical functions that get combined using some customized boolean logic. The SDF is rendered directly as is, meaning there are no polygons involved at all. This technique is very powerful and can scale very well for very smooth, complex shapes that would need a lot of polygons to reach a similar quality. While there are recent techniques to greatly optimize rendering, the performance of this technique tends to degrade with the number of pixels and with the number of primitives (spheres, cubes) and the radius of their blending (smooth, bevel, etc). This is because the number of computations per pixel is proportional to the number of primitives that need to be considered in a given are of the render.&lt;/div&gt;&lt;h3 style=&quot;text-align: justify;&quot;&gt;Deferring topology in Substance 3D Modeler&lt;/h3&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;p data-prosemirror-content-type=&quot;node&quot; data-prosemirror-node-block=&quot;true&quot; data-prosemirror-node-name=&quot;paragraph&quot;&gt;There are other tools, like&amp;nbsp;&lt;a href=&quot;https://www.meta.com/en-gb/experiences/pcvr/oculus-medium/1336762299669605/?srsltid=AfmBOoqABN1C1jC_-CvAAKpPY-LAK74Ak6jnFfDAw6EZ_IYhz5lDMdOX&quot; target=&quot;_blank&quot;&gt;Oculus Medium&lt;/a&gt;&amp;nbsp;and its successor&amp;nbsp;&lt;a href=&quot;https://www.adobe.com/products/substance3d/apps/modeler.html&quot; target=&quot;_blank&quot;&gt;Substance 3D Modeler&lt;/a&gt;, that live in between these worlds. In additional to using analytical SDF, they store a discretized version of these SDFs in voxel grids and treat them as ground truth. This technique is also used (at much lower resolutions) by videogames, for terrain sculpting, especially when the terrain can be sensitive to destruction and needs to be recomputed. Polygons are computed from the 3d grids.&amp;nbsp;&lt;/p&gt;&lt;h4&gt;&lt;b&gt;&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEhgYHx29cz2lnkNakzU-Mn52ctP0rYz82iYJtVUL_dZwU-VxTyswjrgFTxN6AbHR5x3htGPyZFthM7U4kReBdkJflX3wEiKO8f9MVbwVwi1Y0CBuKrwnJeEIYR9DbjdoTEM4kH5_lrvx4aoNJi70kUCwp9wcdDSgXSYNANB8coaPgzmrmiBShvVmlD2gMs&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img alt=&quot;&quot; data-original-height=&quot;1080&quot; data-original-width=&quot;1920&quot; height=&quot;360&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEhgYHx29cz2lnkNakzU-Mn52ctP0rYz82iYJtVUL_dZwU-VxTyswjrgFTxN6AbHR5x3htGPyZFthM7U4kReBdkJflX3wEiKO8f9MVbwVwi1Y0CBuKrwnJeEIYR9DbjdoTEM4kH5_lrvx4aoNJi70kUCwp9wcdDSgXSYNANB8coaPgzmrmiBShvVmlD2gMs=w640-h360&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Teahouse, created by Joshua Eiten in Substance 3D Modeler&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;/b&gt;&lt;/h4&gt;&lt;h4&gt;&lt;b&gt;Clay&lt;/b&gt;&lt;/h4&gt;&lt;div&gt;&lt;p data-prosemirror-content-type=&quot;node&quot; data-prosemirror-node-block=&quot;true&quot; data-prosemirror-node-name=&quot;paragraph&quot;&gt;As a tribute to traditional sculpting - which is a hobby of some in the team, in Modeler the main data type is internally called Clay. Clay layers are voxel grids where each voxel registers its distance to the closest surface as well as, optionally, a color. The distances are clamped between -2 and +2 (just enough for the clay tools to work well), meaning we only store a thin band of data around the surface, and the rest is compressed away. Clay layers have a defined density, and unlike in Medium, they have a virtually infinite extent and are not limited by a fixed size bounding box.&lt;/p&gt;&lt;p data-prosemirror-content-type=&quot;node&quot; data-prosemirror-node-block=&quot;true&quot; data-prosemirror-node-name=&quot;paragraph&quot;&gt;Tools that work on clay volumes have an immediacy that is delightful and very tactile. The speed they can create and carve complex primary and secondary shapes feels quite amazing, especially in VR. Initially, most sculpting tools worked directly on clay volumes, but with time we found that introducing tools (such as build-up and smooth) that work directly on the mesh representation of such volumes gave better result on secondary shapes and surface detailing. That does not change the fact that all the polygons are volatile and ephemeral: after each operation on the mesh, we recompute the affected voxel grid and then recalculate a new polygon mesh off the new voxel grid, maintaining the voxel grid as ground truth. This effectively produces a freshly retopologized mesh fragment many, many times per second.&lt;/p&gt;&lt;p data-prosemirror-content-type=&quot;node&quot; data-prosemirror-node-block=&quot;true&quot; data-prosemirror-node-name=&quot;paragraph&quot;&gt;In fact we not only compute the mesh that represents the grid. In addition to the full resolution mesh, we also continuously generate its first three LODs, sampling the grid at sparser intervals. This makes it possible to use algorithms akin to&amp;nbsp;&lt;a href=&quot;https://transvoxel.org/&quot; target=&quot;_blank&quot;&gt;transvoxel&lt;/a&gt;&amp;nbsp;to smoothly transition between them and render large scenes in real time. How we got billions of volatile polygons to render smoothly in VR is worthy of a separate post.&lt;/p&gt;&lt;h3&gt;The price of deferral&lt;/h3&gt;&lt;/div&gt;&lt;p&gt;If your goal is a 3D print or a pretty picture (and your renderer can handle high res models), or guiding AI generative models, relinquishing the control over the precise polygons is quite liberating. If on the other hand your end product is a production quality mesh, to be used in some CG pipeline, that&#39;s not quite a free lunch.&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgxgvS0ZCpi2la_Xh3Or9EqS7sdsZIojRQ2QvgeDkRG_UHQlWRNnlcV8q6PfubNHa-_xACNZWe6cIltxrjsNcKBoE-aVSFfS1RTLb7mYJvDNJDia9j9IamqJRohVLPdZnO3ubcQsMrw-iZeOEH_TYy1LlEusz45XZ2kGiNaydrzSYb28xYIfhLjmD1Ppck/s1400/468284632_1008264774451565_3085197883416537053_n.jpeg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;943&quot; data-original-width=&quot;1400&quot; height=&quot;432&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgxgvS0ZCpi2la_Xh3Or9EqS7sdsZIojRQ2QvgeDkRG_UHQlWRNnlcV8q6PfubNHa-_xACNZWe6cIltxrjsNcKBoE-aVSFfS1RTLb7mYJvDNJDia9j9IamqJRohVLPdZnO3ubcQsMrw-iZeOEH_TYy1LlEusz45XZ2kGiNaydrzSYb28xYIfhLjmD1Ppck/w640-h432/468284632_1008264774451565_3085197883416537053_n.jpeg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;Seven Dwarfs, created by &lt;a href=&quot;https://www.foundminiatures.com/&quot;&gt;Daniele Trovato&lt;/a&gt; in Substance 3D Modeler&lt;/div&gt;&lt;p&gt;The problem of topology and maybe UVs is deferred to after the creative process is done. We move from a world where topology is the very medium the craft is applied to, to a post process. The tension in this process is: how do you tell the computer what one artist&#39;s idea of a perfect output is, but also spend as little attention to it as possible since it should just &quot;do it right&quot;. The process should ideally be entirely automated, and ideally would be very fast. At the time of writing, that ideal is still not quite reached, by any tool in the market that I can see, but great strides are still happening and papers are still being published. That too is worthy of a separate post.&lt;/p&gt;&lt;p&gt;That said, there are signs in the way AI is entering the industry that make me think maybe it won&#39;t always matter as much.&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;----------------------------
Extracted from blog:
http://dakrunch.blogspot.com&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dakrunch.blogspot.com/feeds/5295752209977385491/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3558910597161148058/5295752209977385491' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3558910597161148058/posts/default/5295752209977385491'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3558910597161148058/posts/default/5295752209977385491'/><link rel='alternate' type='text/html' href='http://dakrunch.blogspot.com/2025/11/deferring-topology-in-substance-3d.html' title='Deferring topology in digital sculpting'/><author><name>Davide Pesare</name><uri>http://www.blogger.com/profile/02004541122380635353</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjVv5yK9dQzgi_Rhw_L1Z6aP-l0EFX4ZaX5_wbrqUJT2BsbFur0p9Jcvld2D4rAn3GnGtIA8lk_CzZwSpc14QhSnopKGppH-MckEeif19h9u_3ephxnOVQ2gy8ysiOx6tj6xeb640KSTI0qTYsz-CW4_zVLJp5xD4bWYHiOohFCo9SmDU/s220/1743541473925.jpeg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjEAfeynV-KtsSlWyBBaHQ_G2ZdEzqSDxzOELBlINSwj6YWewB2tociar6rHLWamlZeRO35q4K_v9j5Z1Hbp1qrwxAH13Gh-FW9Hp_jnAb-53EZu9nV_3P2VFW1LG_efRcjmCuhxAAAJZazRESKYuMEhOnM35aTScYEzD4_DW8R2c4rVuK_SSPT093d2c/s72-w400-h244-c/media_125b5397820294c5f3cb36a32920c01c39a2297d3.png" height="72" width="72"/><thr:total>0</thr:total><georss:featurename>Turin, Metropolitan City of Turin, Italy</georss:featurename><georss:point>45.0703155 7.6868552</georss:point><georss:box>16.760081663821154 -27.4693948 73.380549336178845 42.8431052</georss:box></entry><entry><id>tag:blogger.com,1999:blog-3558910597161148058.post-3804367150109947241</id><published>2020-03-06T17:30:00.001-08:00</published><updated>2020-03-06T17:38:26.645-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Adobe"/><category scheme="http://www.blogger.com/atom/ns#" term="Allegorithmic"/><category scheme="http://www.blogger.com/atom/ns#" term="Cg"/><category scheme="http://www.blogger.com/atom/ns#" term="Pixar"/><category scheme="http://www.blogger.com/atom/ns#" term="Substance"/><title type='text'>We need to talk about digital backlots</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;
Having a great big library of assets, of any kind, is a lot of work. I have run into this problem and its increasingly sophisticated solutions all over my CG career.&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://magazine.substance3d.com/digital-backlots/&quot; target=&quot;_blank&quot;&gt;&lt;img alt=&quot; Substance Magazine&quot; border=&quot;0&quot; data-original-height=&quot;600&quot; data-original-width=&quot;1600&quot; height=&quot;240&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjrWs_cLAeaOFYnIl7dke_kKU6LV_qXXGDEs96bH5yHNWAarbe1CzGck2AdYBpfkzCFauPTl9zTixtvOCSbuLB1kk7KmzDNEeF1-zKjEcCN2VoDudzyXc_mni2xKEgjs5PqhLIgDhpJfhY/s640/source_library_feature_image_1920x720-1600x600.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;
After I joined a panel about it at MIFA (Annecy) a couple of years ago, I was amazed at how little knowledge is generally available on the topic. So I spent some time talking about this with my friends in the industry, from ILM, to Pixar, to EA in gaming as well as in commercial libraries in Adobe, Turbosquid, Google.&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;
The result is this piece I had initially written for this blog, but that I think is worth sharing on a larger platform: the &lt;a href=&quot;https://magazine.substance3d.com/digital-backlots/&quot; target=&quot;_blank&quot;&gt;Substance 3D Magazine&lt;/a&gt;. Enjoy!&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;blogger-post-footer&quot;&gt;----------------------------
Extracted from blog:
http://dakrunch.blogspot.com&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dakrunch.blogspot.com/feeds/3804367150109947241/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3558910597161148058/3804367150109947241' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3558910597161148058/posts/default/3804367150109947241'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3558910597161148058/posts/default/3804367150109947241'/><link rel='alternate' type='text/html' href='http://dakrunch.blogspot.com/2020/03/we-need-to-talk-about-digital-backlots.html' title='We need to talk about digital backlots'/><author><name>Davide Pesare</name><uri>http://www.blogger.com/profile/02004541122380635353</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjVv5yK9dQzgi_Rhw_L1Z6aP-l0EFX4ZaX5_wbrqUJT2BsbFur0p9Jcvld2D4rAn3GnGtIA8lk_CzZwSpc14QhSnopKGppH-MckEeif19h9u_3ephxnOVQ2gy8ysiOx6tj6xeb640KSTI0qTYsz-CW4_zVLJp5xD4bWYHiOohFCo9SmDU/s220/1743541473925.jpeg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjrWs_cLAeaOFYnIl7dke_kKU6LV_qXXGDEs96bH5yHNWAarbe1CzGck2AdYBpfkzCFauPTl9zTixtvOCSbuLB1kk7KmzDNEeF1-zKjEcCN2VoDudzyXc_mni2xKEgjs5PqhLIgDhpJfhY/s72-c/source_library_feature_image_1920x720-1600x600.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3558910597161148058.post-4469448284557924402</id><published>2020-02-17T09:06:00.002-08:00</published><updated>2020-02-17T09:18:16.650-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Adobe"/><category scheme="http://www.blogger.com/atom/ns#" term="Allegorithmic"/><category scheme="http://www.blogger.com/atom/ns#" term="Pixar"/><category scheme="http://www.blogger.com/atom/ns#" term="Substance"/><title type='text'>MaterialX as a Portable Shader Graph</title><content type='html'>&lt;div style=&quot;text-align: justify;&quot;&gt;
The MaterialX initiative, started by Lucasfilm, has been around for a several years and I have been looking at it and in some form contributing since before I left Pixar. Perhaps the main reason I have stayed interested in MaterialX over the years is its relationship with USD.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
When we designed the UsdShade schemas, we did it carefully so it would evolve in lockstep with MaterialX and have entirely compatible concepts for Looks, Collections, Shaders, Materials. However, as an engineering lead, I took the key (looking back, maybe controversial) choice of leaving specific shading math out of them. That was deliberate, because I was designing the schemas for Pixar use. Holding 100% of the production for our own movies, we were less concerned about exchange (which is still true today). More importantly, at the time, our custom shader graphs were rather huge and they were assembled with nodes that were not easily representable in MaterialX constructs, both in terms of UX and in terms of RenderMan-specific side effects. In fact, when we cared about portability, we ended up baking down all the shaders to textures, effectively losing all their proceduralism. So my realistic goal for the collaboration with Lucasfilm was that anyone using MaterialX could work well with USD, while knowing that Pixar had little appetite for MaterialX.&lt;br /&gt;
&lt;br /&gt;
Still, joining Allegorithmic (and later Adobe) has made more clear to me how USD can improve its portability by leveraging MaterialX, and how MaterialX holds value even outside of USD. Things of course did evolve once I left.&amp;nbsp;&lt;a href=&quot;https://graphics.pixar.com/usd/docs/api/usd_mtlx_page_front.html&quot; target=&quot;_blank&quot;&gt;UsdMtlx&lt;/a&gt;&amp;nbsp;is a significant step forward, though I don&#39;t think we are done.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Building patterns and illumination through shaders is an art. And doing it through graphs is, in my opinion, still the best way to do it. Making those shaders useful and portable no matter what render target you are working on is critical for many reasons. For Adobe, it helps making our Substance Materials more general and portable. For film and game studios, it helps to exchange shaders without losing their feature set by baking everything down to textures.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
But to get started, we needed a good node graph toolset. Substance Designer was the obvious choice, as it is already a node-based tool where we build materials. We had to get Substance Designer extended so we could add more, arbitrarily complex graphs with new semantics. So in 2019 we pushed this Labs project for SIGGRAPH.&lt;br /&gt;
&lt;br /&gt;
We presented a collaboration with LucasFilm and Autodesk, in a push to help standardize shading pattern generation. &lt;a href=&quot;https://magazine.substance3d.com/research-a-portable-shader-graph/&quot; target=&quot;_blank&quot;&gt;In this article on Substance Magazine I describe more in depth what we did and how.&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;a href=&quot;https://magazine.substance3d.com/research-a-portable-shader-graph/&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;600&quot; data-original-width=&quot;1600&quot; height=&quot;240&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgkLVUiYT6iawPhnLIxzMJDzm7QTk08oNmKcEwB1XoJPtb7wccDA-9iOu_AplHCfezWtGRFBhzQ0_TRO3HZYpmqwGpmqTHkxqag70R8NZoVFg-8lqe4Gq2VmWPLsvCz1sgjirpAUs1iHYQ/s640/us_lucasfilm_feature_image_1920x720-1600x600.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot;&gt;&lt;a href=&quot;https://magazine.substance3d.com/research-a-portable-shader-graph/&quot; target=&quot;_blank&quot;&gt;©&amp;amp;TM Lucasfilm Ltd. Used with Permission&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
A lot of credit for this work goes also to David Larsson, a great friend and colleague who also shares my passion on this topic. He did a ton of the work and helped with the collaboration with our counterparts in the Autodesk team. I should also thank our friends at Lucasfilm: Jonathan Stone and Doug Smythe - who have always been great at accepting our inputs and helping us through tough design decisions, while I was at Pixar and even now at Adobe. Finally, special thanks to the tireless Substance Designer team, as well as Jerome and Andrea in our Special Projects group, for their deep MDL knowledge and for keeping us real.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Enjoy!&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;blogger-post-footer&quot;&gt;----------------------------
Extracted from blog:
http://dakrunch.blogspot.com&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dakrunch.blogspot.com/feeds/4469448284557924402/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3558910597161148058/4469448284557924402' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3558910597161148058/posts/default/4469448284557924402'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3558910597161148058/posts/default/4469448284557924402'/><link rel='alternate' type='text/html' href='http://dakrunch.blogspot.com/2020/02/materialx-as-portable-shader-graph.html' title='MaterialX as a Portable Shader Graph'/><author><name>Davide Pesare</name><uri>http://www.blogger.com/profile/02004541122380635353</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjVv5yK9dQzgi_Rhw_L1Z6aP-l0EFX4ZaX5_wbrqUJT2BsbFur0p9Jcvld2D4rAn3GnGtIA8lk_CzZwSpc14QhSnopKGppH-MckEeif19h9u_3ephxnOVQ2gy8ysiOx6tj6xeb640KSTI0qTYsz-CW4_zVLJp5xD4bWYHiOohFCo9SmDU/s220/1743541473925.jpeg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgkLVUiYT6iawPhnLIxzMJDzm7QTk08oNmKcEwB1XoJPtb7wccDA-9iOu_AplHCfezWtGRFBhzQ0_TRO3HZYpmqwGpmqTHkxqag70R8NZoVFg-8lqe4Gq2VmWPLsvCz1sgjirpAUs1iHYQ/s72-c/us_lucasfilm_feature_image_1920x720-1600x600.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3558910597161148058.post-6852309709462013936</id><published>2020-01-05T22:05:00.002-08:00</published><updated>2020-01-05T22:09:59.268-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Travel"/><title type='text'>Au revoir, France</title><content type='html'>&lt;div style=&quot;text-align: justify;&quot;&gt;
When I left Pixar, I told myself and everyone that Mayah and I were going to try to live in France for at least a year, maybe two. Then you never know in life, we might stay for good. Life was getting comfortable in San Francisco, years were flying by and one thing I learnt that makes it slow down for me is getting out of my comfort zone and try something different. It was my eighth international move, so I knew something about that.&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
As exciting as it was for me, leaving a dream job to move to France was even more so for some of my friends. Some told me I was living their secret dream and some even booked the flight to come visit us in France before we got our own.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWCZZIAGNJRVY8daeYVhGsUyY0bQwW3RIOO6Etok_hgZOzVDtHG_y4M1Cmie5J7P_eKeJBPBdB5mmI-NQG7DYPrYo_ZSi484KkU5LrrrQfqbl5yyxPmwMaL2d0E_VLNBqFGRSJzWxMGto/s1600/IMG_4376.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; display: inline !important; float: right; margin-bottom: 1em; margin-left: 1em; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1600&quot; data-original-width=&quot;1200&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWCZZIAGNJRVY8daeYVhGsUyY0bQwW3RIOO6Etok_hgZOzVDtHG_y4M1Cmie5J7P_eKeJBPBdB5mmI-NQG7DYPrYo_ZSi484KkU5LrrrQfqbl5yyxPmwMaL2d0E_VLNBqFGRSJzWxMGto/s320/IMG_4376.jpg&quot; width=&quot;240&quot; /&gt;&lt;/a&gt;As it turns out (duh) moving in two is more complicated than moving alone. How you feel about a place gets more nuanced. The reasons to be in a place or another stack up, making it difficult to make up your mind. In the end, after almost exactly two years, we decided to move back and as of three days ago, we are living in San Francisco again.&lt;br /&gt;
&lt;br /&gt;
Coming back to the Bay area is a joyful thing. Seeing our friends and family really is making it easy. Leaving Lyon, on the other hand, wasn&#39;t easy at all. We fell in love with that city, the friends we made there, and the life we had. Making Lyon feel like home was actually easy. Perhaps it&#39;s because looking at the state of things in each place, I would say that Lyon felt more civilized. Culture is everywhere and approachable, with intimate concerts, plays, workshops. Streets are clean, walking around at night feels (and is) safe, even pleasant with breathtaking views of lit up historical buildings, hills, river banks at every turn. Streets are sprawling with affordable cafes, bakeries and bistros, and people are out enjoying them. Public transport is clean fast and safe, people on it often read books or connect with each other. And the markets! oh the French markets in Lyon are such a treat for someone who loves food and cooking.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXpImwyu8kZoI9HvQ_eMQb4rkKsuaK5gfBwA08_83m-hd_V-ADXvnsPERleVR_3NWLn9QuBsbQ6tumfolrq1lswvP8KBDc39peg7Prw5w-Ut_MqD1ywLSqw4W5ifSHMaxLz_XXmOK3RWs/s1600/IMG_6525.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1200&quot; data-original-width=&quot;1600&quot; height=&quot;240&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXpImwyu8kZoI9HvQ_eMQb4rkKsuaK5gfBwA08_83m-hd_V-ADXvnsPERleVR_3NWLn9QuBsbQ6tumfolrq1lswvP8KBDc39peg7Prw5w-Ut_MqD1ywLSqw4W5ifSHMaxLz_XXmOK3RWs/s320/IMG_6525.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;Speaking of cooking, as promised when we decided to move to the French gourmet capital Lyon, I did a number of cooking courses. Initially it was hard to follow, as they were entirely in French, in the evening, after a full day of work. But I stuck it out and gained a great deal of theoretical and practical depth. &lt;br /&gt;
&lt;br /&gt;
We got a nice apartment with a lovely kitchen, which we made good use of, making some new French food and refining some of our classic recipes using French techniques, which as extremely applicable in many other cuisines.&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-gF0hv3ivbXsIOPHCJQkQ9lAATMnxa1k-9GZ3Kdx8sEueuoxaSjDhcJL6Tud2QAqMltR_Gs8RycOKAvhwYugBdHx5HEiyHjK_lkAsadMQ6gsJ5gNSf8g-qNbbBMJ0uhoT445eCZLa5qQ/s1600/IMG_0138.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;996&quot; data-original-width=&quot;1600&quot; height=&quot;396&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-gF0hv3ivbXsIOPHCJQkQ9lAATMnxa1k-9GZ3Kdx8sEueuoxaSjDhcJL6Tud2QAqMltR_Gs8RycOKAvhwYugBdHx5HEiyHjK_lkAsadMQ6gsJ5gNSf8g-qNbbBMJ0uhoT445eCZLa5qQ/s640/IMG_0138.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhnZj0Jj_YbCUK_PUqJjIrxW0sYxLw5AoTJOIGhxURKEmQelnRJJzL2lWF21R1v0onR2aTCVRkFAZLtSZv5cPp4a_uvkzlbNQj-xQ1N_rgVg3u2m4UREIRVmmsR_-k2khc3OtEP8-qOH3g/s1600/IMG_0143.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1002&quot; data-original-width=&quot;1600&quot; height=&quot;400&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhnZj0Jj_YbCUK_PUqJjIrxW0sYxLw5AoTJOIGhxURKEmQelnRJJzL2lWF21R1v0onR2aTCVRkFAZLtSZv5cPp4a_uvkzlbNQj-xQ1N_rgVg3u2m4UREIRVmmsR_-k2khc3OtEP8-qOH3g/s640/IMG_0143.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLnAXHLOrixG-zTlzQzsTFFTflSKj4vTELN4WgEgvJs3Ddcg7A-77QPINOTAJlQ-GSMRJgaH8O7voun0N03MGpT-si0dEsrGlaArCTWUyyKWbiqq9tGl1KL95ZqgQprXIBzhHSfEYeTvY/s1600/IMG_0331.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1135&quot; data-original-width=&quot;1600&quot; height=&quot;451&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLnAXHLOrixG-zTlzQzsTFFTflSKj4vTELN4WgEgvJs3Ddcg7A-77QPINOTAJlQ-GSMRJgaH8O7voun0N03MGpT-si0dEsrGlaArCTWUyyKWbiqq9tGl1KL95ZqgQprXIBzhHSfEYeTvY/s640/IMG_0331.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-FYYQN_aFoyHGDxxWkNlmmRT1xZ4R5x7CM1Cf0AlDh-cv33KtkkIFFegFjUy7gunLCKi3Usg173-NbD55bscgIwScmDbJ_jURiQQl5tIILF-b9F60vIIZSnwvQy6-IGChz_4Y2WnFpfg/s1600/IMG_4908.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1201&quot; data-original-width=&quot;1600&quot; height=&quot;480&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-FYYQN_aFoyHGDxxWkNlmmRT1xZ4R5x7CM1Cf0AlDh-cv33KtkkIFFegFjUy7gunLCKi3Usg173-NbD55bscgIwScmDbJ_jURiQQl5tIILF-b9F60vIIZSnwvQy6-IGChz_4Y2WnFpfg/s640/IMG_4908.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhLVzd1IvCVG2DY7_NE-BhIuuFpuC89jWb3LdO7NRF-q7rFTcRCpY7H7IfB06ONBJVckJROa6lVMm-TWS3EMQQ2QyQK65YkzEt_cI7Q7mOf4kEifrT2kIEOegwRH598KMceTd0v8YOVWxo/s1600/IMG_6189.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1506&quot; data-original-width=&quot;1600&quot; height=&quot;601&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhLVzd1IvCVG2DY7_NE-BhIuuFpuC89jWb3LdO7NRF-q7rFTcRCpY7H7IfB06ONBJVckJROa6lVMm-TWS3EMQQ2QyQK65YkzEt_cI7Q7mOf4kEifrT2kIEOegwRH598KMceTd0v8YOVWxo/s640/IMG_6189.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCwonvd2vOJc5Qn-_QECo1Klz84KzQ4BFLg1DgSwD8Lbvpa0DZUtnZKr8s_wc0KqUvBeMFo-xAD22V_h4qlcS5UtA32MSeogth6DlehmR9afLjm_eScqamy3nEfuak8mH352blYnYNONI/s1600/P1150437.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1069&quot; data-original-width=&quot;1600&quot; height=&quot;425&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCwonvd2vOJc5Qn-_QECo1Klz84KzQ4BFLg1DgSwD8Lbvpa0DZUtnZKr8s_wc0KqUvBeMFo-xAD22V_h4qlcS5UtA32MSeogth6DlehmR9afLjm_eScqamy3nEfuak8mH352blYnYNONI/s640/P1150437.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgEMAsz_Hqhi1C_hSZepMmcEB0CuGfz55JUqKsyL-lvxAe5PuQt0pcAaOq9CvEWFw8K-0k1J1PnSLhc9KroLO7UohnPKlPJm62OfGAKBSq86GfVYFB5OrcLSWF1KHqq1YaknFcfweywGTc/s1600/IMG_5034.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1200&quot; data-original-width=&quot;1600&quot; height=&quot;480&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgEMAsz_Hqhi1C_hSZepMmcEB0CuGfz55JUqKsyL-lvxAe5PuQt0pcAaOq9CvEWFw8K-0k1J1PnSLhc9KroLO7UohnPKlPJm62OfGAKBSq86GfVYFB5OrcLSWF1KHqq1YaknFcfweywGTc/s640/IMG_5034.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7TEvtn_FAyv4hlfw8BgApWS6jZwGhgvG8FYSFP2ZhhgBj7JlKA9C0D2qClvyndkU4SK5SZylVvWI2F6qQZMTkrKOBSk1GI3cOM7XQcSlpM3fPnp1Kx1agfWSHrkzGSW7sdSP_rUY4zEk/s1600/IMG_3371.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1200&quot; data-original-width=&quot;1600&quot; height=&quot;480&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7TEvtn_FAyv4hlfw8BgApWS6jZwGhgvG8FYSFP2ZhhgBj7JlKA9C0D2qClvyndkU4SK5SZylVvWI2F6qQZMTkrKOBSk1GI3cOM7XQcSlpM3fPnp1Kx1agfWSHrkzGSW7sdSP_rUY4zEk/s640/IMG_3371.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEilON3qHyACgoY_ZjNMF21Ug7s4DzTnpsxyVItEmy0ucgu_UFzpHdap5fXTEB3Jwo4nL-52yV8WwJJSRBd1sq4GR3FflfiVS39-yzkoChXyLOtB-f1LByr3t-1ft3Zj1d2mL25g9aq0tcc/s1600/P1150312.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;961&quot; data-original-width=&quot;1600&quot; height=&quot;384&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEilON3qHyACgoY_ZjNMF21Ug7s4DzTnpsxyVItEmy0ucgu_UFzpHdap5fXTEB3Jwo4nL-52yV8WwJJSRBd1sq4GR3FflfiVS39-yzkoChXyLOtB-f1LByr3t-1ft3Zj1d2mL25g9aq0tcc/s640/P1150312.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;
Time did slow down for us, as I had hoped. The last two years may have flown for some, but it felt like five for us. Everything was new. Our home, the language we spoke everyday, the local culture, the landscapes, the opportunities for day trips. We could not see much of Mayah&#39;s family while we were there, though they did visit, along with a large amount of friends from Pixar and California. On the other hand, we were only four hours drive away from mine, so we often went to spend the weekends in Italy.&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;
We organized a wedding party, almost two years after we got married, with my Italian family. We picked the remains of a little medieval fortress, now used as a brewery, in the valley of Susa, which connects Italy to France through the Alps.&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiaBV7Qqjik2o2Kov6l64tyOG4pICUK6g3lv3Zz_3XAP_nQekGFVycQS5fWloG1dT3mf2u3GfNeUzEyZWxa1wKS1aDfnd3DomD74g18YB1XWczGty4b67uDblF9k_RTG1at8w8dvSqktiU/s1600/D81_2705.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;928&quot; data-original-width=&quot;1600&quot; height=&quot;370&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiaBV7Qqjik2o2Kov6l64tyOG4pICUK6g3lv3Zz_3XAP_nQekGFVycQS5fWloG1dT3mf2u3GfNeUzEyZWxa1wKS1aDfnd3DomD74g18YB1XWczGty4b67uDblF9k_RTG1at8w8dvSqktiU/s640/D81_2705.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj1hNbC2X2axxfZbluHzeEjfOkXetv9oX3dORRD_sK0U2mcLH6pfMnNA6n946ysq1Mj3-m9asjg6-x0gFw2j-c-9c_jMJwWquUHbGi1O30oPnVUyneetd2nsIbPUeQu1gx_s4QJd2koO-U/s1600/DSC_0213.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1067&quot; data-original-width=&quot;1600&quot; height=&quot;426&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj1hNbC2X2axxfZbluHzeEjfOkXetv9oX3dORRD_sK0U2mcLH6pfMnNA6n946ysq1Mj3-m9asjg6-x0gFw2j-c-9c_jMJwWquUHbGi1O30oPnVUyneetd2nsIbPUeQu1gx_s4QJd2koO-U/s640/DSC_0213.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
These two years we also took advantage of our location to explore France a bit more, as I got to check a bunch of items off my bucket list.&amp;nbsp;We went to see Paris and Versailles (where we ran into more Pixar friends of course). We explored the frosty Bretagne in the winter, along with Mont Saint Michel, and explored the idyllic cattle farms of the region.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhqw3du-1rccvcX4SeSQzT-F8DF1cDpsPLCEIwWbTnUHWFRzk1cABWpz0qAiEh52EDfFPGdnK_BRi57PDoLIKS-TrXEDRgXw79mdPBZ0yEorF9-vU3b8j50191ZZRX9BzknI1z1cWbrCqA/s1600/IMG_7131.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1200&quot; data-original-width=&quot;1600&quot; height=&quot;480&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhqw3du-1rccvcX4SeSQzT-F8DF1cDpsPLCEIwWbTnUHWFRzk1cABWpz0qAiEh52EDfFPGdnK_BRi57PDoLIKS-TrXEDRgXw79mdPBZ0yEorF9-vU3b8j50191ZZRX9BzknI1z1cWbrCqA/s640/IMG_7131.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
We ate our way through the red hills of Dordogne in the Fall, road tripping the countryside with some of our favorite people. We dined on chestnuts and duck confits, and slept in farmhouses and castles, and we marveled as we saw ancient caves covered with prehistoric murals.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdDUVFs68oFeQw6_Dkbj7shG9SaQ42vnbyqT7RKcLl9PqjUVS1AKpvuf_9JyJW4IjkkUnzjM-ieHkKDwTHTMPFBfmA7wOK3fyen328rrWUSQ-2768YvmVBVmLwwANk-qgI18hudn4wTsU/s1600/IMG_4264.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;589&quot; data-original-width=&quot;1600&quot; height=&quot;234&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdDUVFs68oFeQw6_Dkbj7shG9SaQ42vnbyqT7RKcLl9PqjUVS1AKpvuf_9JyJW4IjkkUnzjM-ieHkKDwTHTMPFBfmA7wOK3fyen328rrWUSQ-2768YvmVBVmLwwANk-qgI18hudn4wTsU/s640/IMG_4264.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0go_i-NwtvBqjmkQye0tSvj7_aguIH8i5W_CkysLo-W3oBYSsGmvdSzlUEM5SIkYVoXopK5xdlmeRFmwNk8hvCLqKNYugwWkL6l4q2fD305CW_OSiTGmUCHWKbStvl6hE4MP80N-of70/s1600/IMG_4234.JPG&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1600&quot; data-original-width=&quot;1200&quot; height=&quot;400&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0go_i-NwtvBqjmkQye0tSvj7_aguIH8i5W_CkysLo-W3oBYSsGmvdSzlUEM5SIkYVoXopK5xdlmeRFmwNk8hvCLqKNYugwWkL6l4q2fD305CW_OSiTGmUCHWKbStvl6hE4MP80N-of70/s400/IMG_4234.JPG&quot; width=&quot;300&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
In the Summer we cruised across the dreamy landscapes of Provence, which was just like in those movies that I always felt were simply idealizing the romantic vibe of a blooming countryside and the exaggerated charms of the French joie-de-vivre. Turns out, that vibe is real. It&#39;s a unique place and I felt like moving there and opening a bed and breakfast. If I did&#39;t love my job I would probably have done it.&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
As the heat picked up - something that is easy to underestimate when you are used to the Bay Area climate - we decided hike the rocky cliffs of the French Riviera, and to bathe in the blue waters of the Mediterranean sea, to escape the burning heat of the city.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgh3gTnYqDNv2_3Csk9SabRcHrk_HN3ofhKdCgRqAHJ97W1pUONsapHd3vrP6xXQKdvTQApEMIcg0F7QrBZPGe0sQMEQZ52Nz9132Ti8LLA0RRiAgdA8QyTOwicH-vkrCa9T0kpY5rHaxg/s1600/IMG_4836.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1200&quot; data-original-width=&quot;1600&quot; height=&quot;480&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgh3gTnYqDNv2_3Csk9SabRcHrk_HN3ofhKdCgRqAHJ97W1pUONsapHd3vrP6xXQKdvTQApEMIcg0F7QrBZPGe0sQMEQZ52Nz9132Ti8LLA0RRiAgdA8QyTOwicH-vkrCa9T0kpY5rHaxg/s640/IMG_4836.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Speaking of bucket lists and French Rivieras, we attended the Cannes Film Festival. We walked the red carpets and enjoyed the local delicacies. We saw a screening of the Black Panther on the beach screen, presented by the Oakland-born director himself. I am positive we ran into a number of French and international celebrities, although we could not always recognize them.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhF6lBkHQi5_aKUJkRgTXPKN-pcGqiRRkOYWIOj7iJrbovHRNkdY39rulh58SeK868rw73OQtBpg0x1lu2pG2Ik9jh2T6ZrLNh9C0vdWJ0Za8Y1oOSZ2BZ5fS9zSFaT72WuRWHhyphenhyphenl6XNrI/s1600/P1150398.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; display: inline !important; margin-bottom: 1em; margin-right: 1em; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1069&quot; data-original-width=&quot;1600&quot; height=&quot;424&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhF6lBkHQi5_aKUJkRgTXPKN-pcGqiRRkOYWIOj7iJrbovHRNkdY39rulh58SeK868rw73OQtBpg0x1lu2pG2Ik9jh2T6ZrLNh9C0vdWJ0Za8Y1oOSZ2BZ5fS9zSFaT72WuRWHhyphenhyphenl6XNrI/s640/P1150398.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjfLsezyy5-LiuDgEavvWwwIuE9C_GvDDAVa9bIY8mOYXNE8rFvZ9x3RF9Fpvc6ODHiv_SzYwjPQZvpQd1NUCF_nO4Bp1uKHMJbNAL57sQ8scVReDQl95eOEWj9qUE6f_p25Xmb3-wqkaA/s1600/IMG_2691.JPG&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1204&quot; data-original-width=&quot;1600&quot; height=&quot;300&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjfLsezyy5-LiuDgEavvWwwIuE9C_GvDDAVa9bIY8mOYXNE8rFvZ9x3RF9Fpvc6ODHiv_SzYwjPQZvpQd1NUCF_nO4Bp1uKHMJbNAL57sQ8scVReDQl95eOEWj9qUE6f_p25Xmb3-wqkaA/s400/IMG_2691.JPG&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
Staying local was exciting too. Beyond Lyon, less than two hour bus ride away, lies Annecy. Besides having a beautiful lake and a lot of delicious Savoyard delicacies, it is the seat of the Annecy Animation Film Festival, which is a pilgrimage destination for many in our Animation world. We ran into a ton of friends from across the globe, which makes the CG world feel small and cozy, yet huge and marvelous.&lt;br /&gt;
&lt;br /&gt;
So, was it worth leaving Pixar after ten years?&lt;br /&gt;
It&#39;s a bit tough, but I think so, as the life experiences we got made us grow, personally and as a couple, more than two extra years in SF.&lt;br /&gt;
Do I miss Pixar?&lt;br /&gt;
You bet! it was an amazing place with incredible people, and I am reminded of it every time I visit. There are things and people that I love and that I will always miss - although now I&#39;m not so far, so I&#39;ll definitely see them more.&lt;br /&gt;
&lt;br /&gt;
So... What am I up to in SF now then? I am not going back to Pixar, as many asked. Adobe, as you may know, has acquired Substance last year, and it is giving my teams a shot at doing something very impactful - and fun too. I am so very excited about the new challenges and opportunity ahead. Tomorrow morning I&#39;ll start my first day at the SF office!&lt;br /&gt;
&lt;br /&gt;
Au revoir, France! I&#39;ll come visit soon again, because I miss you already.&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;blogger-post-footer&quot;&gt;----------------------------
Extracted from blog:
http://dakrunch.blogspot.com&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dakrunch.blogspot.com/feeds/6852309709462013936/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3558910597161148058/6852309709462013936' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3558910597161148058/posts/default/6852309709462013936'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3558910597161148058/posts/default/6852309709462013936'/><link rel='alternate' type='text/html' href='http://dakrunch.blogspot.com/2020/01/au-revoir-france.html' title='Au revoir, France'/><author><name>Davide Pesare</name><uri>http://www.blogger.com/profile/02004541122380635353</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjVv5yK9dQzgi_Rhw_L1Z6aP-l0EFX4ZaX5_wbrqUJT2BsbFur0p9Jcvld2D4rAn3GnGtIA8lk_CzZwSpc14QhSnopKGppH-MckEeif19h9u_3ephxnOVQ2gy8ysiOx6tj6xeb640KSTI0qTYsz-CW4_zVLJp5xD4bWYHiOohFCo9SmDU/s220/1743541473925.jpeg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWCZZIAGNJRVY8daeYVhGsUyY0bQwW3RIOO6Etok_hgZOzVDtHG_y4M1Cmie5J7P_eKeJBPBdB5mmI-NQG7DYPrYo_ZSi484KkU5LrrrQfqbl5yyxPmwMaL2d0E_VLNBqFGRSJzWxMGto/s72-c/IMG_4376.jpg" height="72" width="72"/><thr:total>0</thr:total><georss:featurename>Lyon, France</georss:featurename><georss:point>45.764043 4.8356589999999642</georss:point><georss:box>45.586788500000004 4.5129354999999638 45.9412975 5.1583824999999646</georss:box></entry><entry><id>tag:blogger.com,1999:blog-3558910597161148058.post-585819419047794515</id><published>2018-12-12T01:11:00.001-08:00</published><updated>2018-12-12T01:14:35.786-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Allegorithmic"/><category scheme="http://www.blogger.com/atom/ns#" term="Cg"/><category scheme="http://www.blogger.com/atom/ns#" term="Pixar"/><title type='text'>Texture Streaming from Substance Painter</title><content type='html'>&lt;div style=&quot;text-align: justify;&quot;&gt;
Hi all!&lt;br /&gt;
&lt;br /&gt;
I posted another tech piece on the &lt;a href=&quot;https://www.allegorithmic.com/blog/research-texture-streaming-substance-painter&quot; target=&quot;_blank&quot;&gt;Allegorithmic Blog&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
This one is about the work we did last Summer to try and speed up the interaction between painting and rendering. This was a collaboration with RenderMan as well as with Appleseed.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgdxd8oIFvXt3YYqY_r1FKCZKRbQoj60gga9CW4RGl16zMeAQRsZyxHSTTu_aNkmT4tOlZiC2dGbhA9kTRsX8ayJbaJPYTCDZEeWlUevhk2BQz8OMEU8sp76mb_qrtjp_AmtHDA6HTkL_c/s1600/rollingTeapotSet_V02.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;900&quot; data-original-width=&quot;1600&quot; height=&quot;360&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgdxd8oIFvXt3YYqY_r1FKCZKRbQoj60gga9CW4RGl16zMeAQRsZyxHSTTu_aNkmT4tOlZiC2dGbhA9kTRsX8ayJbaJPYTCDZEeWlUevhk2BQz8OMEU8sp76mb_qrtjp_AmtHDA6HTkL_c/s640/rollingTeapotSet_V02.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
While still a prototype, the results we got were great! We went from a workflow that required seconds to minutes, to a near-seamless stream of textures.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixCZu5gnfx78Ps3nQIQWgfz-ihhCbEWsX4BuqBeHOH-f3xd7Be4pIYLJGye0MDGTzta7t3AnmiZwae71ut2bFzEssjB2gZlE0KOtObSo6Dg_s_x0Kl2dND75RKjBjAdZVq_ZUdEO-NhkM/s1600/hankAndRollingTeapot_3.gif&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;450&quot; data-original-width=&quot;800&quot; height=&quot;360&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixCZu5gnfx78Ps3nQIQWgfz-ihhCbEWsX4BuqBeHOH-f3xd7Be4pIYLJGye0MDGTzta7t3AnmiZwae71ut2bFzEssjB2gZlE0KOtObSo6Dg_s_x0Kl2dND75RKjBjAdZVq_ZUdEO-NhkM/s640/hankAndRollingTeapot_3.gif&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
Here is the full video we showed.&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;iframe allowfullscreen=&quot;&quot; class=&quot;YOUTUBE-iframe-video&quot; data-thumbnail-src=&quot;https://i.ytimg.com/vi/JRlYnZtmjZg/0.jpg&quot; frameborder=&quot;0&quot; height=&quot;450&quot; src=&quot;https://www.youtube.com/embed/JRlYnZtmjZg?feature=player_embedded&quot; width=&quot;800&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;br /&gt;
Find out why and how we did it on the&amp;nbsp;&lt;a href=&quot;https://www.allegorithmic.com/blog/research-texture-streaming-substance-painter&quot; target=&quot;_blank&quot;&gt;Allegorithmic Blog&lt;/a&gt;.&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;blogger-post-footer&quot;&gt;----------------------------
Extracted from blog:
http://dakrunch.blogspot.com&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dakrunch.blogspot.com/feeds/585819419047794515/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3558910597161148058/585819419047794515' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3558910597161148058/posts/default/585819419047794515'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3558910597161148058/posts/default/585819419047794515'/><link rel='alternate' type='text/html' href='http://dakrunch.blogspot.com/2018/12/texture-streaming-from-substance-painter.html' title='Texture Streaming from Substance Painter'/><author><name>Davide Pesare</name><uri>http://www.blogger.com/profile/02004541122380635353</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjVv5yK9dQzgi_Rhw_L1Z6aP-l0EFX4ZaX5_wbrqUJT2BsbFur0p9Jcvld2D4rAn3GnGtIA8lk_CzZwSpc14QhSnopKGppH-MckEeif19h9u_3ephxnOVQ2gy8ysiOx6tj6xeb640KSTI0qTYsz-CW4_zVLJp5xD4bWYHiOohFCo9SmDU/s220/1743541473925.jpeg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgdxd8oIFvXt3YYqY_r1FKCZKRbQoj60gga9CW4RGl16zMeAQRsZyxHSTTu_aNkmT4tOlZiC2dGbhA9kTRsX8ayJbaJPYTCDZEeWlUevhk2BQz8OMEU8sp76mb_qrtjp_AmtHDA6HTkL_c/s72-c/rollingTeapotSet_V02.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3558910597161148058.post-6992367797416881294</id><published>2018-11-05T06:16:00.000-08:00</published><updated>2018-11-06T01:08:02.667-08:00</updated><title type='text'>3D Photos on Facebook and Substance Painter</title><content type='html'>&lt;div style=&quot;text-align: justify;&quot;&gt;
Today I went tinkering with Substance Painter and the new 3D photos on Facebook. Turns out the feature is viewable, but not uploadable yet in France.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
However, if you &quot;like&quot; the official Facebook 360 &lt;a href=&quot;https://www.facebook.com/Facebook360&quot;&gt;page&lt;/a&gt;, and restart your phone Facebook app, that feature will be enabled, as a &quot;beta&quot; before it becomes official.&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijI7BoBfRang5zMXvstwWV1k_RifJN6KAIB6i8dYrchYiL3RG_WuAenQoke4vnPTGh2a25u1exG7fD8KoIyDn77khpxqSORUMrn60xJoXMVqHlNuvyOc4Vu93St689ewhonLVouxGTcuU/s1600/color.png&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijI7BoBfRang5zMXvstwWV1k_RifJN6KAIB6i8dYrchYiL3RG_WuAenQoke4vnPTGh2a25u1exG7fD8KoIyDn77khpxqSORUMrn60xJoXMVqHlNuvyOc4Vu93St689ewhonLVouxGTcuU/s400/color.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
I got it working, and it was quite fun! Here is my original Facebook post, using a sample scene provided with Substance Painter.&lt;br /&gt;
&lt;br /&gt;
&lt;iframe allow=&quot;encrypted-media&quot; allowtransparency=&quot;true&quot; frameborder=&quot;0&quot; height=&quot;608&quot; scrolling=&quot;no&quot; src=&quot;https://www.facebook.com/plugins/post.php?href=https%3A%2F%2Fwww.facebook.com%2Fda.krunch%2Fposts%2F10157090487450934&amp;amp;width=500&quot; style=&quot;border: none; overflow: hidden;&quot; width=&quot;500&quot;&gt;&lt;/iframe&gt;&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
1. I had to write an openGL shader extension to output depth in a usable range. The code is pretty trivial, I am rerouting a function of gl_FragColor.z to _outputs.emissiveColor.xyz.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Here is my code snippet:&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;// change distance curve to something visually readable&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt; &lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;float dist = pow(gl_FragCoord.z, 256.0);&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;// add contrast&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;dist = dist * 2.0 - 0.5;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;// feed to the emission component of the pbr shader&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;outputs_.emissiveColor = vec3(dist);&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiaI-mr-73WxgrWvMqOI1pShpDXAVET3ibuLQe_Is8qlr0sxQPoXVOGaPwjbRirOzFd_en9NpbFARuHZKWBZp8qACjfR8i3f2AFRBzkH7YTGW_2udQFao1wwPYbV8sT0fLx7QynVuKdahs/s1600/depth.png&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;266&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiaI-mr-73WxgrWvMqOI1pShpDXAVET3ibuLQe_Is8qlr0sxQPoXVOGaPwjbRirOzFd_en9NpbFARuHZKWBZp8qACjfR8i3f2AFRBzkH7YTGW_2udQFao1wwPYbV8sT0fLx7QynVuKdahs/s400/depth.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
2. Save screenshots with the color and the depth. There is no tool for that AFAICT, so I simply used my OS screenshot tool. The depth is quantized to 8 bits, but it&#39;s good enough for this.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
3. Then, off to Gimp (photoshop, what not) to play with the depth contrast if needed and to crop it to 1200x800, or 800x1200 for Facebook to accept it. Layer the depth and color so they match. Export them separately. I suspect having different resolutions might in fact work, but I didn&#39;t test it.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
4. Save to ICloud (There is definitely an android way too, but I used an IphoneX).&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
5. Import to your Iphone photos by saving it from ICloud.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
6. In &quot;&lt;a href=&quot;https://itunes.apple.com/fr/app/depth-cam-depth-editor/id1261191886?mt=8&quot;&gt;Depth Cam&lt;/a&gt;&quot;, which I found available on the app store, load color and depth, then save photo.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
7. Reload the combined photo in Depth Cam, and turn on &quot;Portrait&quot; mode. Save again to your Camera Roll, as &quot;Facebook 3d Photo&quot;.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
8. Upload from the Iphone facebook app. You need to specify you want to upload a 3d Photo, which will restrict the choice of valid photos to select from, to just &quot;Portraits&quot;. Your depth images should be in there.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Again, if you are not in a region of the world with access to the early release of the 3d photos, you need to enter into the beta program. Or wait a couple of weeks, hopefully!&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Finally, yes, there are artifacts. The extreme angles that expose what&#39;s behind the statue show some white areas.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
This is due to the mesh, procedurally generated by the Facebook viewer. I think the issue is the discontinuity in depth at the edge of the statue, which is perhaps higher than most depths generated by photos.&amp;nbsp; Likely, this will be fixed soon by smart people in their group, like Ocean Quigley.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Finally... thanks Ocean and Daxx for the initial pointers!&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;blogger-post-footer&quot;&gt;----------------------------
Extracted from blog:
http://dakrunch.blogspot.com&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dakrunch.blogspot.com/feeds/6992367797416881294/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3558910597161148058/6992367797416881294' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3558910597161148058/posts/default/6992367797416881294'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3558910597161148058/posts/default/6992367797416881294'/><link rel='alternate' type='text/html' href='http://dakrunch.blogspot.com/2018/11/3d-photos-on-facebook-and-substance.html' title='3D Photos on Facebook and Substance Painter'/><author><name>Davide Pesare</name><uri>http://www.blogger.com/profile/02004541122380635353</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjVv5yK9dQzgi_Rhw_L1Z6aP-l0EFX4ZaX5_wbrqUJT2BsbFur0p9Jcvld2D4rAn3GnGtIA8lk_CzZwSpc14QhSnopKGppH-MckEeif19h9u_3ephxnOVQ2gy8ysiOx6tj6xeb640KSTI0qTYsz-CW4_zVLJp5xD4bWYHiOohFCo9SmDU/s220/1743541473925.jpeg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijI7BoBfRang5zMXvstwWV1k_RifJN6KAIB6i8dYrchYiL3RG_WuAenQoke4vnPTGh2a25u1exG7fD8KoIyDn77khpxqSORUMrn60xJoXMVqHlNuvyOc4Vu93St689ewhonLVouxGTcuU/s72-c/color.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3558910597161148058.post-137617621555132698</id><published>2018-10-19T00:35:00.000-07:00</published><updated>2018-10-19T00:35:08.423-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Allegorithmic"/><category scheme="http://www.blogger.com/atom/ns#" term="Cg"/><title type='text'>It’s a small (CG) world after all</title><content type='html'>In my first &lt;a href=&quot;https://www.allegorithmic.com/blog/substance-painter-oculus-rift-prototype&quot; target=&quot;_blank&quot;&gt;Substance blog post&lt;/a&gt;, I talk about how we built an experimental, or rather educational (for us), build of Painter for the Oculus Rift.&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjrPcF7RIn6xOIzd67lc02MLtYXr30GT270kXc48wRIcPyPqL-H62ZIJUS0Fvnd1Njz5JltK8vihlu8Emhl3_KDP7CsvukEx-WywYCwC4ZhnJpvKwGDi-QJmtFfC16fQ_ue77mLXuEaMcY/s1600/image_18.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;885&quot; data-original-width=&quot;1600&quot; height=&quot;350&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjrPcF7RIn6xOIzd67lc02MLtYXr30GT270kXc48wRIcPyPqL-H62ZIJUS0Fvnd1Njz5JltK8vihlu8Emhl3_KDP7CsvukEx-WywYCwC4ZhnJpvKwGDi-QJmtFfC16fQ_ue77mLXuEaMcY/s640/image_18.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Our 2018 Painter proof of concept on a Rift&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Why Oculus you may ask? You would not be the only one. Why Oculus and not, for instance, StarVR, Microsoft, Playstation, Vive, or something else entirely. I am a Steam fan, for example, and have good friends in each of those groups.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
As I say in the article, and to be fair, the Oculus team has been a fantastic partner and after our feedback, they reached out to us with just what we needed: a way to get something out there without having to redesign the whole UI, so we can get early feedback and insight, including from artists that may not be our traditional users. That&#39;s what we are interested in, when working in Labs, to shape future steps that the product groups may decide to take.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Nothing was announced of course, but it is easy to imagine this working with more platforms, probably in a more mature state.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
A story that I did not put in the article but is fun to remember is a bit of an origin story.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&amp;nbsp;At the same time as the first Oculus test was being presented at GDC 2015 by Jean-François, only a few blocks away, I was becoming good friend with my neighbors, Eric and Jodi. Eric is a veteran in both AAA and Indie games, and he moved to San Francisco to join Kixeye. After a while, we started meeting weekly for drinks and dinner, and we started playing Pandemic Legacy season 1, still one of my all time favorite board games, almost every week. We kept going even after they moved down the peninsula, when Eric joined Facebook, or rather Oculus.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFE-_EQ6y6TJjA5az_KIptgvGvoMWFFBz7kY_EqCwGJaWHCbLJvZXi4BKcr9cm9DY7KqkHkDZqK6NOOaYCOQQcqRUxMIVBWuxEHi8yXD-pOCK4KPp4FCKu4TDQkbUwS5kb3dtbsaT5FhU/s1600/zm7170_layout.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;262&quot; data-original-width=&quot;625&quot; height=&quot;268&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFE-_EQ6y6TJjA5az_KIptgvGvoMWFFBz7kY_EqCwGJaWHCbLJvZXi4BKcr9cm9DY7KqkHkDZqK6NOOaYCOQQcqRUxMIVBWuxEHi8yXD-pOCK4KPp4FCKu4TDQkbUwS5kb3dtbsaT5FhU/s640/zm7170_layout.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Pandemic Legacy (season 1). Lots of fond memories. We just started Season 2.&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
A couple of years later I left Pixar, and Eric was also the first friend to visit us when we moved this winter to France. He was at that time starting to brainstorm about how to better increase the reach of Oculus in other fields. So it was not surprising that he was the one, this Summer, who reached out to my team to see if they could make life easier for DCCs.&lt;br /&gt;
&lt;br /&gt;
I love how small the CG world can feel, even with so many people in it. I’m reminded of it every Siggraph. This year I went with my new badge, and met all my friends from MPC, Animal Logic, Pyro Studios, Pixar, Blisscomedia, and it felt like I never left.&lt;br /&gt;
&lt;br /&gt;
Even moving continent, I still feel like I’m part of the same community.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;blogger-post-footer&quot;&gt;----------------------------
Extracted from blog:
http://dakrunch.blogspot.com&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dakrunch.blogspot.com/feeds/137617621555132698/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3558910597161148058/137617621555132698' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3558910597161148058/posts/default/137617621555132698'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3558910597161148058/posts/default/137617621555132698'/><link rel='alternate' type='text/html' href='http://dakrunch.blogspot.com/2018/10/its-small-cg-world-after-all.html' title='It’s a small (CG) world after all'/><author><name>Davide Pesare</name><uri>http://www.blogger.com/profile/02004541122380635353</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjVv5yK9dQzgi_Rhw_L1Z6aP-l0EFX4ZaX5_wbrqUJT2BsbFur0p9Jcvld2D4rAn3GnGtIA8lk_CzZwSpc14QhSnopKGppH-MckEeif19h9u_3ephxnOVQ2gy8ysiOx6tj6xeb640KSTI0qTYsz-CW4_zVLJp5xD4bWYHiOohFCo9SmDU/s220/1743541473925.jpeg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjrPcF7RIn6xOIzd67lc02MLtYXr30GT270kXc48wRIcPyPqL-H62ZIJUS0Fvnd1Njz5JltK8vihlu8Emhl3_KDP7CsvukEx-WywYCwC4ZhnJpvKwGDi-QJmtFfC16fQ_ue77mLXuEaMcY/s72-c/image_18.png" height="72" width="72"/><thr:total>0</thr:total><georss:featurename>Lyon, France</georss:featurename><georss:point>45.764043 4.8356589999999642</georss:point><georss:box>45.6754155 4.6742974999999642 45.8526705 4.9970204999999641</georss:box></entry><entry><id>tag:blogger.com,1999:blog-3558910597161148058.post-2499253767631759189</id><published>2018-08-09T06:01:00.000-07:00</published><updated>2018-08-09T09:02:01.337-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Allegorithmic"/><category scheme="http://www.blogger.com/atom/ns#" term="Cg"/><category scheme="http://www.blogger.com/atom/ns#" term="Food"/><category scheme="http://www.blogger.com/atom/ns#" term="Substance"/><title type='text'>Baking and procedural patterns</title><content type='html'>&lt;div style=&quot;text-align: justify;&quot;&gt;
I am actually interested in baking pastries too, but I think I shall tackle that in the fall maybe, when it gets cooler. Let&#39;s talk about baking procedural patterns instead!&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjjQ80jgNvOl1ZaGydOR3XNCdQ7ARMxlwjx4ym2f0s0YCVdddOmc3NZDRh_IHD4mQFGIK5QeIw3AATugnNITzhiYzV5SjP4NLzgb3PUr3XWM6Dt6Dc9pCwHGqVyZq7jHVhcljYZ1nzx8fw/s1600/fractal+cake.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;466&quot; data-original-width=&quot;590&quot; height=&quot;315&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjjQ80jgNvOl1ZaGydOR3XNCdQ7ARMxlwjx4ym2f0s0YCVdddOmc3NZDRh_IHD4mQFGIK5QeIw3AATugnNITzhiYzV5SjP4NLzgb3PUr3XWM6Dt6Dc9pCwHGqVyZq7jHVhcljYZ1nzx8fw/s400/fractal+cake.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
A few months back I wrote about the challenges and solutions of &lt;a href=&quot;https://dakrunch.blogspot.com/2017/10/material-layering.html&quot; target=&quot;_blank&quot;&gt;Material Layering&lt;/a&gt;. The post was quite useful for a lot of old and new friends. More questions came up, and since I joined Allegorithmic I learned much more about extra-pixarian approaches. In this post I&#39;ll focus on patterns and baking.&lt;/div&gt;
&lt;br /&gt;
&lt;h2&gt;
The composition of a Material&lt;/h2&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Taking a step back,&amp;nbsp;&lt;span style=&quot;text-align: justify;&quot;&gt;Materials like a &quot;painted dusty metal&quot; are effectively plug-ins to a renderer (like RenderMan). In a physically based renderer, the &lt;/span&gt;&lt;b style=&quot;text-align: justify;&quot;&gt;Integrator&lt;/b&gt;&lt;span style=&quot;text-align: justify;&quot;&gt; is responsible to answer to the question &quot;what color is this pixel&quot;? To do that, the Integrator asks questions to the &lt;/span&gt;&lt;b style=&quot;text-align: justify;&quot;&gt;Materials&lt;/b&gt;&lt;span style=&quot;text-align: justify;&quot;&gt; and to the &lt;/span&gt;&lt;b style=&quot;text-align: justify;&quot;&gt;Lights&lt;/b&gt;&lt;span style=&quot;text-align: justify;&quot;&gt;.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
A material can be conceptually split into &lt;b&gt;Patterns&lt;/b&gt; and Bxdf, or &lt;b&gt;shader&lt;/b&gt;. The shader is responsible for the illumination response component, and it has a number of parameters. Some are constants (presented as color swatches, sliders, etc...). The ones that vary across the surface can be connected to Patterns,&amp;nbsp; and are hence called &quot;varying&quot;. Patterns define how those properties change over the surface and the volume of the objects being rendered.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgomjW738TT8zJe_xAPbvZPeia0VlMT3WW_0GfYEYNEeDFfps2vK5EUaFG78deKW7SPS67FZkUZVXz5ClIahMz7PfdvSpIesjFDW-7tnTBQrT6gXcAT2efTk3QjqpSfoSBK47tclIJjN6M/s1600/MaterialDeconstructed.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;407&quot; data-original-width=&quot;1162&quot; height=&quot;224&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgomjW738TT8zJe_xAPbvZPeia0VlMT3WW_0GfYEYNEeDFfps2vK5EUaFG78deKW7SPS67FZkUZVXz5ClIahMz7PfdvSpIesjFDW-7tnTBQrT6gXcAT2efTk3QjqpSfoSBK47tclIJjN6M/s640/MaterialDeconstructed.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Patterns are implicitly organized into logical&amp;nbsp;&lt;b&gt;node graphs&lt;/b&gt;. You don&#39;t always see that graph though. Sometimes the graph is exposed in tools such as Substance Designer, Slim (yeah! remember that one?), Maya&#39;s Hypershade, ShaderFX. Often times though, the graph is displayed in a simpler manner, as layers (Mari, Substance Painter, Photoshop), or hidden altogether behind a bunch of presets and sliders (similar to Lightroom and the upcoming Substance Alchemist).&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h2 style=&quot;text-align: justify;&quot;&gt;
Patterns: Procedural and Data&lt;/h2&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Patterns are not all the same in nature. I like to split them into Data and Procedurals.&lt;br /&gt;
&lt;b&gt;Procedurals&lt;/b&gt; are a type of pattern that computes values on the fly, with math and/or any applicable algorithm. If you are familiar with 2d graphics, this split is rather analogous to Raster versus Vector Graphics. Procedural networks have many advantages:&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Flexible at all resolutions.&lt;br /&gt;You can &quot;zoom&quot; into a procedural as much as you want. It will in general always look good, within the limits of your parametrization floating point precision.&lt;/li&gt;
&lt;li&gt;Dynamically adjustable.&lt;br /&gt;Procedurals have parameters and changing them will simply make the procedural evaluate to a different result. This can happen during the render, at runtime.&lt;/li&gt;
&lt;li&gt;Little memory Footprint&lt;br /&gt;Procedurals are in general extremely cheap in terms of memory.&lt;/li&gt;
&lt;li&gt;Procedurals can use any input: they don&#39;t always need UV coordinates, as they can key off any geometric, be it 1D (e.g. height, facing ratio, time), 2D (UVs), 3D (point, normals, uvw, reference positions) and 4D (arbitrary, time) coordinates.&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
There are some cons too:&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;Not always practical at render time&lt;br /&gt;While the memory usage is low, the cpu/gpu load is another story. Computing a ton of procedurals in real time at each sample of your renderer can really kill the performance.&lt;/li&gt;
&lt;/ul&gt;
&lt;table cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;float: right; margin-left: 1em; text-align: right;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiqmw-XM_Uo6geVGwc2IpTK_RYf4WjH2TF7ZDRX1zuCOs6MlRtIv05GF3ONi2GCUvGqo7Cxn5LTarYL_mj4T9T7ZJ-YdzspadlTx-h2Bard19GpJKcrWlDr_4tz9rxkWsuhnBvlaMnSFng/s1600/pic2.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;274&quot; data-original-width=&quot;354&quot; height=&quot;154&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiqmw-XM_Uo6geVGwc2IpTK_RYf4WjH2TF7ZDRX1zuCOs6MlRtIv05GF3ONi2GCUvGqo7Cxn5LTarYL_mj4T9T7ZJ-YdzspadlTx-h2Bard19GpJKcrWlDr_4tz9rxkWsuhnBvlaMnSFng/s200/pic2.png&quot; width=&quot;200&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Example of aliasing (top portion)&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;ul&gt;
&lt;li&gt;Aliasing.&lt;br /&gt;While zooming in gives good results, zooming out may result in artifacts that look like there are patterns where there shouldn&#39;t be. This is due to under-sampling, and called &lt;a href=&quot;https://en.wikipedia.org/wiki/Aliasing&quot; target=&quot;_blank&quot;&gt;aliasing&lt;/a&gt;. This can be fixed if the procedural can be correctly filtered (or blurred) analytically, that is, using math rather than over-sampling it. Pixar&#39;s &lt;a href=&quot;https://graphics.pixar.com/library/WaveletNoise/paper.pdf&quot; target=&quot;_blank&quot;&gt;wavelet noise&lt;/a&gt; is an elegant example of a modified procedural that behaves well at variable distances, without exhibiting aliasing.&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
On the other hand, &lt;b&gt;flat data &lt;/b&gt;is a type of pattern that outputs values that are read in form some form of file, be it a texture or a volume, or a point cloud, etc...&lt;/div&gt;
&lt;div&gt;
Flat data has advantages too:&lt;/div&gt;
&lt;div&gt;
&lt;ul&gt;
&lt;li&gt;It is fast to compute. In fact it hardly has any computation at all.&lt;/li&gt;
&lt;li&gt;Filters well at a distance.&lt;br /&gt;Quite the opposite of procedurals, textures are usually well equipped to provide pre-computed filtered results to be used when &quot;zooming out&quot; on the pattern.&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
And some cons:&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;ul&gt;
&lt;li&gt;The quality and detail of data based patterns is limited to the resolution of the data itself. If you zoom in too much, you may end up with grainy results&lt;/li&gt;
&lt;li&gt;In a data based pattern, you trade off memory for speed. Loading, or streaming in, data will take some of your memory and bandwidth, and if the data is not available locally in a fast location (e.g. a local drive, or the RAM, or the GPU memory), it will affect the speed too.&lt;/li&gt;
&lt;li&gt;To read data, you need some parametrization. This is typically, but not limited to, UVs. Having a good parametrization is key to generating and using data successfully.&lt;/li&gt;
&lt;li&gt;Not all files behave the same way. If a renderer doesn&#39;t know how to handle large amounts of a certain type of file efficiently, you may lose more than you gain in speed. For example, we had to be judicious and figure out when it was actually worth baking to Ptex in our Renderman projects at Pixar, because Renderman does not have an architecture that is as optimized for Ptex files as much as Disney&#39;s Hyperion. Most of the times, UV-textures performed better (for those assets where we had good UVs)&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h2&gt;
Baking&lt;/h2&gt;
Fortunately, any amount and combination of patterns can be converted into fast, performing data, as a pre-process. This step is what happens when you are loading a level of a game, or sometimes when a render is starting. This process is named&amp;nbsp;&lt;b&gt;Baking&lt;/b&gt;.&lt;br /&gt;
&lt;br /&gt;
As cool as baking sounds, it is a &lt;b&gt;lossy process&lt;/b&gt;, in two important ways:&lt;br /&gt;
Static data: once a procedural is baked to flat data (i.e. an image), it is no longer, well, procedural. That means you can no longer change its parameters and change it dynamically. Speaking of baking, this is just like you cannot change the ratio of butter after a croissant is baked.&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEis_hbezBfM82caOLSpVsFilrvxx3RydXI9lq6Tz_T7VgYILc7fjuorEeCNV3Fcoa1oH5LTWj0Y3C_dGtrB_60lwsJbHfibtDc98-9LrTmtSHyM7RaX2VTx9W38NHrtiOgUS-GqTAkc8a0/s1600/butterAndCroissant.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;518&quot; data-original-width=&quot;1166&quot; height=&quot;283&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEis_hbezBfM82caOLSpVsFilrvxx3RydXI9lq6Tz_T7VgYILc7fjuorEeCNV3Fcoa1oH5LTWj0Y3C_dGtrB_60lwsJbHfibtDc98-9LrTmtSHyM7RaX2VTx9W38NHrtiOgUS-GqTAkc8a0/s640/butterAndCroissant.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
Resolution: the baked result is fixed in resolution, and inherits all the properties of static data, including its limits in quality when zooming in. So one needs to be careful about the size of the bakes. This consideration becomes even more important when dealing with less trivial file formats, such as volumetric data, or Per Polygon Textures (Ptex).&lt;br /&gt;
&lt;br /&gt;
In general, baking &lt;b&gt;trades speed for memory&lt;/b&gt;: save on computation cycles and use pre-computed data instead, which will require space. This trade-off varies a lot depending on the incoming network. If it was cheap, it may not be worth it at all. But if the original network included a lot of data too, this process ends up saving both memory and time.&lt;br /&gt;
&lt;br /&gt;
You also don&#39;t have to bake the whole pattern network. Placing strategically baking points to get the most savings (bake most procedural costly nodes) without losing all the quality and tweak-ability will get you the best of both worlds.&lt;br /&gt;
For example, keeping a high frequency noise to add variation where the texture resolution is not sufficient will save you from having to bake humongous textures. Adding a live HSV adjustment after the texture read will save you from having to bake multiple textures for each variation of a model, saving both time and memory.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;h2&gt;
Pattern graphs and Compositing graphs&lt;/h2&gt;
I am going to talk a bit about Substance, not only because that&#39;s where I work, but because it&#39;s super relevant to illustrate the topic of patterns and baking. The nodes in Substance Designer are for the most part procedurals. Many of them - especially FxMaps&amp;nbsp; and Pixel Samplers - are computationally intensive and are processed by the Substance Engine which is, at its heart, a compositor, and its outputs are images. That is why it can really be seen as a baking engine on steroids. Of course, leave it to the French to show us how baking is done!&lt;br /&gt;
&lt;h3&gt;
Samples vs Buffers&lt;/h3&gt;
&lt;div&gt;
To fully grasp the difference one needs to visualize what a compositing node is working on, as opposed to a GL or OSL pattern.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiLVDIzLI2GX4MjeRdXNNMfXKnXi3TDZNRmyILbmMW3sBct5KNO1lwr0__Uny7sl_d3lMNUN2UzN403Cb1CLEAEoXKymO3EnCzGcbIZoERXZJ6vodg1Cn9JvdUIm12jS-MyeXKWxYeamqY/s1600/samples.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;295&quot; data-original-width=&quot;509&quot; height=&quot;185&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiLVDIzLI2GX4MjeRdXNNMfXKnXi3TDZNRmyILbmMW3sBct5KNO1lwr0__Uny7sl_d3lMNUN2UzN403Cb1CLEAEoXKymO3EnCzGcbIZoERXZJ6vodg1Cn9JvdUIm12jS-MyeXKWxYeamqY/s320/samples.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;Live &lt;b&gt;pattern graphs&lt;/b&gt; work on individual samples: a small set of values that sometimes includes their derivatives, such as in OSL.&lt;br /&gt;
Sure, that operation is then run on batches, often by the thousands, but each variable can only access its corresponding input, on the same pixel/texel/sample.&lt;br /&gt;
Concatenating operation of this type can be reduced to a code generation problem, as the output of one pattern is used as the input of the next one.&lt;br /&gt;
This type of patterns does not have implicit spatial limits, so it can create infinite variations (at least theoretically, you may still run into floating point precision issues, but that&#39;s not a very common problem).&lt;br /&gt;
&lt;br /&gt;
A &lt;b&gt;compositing graph&lt;/b&gt;, on the other hand, works on buffers. Each texel at coordinates [u, v] in the output buffer may optionally depend on any or all of the texels in the input buffer, rather than just on its corresponding input at coordinates [u, v]. This allows for much more powerful effects. You can have random access nodes such as blurs and warps and sub-procedural bombing which are often prohibitive features in a live render. To be fair, bombing is a technique that can be kept live (RenderMan ships with a texture bombing OSL), but you need to bomb pre-existing textures, while Substance can bomb live procedurals.&lt;br /&gt;Compositing graphs are spatially limited to their output buffers and resolution, so their variation is limited to that space. In the texturing case, that can be attenuated by making them seamless when tiling.&lt;br /&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiu3klT3xlN8PYQMJybi88SgFQY8ZSIUIUymBRZT5b7QfuYCEuyplwpcfEsQ9OZShJyBRw3iI8Vnk7KyUPA55t8Pzbr3M5wgVI7wcjoXTuoBHeUQOjDvrmHyi_3FsA1B7Pf94998ITc9NY/s1600/randomAccess.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;329&quot; data-original-width=&quot;588&quot; height=&quot;223&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiu3klT3xlN8PYQMJybi88SgFQY8ZSIUIUymBRZT5b7QfuYCEuyplwpcfEsQ9OZShJyBRw3iI8Vnk7KyUPA55t8Pzbr3M5wgVI7wcjoXTuoBHeUQOjDvrmHyi_3FsA1B7Pf94998ITc9NY/s400/randomAccess.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;In Random Access patterns, the result of a given output texel can be affected by any (or all) input texels&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;h3&gt;
Combining the two&lt;/h3&gt;
So we can further decompose a material into a pre-baking (data based) and a post-baking (procedural) network:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEioSsVcNT4Djqsog-mhaE7EP8S86eCLHODU4lefjJMVrANFlxWUKFAbmWPjOWYx6h-X1frovq2XhvHGuZMiqNC2hVQbIKzjeT2pMlxLJ46Hc_sx7_7JzH9-Ie5Bhl8M8uFOZAx94-niuhc/s1600/MaterialDeconstructed_2.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;300&quot; data-original-width=&quot;1051&quot; height=&quot;182&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEioSsVcNT4Djqsog-mhaE7EP8S86eCLHODU4lefjJMVrANFlxWUKFAbmWPjOWYx6h-X1frovq2XhvHGuZMiqNC2hVQbIKzjeT2pMlxLJ46Hc_sx7_7JzH9-Ie5Bhl8M8uFOZAx94-niuhc/s640/MaterialDeconstructed_2.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
The two types of graphs, are really not in competition, and it is important to understand how to make the best of both in advanced material design that can scale in complex productions. Scanning, processing, and rendering is nice to make tile-able materials, but that&#39;s only good for some categories of assets.&lt;br /&gt;
&lt;br /&gt;
One of my favorite pastries here in France is called Demi-Cuit, or half-baked. It&#39;s sort of a molten lava cake that was not frozen before baking. It also conceptualizes nicely the essence of getting the best of baked and procedural, still fluid patterns.&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLumVWwmgOFyDG40oSwqKgldP2QSlFQ71hRtsGoyX0nsknPM8_2PqVjrc3BxYDNALIwSMljF_e7XJXn6K7IWcoj_cZlCAfpiBS5hZCMWHnygirRLQKzSHS_C7vFHHq3bbdRUSKWyZ-jQY/s1600/demi-cuit.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;540&quot; data-original-width=&quot;960&quot; height=&quot;360&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLumVWwmgOFyDG40oSwqKgldP2QSlFQ71hRtsGoyX0nsknPM8_2PqVjrc3BxYDNALIwSMljF_e7XJXn6K7IWcoj_cZlCAfpiBS5hZCMWHnygirRLQKzSHS_C7vFHHq3bbdRUSKWyZ-jQY/s640/demi-cuit.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;h3&gt;
Disregarding the difference&lt;/h3&gt;
&lt;br /&gt;
The semantics of the two types of networks are quite different, and there are operations (e.g. blur) that are only practical in one of them.&lt;br /&gt;
&lt;br /&gt;
But that may not be true in 20 years on in a completely new type of renderer. There are a lot of &quot;nodes&quot; or conceptual operations that are pretty much identical across the two types of graphs (add, multiply, texture read, perlin noise), which makes it &lt;b&gt;tempting to &lt;/b&gt;go ahead and &lt;b&gt;describe both networks in one&lt;/b&gt;, and let the renderer figure out where to insert the baking points as appropriate.&lt;br /&gt;
&lt;br /&gt;
This is not a solved problem today, but the MaterialX project put forwards by Industrial Light and Magic is certainly trying to do just that.&lt;br /&gt;
&lt;br /&gt;
For more info about this topic, check out my older post about&amp;nbsp;&lt;a href=&quot;https://dakrunch.blogspot.com/2017/12/open-material-exchanges.html&quot; target=&quot;_blank&quot;&gt;Portable Material Descriptions&lt;/a&gt;.&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;blogger-post-footer&quot;&gt;----------------------------
Extracted from blog:
http://dakrunch.blogspot.com&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dakrunch.blogspot.com/feeds/2499253767631759189/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3558910597161148058/2499253767631759189' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3558910597161148058/posts/default/2499253767631759189'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3558910597161148058/posts/default/2499253767631759189'/><link rel='alternate' type='text/html' href='http://dakrunch.blogspot.com/2018/08/baking-patterns.html' title='Baking and procedural patterns'/><author><name>Davide Pesare</name><uri>http://www.blogger.com/profile/02004541122380635353</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjVv5yK9dQzgi_Rhw_L1Z6aP-l0EFX4ZaX5_wbrqUJT2BsbFur0p9Jcvld2D4rAn3GnGtIA8lk_CzZwSpc14QhSnopKGppH-MckEeif19h9u_3ephxnOVQ2gy8ysiOx6tj6xeb640KSTI0qTYsz-CW4_zVLJp5xD4bWYHiOohFCo9SmDU/s220/1743541473925.jpeg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjjQ80jgNvOl1ZaGydOR3XNCdQ7ARMxlwjx4ym2f0s0YCVdddOmc3NZDRh_IHD4mQFGIK5QeIw3AATugnNITzhiYzV5SjP4NLzgb3PUr3XWM6Dt6Dc9pCwHGqVyZq7jHVhcljYZ1nzx8fw/s72-c/fractal+cake.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3558910597161148058.post-396570038424621980</id><published>2018-08-08T10:13:00.001-07:00</published><updated>2018-11-07T01:55:15.237-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Allegorithmic"/><category scheme="http://www.blogger.com/atom/ns#" term="Pixar"/><category scheme="http://www.blogger.com/atom/ns#" term="Travel"/><title type='text'>Lyon heat, Labs, Siggraph and California</title><content type='html'>&lt;div style=&quot;text-align: justify;&quot;&gt;
Since we moved six months ago, we got to see how cold (and now how hot) Lyon can really get. Many people who moved to San Francisco say that they miss seasons, but I have to confess I appreciated the mild Bay Area weather. I did not miss is having to fight off mosquitoes all night long, and spending sleepless nights trying to stay hydrated in this heat wave. On the other hand, I discovered I really did miss some of these balmy nights that we am getting here in Lyon, walking around in shorts and eating ice cream.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzM4dx-6W1PeNC_UMtjqYJGhWnYd6TtQYwzrYTIafWhqghFuK7RxfiXxqxEU-r_VZxyKkn686AX1Zbu31Hi5CMvQFHULthY4sjB1PfZLNS6x9Bt6XYj6KxOKhOVmh5aANvF2eFMxLn_jM/s1600/IMG_0683.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1200&quot; data-original-width=&quot;1600&quot; height=&quot;300&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzM4dx-6W1PeNC_UMtjqYJGhWnYd6TtQYwzrYTIafWhqghFuK7RxfiXxqxEU-r_VZxyKkn686AX1Zbu31Hi5CMvQFHULthY4sjB1PfZLNS6x9Bt6XYj6KxOKhOVmh5aANvF2eFMxLn_jM/s400/IMG_0683.JPG&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Being in Europe, we got to travel a bunch, by train and by car. Not just for leisure though.. I had the opportunity to be the smiling face of Allegorithmic a few times, adding some Italian accent to our French tech company. I presented my view on Materials and layering at FMX, in Stuttgart, and rubbed shoulders with Google and SketchFab at a panel about Digital Asset Libraries at the MIFA, in Annecy. I&#39;ll write about those a bit more once the summer craze dies down.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
So, six months! I started initially as an Animation and VFX advocate here, trying to get features we care about prioritized and clarified. That was one of my initial propositions anyway, as I get much better visibility on the challenges and solution from here.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Encouraged by&amp;nbsp;Sébastien, more recently I focused my efforts on regrouping some talented engineers, scientists and creative technologists, into a team which we call &lt;b&gt;Labs&lt;/b&gt;. The group&#39;s goal is take on riskier projects, test new partnerships, and create prototypes that show the potential of new techniques. Hopefully you will hear about us and our cool projects soon.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
This is an exciting time, because next week, at Siggraph in Vancouver, I&#39;ll be representing Labs for the first time. First, at the MaterialX Birds of a Feather on Monday. My friend David Larsson did most of the work I&#39;ll be showing there. &lt;br /&gt;
&lt;br /&gt;
And then you will find us at the Pixar RenderMan&#39;s Science Fair on Wednesday evening. That one will be awesome, as we are presenting something very cool that François Beaune and I have been banging on for a while. That, plus the fuzzy feeling of presenting alongside my friends at Pixar. I&#39;m looking forward to it.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjbfblaDi86WbmZC3iNZJaLTX-AhDXYb1_OyLNnVMr78txZmqGISNLukjGQfzOKN8BZHk7F4PwZt4gCtkrm7tpp6ovSJKHI376zXYTjcZ6ybgRWXUlk9bmlIYSeD_HR1eEAc5o3FqAizzw/s1600/vancouver+convention+center.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;960&quot; data-original-width=&quot;1440&quot; height=&quot;426&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjbfblaDi86WbmZC3iNZJaLTX-AhDXYb1_OyLNnVMr78txZmqGISNLukjGQfzOKN8BZHk7F4PwZt4gCtkrm7tpp6ovSJKHI376zXYTjcZ6ybgRWXUlk9bmlIYSeD_HR1eEAc5o3FqAizzw/s640/vancouver+convention+center.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;The Vancouver convention center is a might view on the cityscape&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;
That&#39;s not it though. The following week I&#39;ll still be in the West Coast, roaming California, visiting film studios and seeing friends and family. It will be a hectic time, but I am ready. See you there, and stay tuned!&lt;/div&gt;
&lt;div class=&quot;blogger-post-footer&quot;&gt;----------------------------
Extracted from blog:
http://dakrunch.blogspot.com&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dakrunch.blogspot.com/feeds/396570038424621980/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3558910597161148058/396570038424621980' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3558910597161148058/posts/default/396570038424621980'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3558910597161148058/posts/default/396570038424621980'/><link rel='alternate' type='text/html' href='http://dakrunch.blogspot.com/2018/08/lyon-heat-labs-siggraph-and-california.html' title='Lyon heat, Labs, Siggraph and California'/><author><name>Davide Pesare</name><uri>http://www.blogger.com/profile/02004541122380635353</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjVv5yK9dQzgi_Rhw_L1Z6aP-l0EFX4ZaX5_wbrqUJT2BsbFur0p9Jcvld2D4rAn3GnGtIA8lk_CzZwSpc14QhSnopKGppH-MckEeif19h9u_3ephxnOVQ2gy8ysiOx6tj6xeb640KSTI0qTYsz-CW4_zVLJp5xD4bWYHiOohFCo9SmDU/s220/1743541473925.jpeg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzM4dx-6W1PeNC_UMtjqYJGhWnYd6TtQYwzrYTIafWhqghFuK7RxfiXxqxEU-r_VZxyKkn686AX1Zbu31Hi5CMvQFHULthY4sjB1PfZLNS6x9Bt6XYj6KxOKhOVmh5aANvF2eFMxLn_jM/s72-c/IMG_0683.JPG" height="72" width="72"/><thr:total>0</thr:total><georss:featurename>Vancouver, BC, Canada</georss:featurename><georss:point>49.2827291 -123.12073750000002</georss:point><georss:box>49.1169156 -123.44346100000001 49.448542599999996 -122.79801400000002</georss:box></entry><entry><id>tag:blogger.com,1999:blog-3558910597161148058.post-7996402761303514011</id><published>2018-04-21T10:37:00.002-07:00</published><updated>2018-04-21T10:37:36.986-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Allegorithmic"/><category scheme="http://www.blogger.com/atom/ns#" term="Cg"/><category scheme="http://www.blogger.com/atom/ns#" term="Pixar"/><title type='text'>FMX 2018</title><content type='html'>&lt;div style=&quot;text-align: justify;&quot;&gt;
For several years I have heard of how cool FMX is, from my friends at Pixar, and how pretty Stuttgart is. That made me want to go check it out and meet the&lt;span style=&quot;text-align: justify;&quot;&gt;&amp;nbsp;artists, engineers, technologists and scientists that build its community.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCfF4QSefJr5vZY4D0gpv-QtQbjN-RiTjiyRnlAV7WHtO6S7Biv-22cyw7aHt47wyMzi90VPWfb3EbpSG3QFO6CiJyNy5RnXkHQB5e_0Mo7iUoo6Dajyk78jt7CIOydgM5JGM3ZzJtIoc/s1600/fmx-2018-post.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;600&quot; data-original-width=&quot;960&quot; height=&quot;400&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCfF4QSefJr5vZY4D0gpv-QtQbjN-RiTjiyRnlAV7WHtO6S7Biv-22cyw7aHt47wyMzi90VPWfb3EbpSG3QFO6CiJyNy5RnXkHQB5e_0Mo7iUoo6Dajyk78jt7CIOydgM5JGM3ZzJtIoc/s640/fmx-2018-post.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
This year, finally, I was going to present Flow, our Pixar shading tool, at the Lighting and Rendering session, dedicated to Materials, and chaired by my friend Christophe Hery.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Well, that&#39;s not going to happen now that I live in France. So I will go to FMX, and present the Substance suite, instead. &quot;Materials and Substance&quot; will take place on Wednesday at 2pm, at the Lighting and Rendering session, dedicated to Materials, and chaired by my friend Christophe Hery.&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
I guess it was meant to be.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
My talk will be part of a longer course, hosting some great talks from NVidia, ILM, Isotropix, Pixar as well. I&#39;ll focus on the composition of materials in a physically based renderer, as well as the challenges and goals of layering, baking and proceduralism. I&#39;ll try to capture, from a film-maker perspective, how the Substance suite fits in the middle of all this.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Come see us, or at least come say hi at the Allegorithmic booth. I&#39;ll be around all week!&lt;/div&gt;
&lt;div class=&quot;blogger-post-footer&quot;&gt;----------------------------
Extracted from blog:
http://dakrunch.blogspot.com&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dakrunch.blogspot.com/feeds/7996402761303514011/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3558910597161148058/7996402761303514011' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3558910597161148058/posts/default/7996402761303514011'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3558910597161148058/posts/default/7996402761303514011'/><link rel='alternate' type='text/html' href='http://dakrunch.blogspot.com/2018/04/fmx-2018.html' title='FMX 2018'/><author><name>Davide Pesare</name><uri>http://www.blogger.com/profile/02004541122380635353</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjVv5yK9dQzgi_Rhw_L1Z6aP-l0EFX4ZaX5_wbrqUJT2BsbFur0p9Jcvld2D4rAn3GnGtIA8lk_CzZwSpc14QhSnopKGppH-MckEeif19h9u_3ephxnOVQ2gy8ysiOx6tj6xeb640KSTI0qTYsz-CW4_zVLJp5xD4bWYHiOohFCo9SmDU/s220/1743541473925.jpeg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCfF4QSefJr5vZY4D0gpv-QtQbjN-RiTjiyRnlAV7WHtO6S7Biv-22cyw7aHt47wyMzi90VPWfb3EbpSG3QFO6CiJyNy5RnXkHQB5e_0Mo7iUoo6Dajyk78jt7CIOydgM5JGM3ZzJtIoc/s72-c/fmx-2018-post.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3558910597161148058.post-7176937386972563495</id><published>2018-04-16T14:59:00.001-07:00</published><updated>2018-04-16T15:07:44.329-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Travel"/><title type='text'>Living Lyon</title><content type='html'>&lt;div style=&quot;text-align: justify;&quot;&gt;
A few weeks ago I heard the sentence “I was almost run over by a bicyclist. I got distracted, looking at someone crossing the road with a cake”.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfp6ctN4khmZiD3kPGv1dmNm0Cp5oaaJpXDbYN6zhKABP0ir8r4u67ZtwIgxI5U1cpJcttzhGKRkTDyCg4VOniWhM2r_hyphenhyphendG-ycSC-TdbUv7xWq8yZfuKLZcIUxT-Br7KWp9tEMzhO9qs/s1600/MVIMG_20180224_104928.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1200&quot; data-original-width=&quot;1600&quot; height=&quot;480&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfp6ctN4khmZiD3kPGv1dmNm0Cp5oaaJpXDbYN6zhKABP0ir8r4u67ZtwIgxI5U1cpJcttzhGKRkTDyCg4VOniWhM2r_hyphenhyphendG-ycSC-TdbUv7xWq8yZfuKLZcIUxT-Br7KWp9tEMzhO9qs/s640/MVIMG_20180224_104928.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;French cuisine may be good, but French patisserie is incredible&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Some days ago, I was waiting in line in front of the prefecture, waiting patiently for my turn in a long line of other immigrants. A croak made us look up, and we met the gaze of dozens of hungry looking crows looking down upon the fools, waiting for bureaucracy to happen.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
And after a tiresome week marked by long distance bus transport (because, you know, train strikes), yesterday we went to a small indoor concert. We danced to the catchy tunes of a bare-footed band of white dudes singing in a Caribbean accent and playing some weird mix of jazz and afro-cuban music, using fiddles, guitars, accordions and clarinets. Next to us, a guy in a fedora was bouncing too, holding his basket of bread on top of his slate with cheese and charcuterie.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Maybe I&#39;ll get used to these little things that make me smile now, but I’m loving the new world we are living in. Lyon feels clean, safe, and it’s so darn pretty at any time of the day, but especially at night. Especially tonight, that it&#39;s so warm. We&#39;ve been walking by the river, eating ice cream, listening to all the foreign tourists&#39; languages, and watching a few cute couples awkwardly dancing swing to the tunes of 70&#39;s hits. It felt nostalgic, like I was on holiday, walking along the beach on an early Summer night in my early teens.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_GTp_5gZW2aduY0a97dlDfvlqCbZ8xK1-Lo1a3brzg1NA7tySkZXMnyWSf30zNSzjo3AbYdie97JhY2qaj7ZGdY0h5hD0_VavdPPCpwVDp5ath2dCnEtNfpToM_lACBJBJNik9ySzy34/s1600/MVIMG_20180224_183959.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1600&quot; data-original-width=&quot;1200&quot; height=&quot;640&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_GTp_5gZW2aduY0a97dlDfvlqCbZ8xK1-Lo1a3brzg1NA7tySkZXMnyWSf30zNSzjo3AbYdie97JhY2qaj7ZGdY0h5hD0_VavdPPCpwVDp5ath2dCnEtNfpToM_lACBJBJNik9ySzy34/s640/MVIMG_20180224_183959.jpg&quot; width=&quot;480&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;The Basilica of Fourviere is impossible to miss from anywhere in the city.&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Ok, I&#39;m not going to lie, adjusting here can be trying at the beginning.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Apartment renting agents require a bank account. Banks want a permanent residence and a phone number. Phone companies won’t give you a contract without a bank account and a permanent address. It is incredibly hard to update your address and phone number after that. The amount and type of documents needed for any given appointment is quite unpredictable. But after all those little hurdles, it&#39;s worth it.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-De7i0gn8OxqCJCBKKxvD0mhgGiue-CwXxxOIeRUIjiYoGCYE4TZ-CR1-LGnV3VUasSKFYQqRtvYvtGUF1yAQoTzUNssB6LmRZwLtiUvR3kwaEhDURZeaw1lhDTcavWOf42D6BT0UuzY/s1600/MVIMG_20180224_173852.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1200&quot; data-original-width=&quot;1600&quot; height=&quot;480&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-De7i0gn8OxqCJCBKKxvD0mhgGiue-CwXxxOIeRUIjiYoGCYE4TZ-CR1-LGnV3VUasSKFYQqRtvYvtGUF1yAQoTzUNssB6LmRZwLtiUvR3kwaEhDURZeaw1lhDTcavWOf42D6BT0UuzY/s640/MVIMG_20180224_173852.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;The whole city is walkable.&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
French is harder than I remember it. I studied 8 years in school, but never using it let those French neurons be overwritten with Spanish during my stay in Madrid. So I’m slowing making my way up that learning cliff again.&amp;nbsp; It doesn&#39;t help that my coworkers are both nice and want to practice English.&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Speaking of, I am learning so much about so many things. In my newly expanded industry, I&#39;m no longer the expert, and climbing back out of the pits of my newly found ignorance demands a lot of my spare time.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-PkZMXC2OsInOk8BwIqdaosRGA9dIfS8O_9JdnWQUqK340zdlS-e1o_bQd8-UAO_1i2wFhm5JRwiC9fX1-O06qT-YP6ziUBM9jjH-OTFaSX0LC_WWcCBhRT7pZSEfa7DseXetRUA7mzA/s1600/IMG_0075.HEIC&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1200&quot; data-original-width=&quot;1600&quot; height=&quot;480&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-PkZMXC2OsInOk8BwIqdaosRGA9dIfS8O_9JdnWQUqK340zdlS-e1o_bQd8-UAO_1i2wFhm5JRwiC9fX1-O06qT-YP6ziUBM9jjH-OTFaSX0LC_WWcCBhRT7pZSEfa7DseXetRUA7mzA/s640/IMG_0075.HEIC&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Pumpkin cream with bacon emulsion.&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Maybe a bit prematurely, given my French language proficiency, but I have been taking a long course in French cooking techniques. Those same ones that defined the gold standard for the western culinary world. And yes, French cuisine is very technical, but what I&#39;m learning can be applied to a lot of other cuisines I have been acquainted with in the world. I look forward to using my friends as Guinea pigs. You know who you are.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLW5JKbwKaVl14fbuKDZ6i5I-WJIXw3fEVmeGXdyljNsRRHAP-4TwzAGtD2QoFUERKF941hcY6TPdv0C8ErN5dobAXXieVHFC2BXuk5mrKVgSBJyPfaP8-GZOtgekL6EfsTMTKuuNgQQc/s1600/IMG_0138.HEIC&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;996&quot; data-original-width=&quot;1600&quot; height=&quot;396&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLW5JKbwKaVl14fbuKDZ6i5I-WJIXw3fEVmeGXdyljNsRRHAP-4TwzAGtD2QoFUERKF941hcY6TPdv0C8ErN5dobAXXieVHFC2BXuk5mrKVgSBJyPfaP8-GZOtgekL6EfsTMTKuuNgQQc/s640/IMG_0138.HEIC&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;This was my favorite one so far: scallops with onion compote in filo dough&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;div class=&quot;blogger-post-footer&quot;&gt;----------------------------
Extracted from blog:
http://dakrunch.blogspot.com&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dakrunch.blogspot.com/feeds/7176937386972563495/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3558910597161148058/7176937386972563495' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3558910597161148058/posts/default/7176937386972563495'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3558910597161148058/posts/default/7176937386972563495'/><link rel='alternate' type='text/html' href='http://dakrunch.blogspot.com/2018/04/living-lyon.html' title='Living Lyon'/><author><name>Davide Pesare</name><uri>http://www.blogger.com/profile/02004541122380635353</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjVv5yK9dQzgi_Rhw_L1Z6aP-l0EFX4ZaX5_wbrqUJT2BsbFur0p9Jcvld2D4rAn3GnGtIA8lk_CzZwSpc14QhSnopKGppH-MckEeif19h9u_3ephxnOVQ2gy8ysiOx6tj6xeb640KSTI0qTYsz-CW4_zVLJp5xD4bWYHiOohFCo9SmDU/s220/1743541473925.jpeg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfp6ctN4khmZiD3kPGv1dmNm0Cp5oaaJpXDbYN6zhKABP0ir8r4u67ZtwIgxI5U1cpJcttzhGKRkTDyCg4VOniWhM2r_hyphenhyphendG-ycSC-TdbUv7xWq8yZfuKLZcIUxT-Br7KWp9tEMzhO9qs/s72-c/MVIMG_20180224_104928.jpg" height="72" width="72"/><thr:total>0</thr:total><georss:featurename>Lyon, France</georss:featurename><georss:point>45.764043 4.8356589999999642</georss:point><georss:box>45.586788500000004 4.5129354999999638 45.9412975 5.1583824999999646</georss:box></entry><entry><id>tag:blogger.com,1999:blog-3558910597161148058.post-4052414390064746636</id><published>2018-02-16T01:32:00.002-08:00</published><updated>2018-02-16T01:32:44.132-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Allegorithmic"/><category scheme="http://www.blogger.com/atom/ns#" term="Cg"/><category scheme="http://www.blogger.com/atom/ns#" term="Pixar"/><title type='text'>Joining Allegorithmic</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhtIJNTI6hm0xVaD7lE_l3Wq3oFWhUeSr-GUPF40TmlXcQHYPeOko3LbnM2M6Jj-oEARV3a0pWIydBmAPhB8JVITLs4KmozScMt4Y9LsabzdLfkctMRGIflyuYlEQFWCtez136w3h2o6cE/s1600/P1150285.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1279&quot; data-original-width=&quot;1600&quot; height=&quot;510&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhtIJNTI6hm0xVaD7lE_l3Wq3oFWhUeSr-GUPF40TmlXcQHYPeOko3LbnM2M6Jj-oEARV3a0pWIydBmAPhB8JVITLs4KmozScMt4Y9LsabzdLfkctMRGIflyuYlEQFWCtez136w3h2o6cE/s640/P1150285.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Hank, meet Mat&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Lots of people have been asking me what I’m doing now that I’m in Lyon.&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Well, there are wonderful museums, famous cooking schools and language academies, monumental theatres, and a whole local firmament of Michelin starred restaurants. Rest assured, I’m making good use of them. The city is beautiful to walk and that’s a good thing, because I sure have a lot of food to burn off.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiUyerVafx-7Wj36LENeVLdYkAfU17qyE7xrLJU256BJuZdZmMbJCpX11kQwJuTwIeS05eDHQOogamgBUbzomdZksF-0ao-zCOYC9TTecDEi44_l6wC1oiWeH9NsDNtwqcr2OPRQITiQ7k/s1600/Allegorithmic_grey_logo.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;303&quot; data-original-width=&quot;300&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiUyerVafx-7Wj36LENeVLdYkAfU17qyE7xrLJU256BJuZdZmMbJCpX11kQwJuTwIeS05eDHQOogamgBUbzomdZksF-0ao-zCOYC9TTecDEi44_l6wC1oiWeH9NsDNtwqcr2OPRQITiQ7k/s1600/Allegorithmic_grey_logo.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Perhaps less well known, is the fact that Allegorithmic, the makers of Substance, have an office here too. It&#39;s still a small but growing team, working in a few offices in a cute co-working space and incubator called MamaWorks, dangerously close to Les Halles de Lyon, by famed chef Paul Bocuse.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
I have decided to join this team. I have been playing with Substance for years now, and for a long time I have been wanting to help it becoming a successful tool suite for us in the film industry. Finally, now that I am in the region, this is my chance, and I&#39;m taking it.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
If you&#39;re going, I hope to see you soon at FMX!&lt;/div&gt;
&lt;div class=&quot;blogger-post-footer&quot;&gt;----------------------------
Extracted from blog:
http://dakrunch.blogspot.com&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dakrunch.blogspot.com/feeds/4052414390064746636/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3558910597161148058/4052414390064746636' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3558910597161148058/posts/default/4052414390064746636'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3558910597161148058/posts/default/4052414390064746636'/><link rel='alternate' type='text/html' href='http://dakrunch.blogspot.com/2018/02/joining-allegorithmic.html' title='Joining Allegorithmic'/><author><name>Davide Pesare</name><uri>http://www.blogger.com/profile/02004541122380635353</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjVv5yK9dQzgi_Rhw_L1Z6aP-l0EFX4ZaX5_wbrqUJT2BsbFur0p9Jcvld2D4rAn3GnGtIA8lk_CzZwSpc14QhSnopKGppH-MckEeif19h9u_3ephxnOVQ2gy8ysiOx6tj6xeb640KSTI0qTYsz-CW4_zVLJp5xD4bWYHiOohFCo9SmDU/s220/1743541473925.jpeg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhtIJNTI6hm0xVaD7lE_l3Wq3oFWhUeSr-GUPF40TmlXcQHYPeOko3LbnM2M6Jj-oEARV3a0pWIydBmAPhB8JVITLs4KmozScMt4Y9LsabzdLfkctMRGIflyuYlEQFWCtez136w3h2o6cE/s72-c/P1150285.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3558910597161148058.post-3179163797301086423</id><published>2018-01-20T00:22:00.000-08:00</published><updated>2018-01-20T00:42:23.196-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Travel"/><title type='text'>Nouvelles Aventures</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;
2018 is a brave new year.&lt;/div&gt;
&lt;br /&gt;
Last August Mayah and I took a vacation to Europe. We stayed in France for a while, then continued to Italy, to meet with my family and join up with hers, and a few good friends as well, so we could happily drive a van around and explore my &quot;Bel paese&quot; (beautiful country).&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj84K4ZwVsj19vctgV9kUQZbOS8-Ebn17demYK7OThAlcW976hJMONONnQxKGiUOrB1WRyB8jqkcOONROAEaAyOrO9JONBWJFEPmJYUo1EUq14TL9ZRc1L5IzIXeyIKgyHQSazKq8WVcWc/s1600/P1140749.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1069&quot; data-original-width=&quot;1600&quot; height=&quot;426&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj84K4ZwVsj19vctgV9kUQZbOS8-Ebn17demYK7OThAlcW976hJMONONnQxKGiUOrB1WRyB8jqkcOONROAEaAyOrO9JONBWJFEPmJYUo1EUq14TL9ZRc1L5IzIXeyIKgyHQSazKq8WVcWc/s640/P1140749.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
My sweet lady and I must have liked it there, because we got engaged in Paris, and made beautiful memories around the rest of the France and Italy.&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgIP-ANVuXjXFRzFhMtZ2e08Ktaex3cAoXEeSlzZnuQz2DZS0iWYfbJxVFfNSDOgVu2LXBsuAjaknCj40B4OjlgzPamUHI06U485qyi7jspZ6mRmkElgHm6gG_4iKtumxiopbGkgNTs2rc/s1600/P1140823.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1069&quot; data-original-width=&quot;1600&quot; height=&quot;426&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgIP-ANVuXjXFRzFhMtZ2e08Ktaex3cAoXEeSlzZnuQz2DZS0iWYfbJxVFfNSDOgVu2LXBsuAjaknCj40B4OjlgzPamUHI06U485qyi7jspZ6mRmkElgHm6gG_4iKtumxiopbGkgNTs2rc/s640/P1140823.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;
Once we got back, we gave it a lot of thought, and decided to look for a new adventure and try something a bit different, before we settle down a bit more.&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;
I&#39;ve been wanting to get closer to my family, but going to my hometown did not feel to us like enough of an adventure. We like learning languages, and we have a passion for cooking. That pulled us to this city called Lyon, the capital of traditional French cuisine, an international destination for its beauty and its wine country. Also, only four hours train from home - and not even on a fast rail - the closest I have ever been since I was in college.&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
What are we going to do in Lyon?&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgvqqzoXTLtU3ceC1F-J6AM1XOC6YjBayJ4fJHdCkv0ks6r9yCz-oSWTkJRR0C4YuUZdWGSScNSallZU2MmR-Sbo4vPyMHYV-LfUygt0kHh_h0CZgKskpnaXKXdgckjhvkO1vAc9AOeh2s/s1600/P1140731.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1600&quot; data-original-width=&quot;1069&quot; height=&quot;400&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgvqqzoXTLtU3ceC1F-J6AM1XOC6YjBayJ4fJHdCkv0ks6r9yCz-oSWTkJRR0C4YuUZdWGSScNSallZU2MmR-Sbo4vPyMHYV-LfUygt0kHh_h0CZgKskpnaXKXdgckjhvkO1vAc9AOeh2s/s400/P1140731.jpg&quot; width=&quot;266&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Well, first off, refresh our French! I studied it for eight years but to be fair I haven&#39;t practiced much for, well, all my life. And this romantic language is pretty new to Mayah too.&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
What else? Eat our way through Bouchons (small traditional French restaurants) of course! And bakeries! I want to learn to make croissants, bread, and boeuf en croute and all those delicious things. We&#39;ll take cooking classes.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
We&#39;ll go to film festivals. Cannes and Annecy are around the corner. And fear not, we&#39;ll stay connected with our industries. I&#39;ll be at Siggraph and FMX although with a different badge (stay tuned about that).&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;
After almost ten years, I have put some roots in San Francisco and Pixar. It is hard to say goodbye to my amazing friends - you know who you are - and my amazing job. We can&#39;t predict exactly what the future holds, and when exactly we&#39;ll come back, but we are going to live this adventure to the fullest. That&#39;s why 2018 is a brave new year.&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQiuAy_yrKlB6jhM9bc8EFSXBM_Msd4XVYfxZRvcE_JhhEUwBzNTOuRvUDhAQpfqi3uF74HesfKhCQ6X1IWwVG1iLdboxz88NvfiTU-DLPD7qeRmzM_gk_uSGfPUkG8Yt1nv2Kr7_EBmE/s1600/P1140910.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1069&quot; data-original-width=&quot;1600&quot; height=&quot;426&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQiuAy_yrKlB6jhM9bc8EFSXBM_Msd4XVYfxZRvcE_JhhEUwBzNTOuRvUDhAQpfqi3uF74HesfKhCQ6X1IWwVG1iLdboxz88NvfiTU-DLPD7qeRmzM_gk_uSGfPUkG8Yt1nv2Kr7_EBmE/s640/P1140910.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Coffee and pastries in the Croix Rousse neighborhood, Lyon&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;
In the meantime, come visit! We&#39;ll have pastries and coffee together.&lt;/div&gt;
&lt;div class=&quot;blogger-post-footer&quot;&gt;----------------------------
Extracted from blog:
http://dakrunch.blogspot.com&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dakrunch.blogspot.com/feeds/3179163797301086423/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3558910597161148058/3179163797301086423' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3558910597161148058/posts/default/3179163797301086423'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3558910597161148058/posts/default/3179163797301086423'/><link rel='alternate' type='text/html' href='http://dakrunch.blogspot.com/2018/01/nouvelles-aventures.html' title='Nouvelles Aventures'/><author><name>Davide Pesare</name><uri>http://www.blogger.com/profile/02004541122380635353</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjVv5yK9dQzgi_Rhw_L1Z6aP-l0EFX4ZaX5_wbrqUJT2BsbFur0p9Jcvld2D4rAn3GnGtIA8lk_CzZwSpc14QhSnopKGppH-MckEeif19h9u_3ephxnOVQ2gy8ysiOx6tj6xeb640KSTI0qTYsz-CW4_zVLJp5xD4bWYHiOohFCo9SmDU/s220/1743541473925.jpeg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj84K4ZwVsj19vctgV9kUQZbOS8-Ebn17demYK7OThAlcW976hJMONONnQxKGiUOrB1WRyB8jqkcOONROAEaAyOrO9JONBWJFEPmJYUo1EUq14TL9ZRc1L5IzIXeyIKgyHQSazKq8WVcWc/s72-c/P1140749.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3558910597161148058.post-1397665448378154424</id><published>2017-12-04T09:16:00.000-08:00</published><updated>2017-12-12T07:17:26.044-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Cg"/><category scheme="http://www.blogger.com/atom/ns#" term="Pixar"/><title type='text'>Portable Material Descriptions</title><content type='html'>&lt;div style=&quot;text-align: justify;&quot;&gt;
Let me share my thoughts about a problem I&#39;ve had to deal with for a few years, since before Finding Dory.&lt;br /&gt;
&lt;br /&gt;
The creative vision behind Coco, paired with the time constraints we had, forced us to get creative on the technology. In a &lt;a href=&quot;https://dakrunch.blogspot.com/2017/03/coco-and-flow_15.html&quot; target=&quot;_blank&quot;&gt;post&lt;/a&gt;&amp;nbsp;I talked about how&amp;nbsp;we wrote a new surfacing tool, called Flow. One of the immediate problems we had to address was the exchange of materials: how do we make sure the appearance in our interactive renderer would be compatible with our rendering on Katana and Renderman? Even more now after Coco, how do we round trip these material across these different suites?&lt;br /&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfRVae5z_0I6QYtQP2ys3s-9wlvsdmGdIaQakpf_-zclbuP4MgL2DCjTeCf6zbtFb4rSzG28ihQ7unZMnN3B0SJytoN2GGc3YUzBUKAbZRQG6aNe4VZrtnp3nUCbNzYBEwaa4rXNl6xPM/s1600/coco-image-23.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;900&quot; data-original-width=&quot;1600&quot; height=&quot;360&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfRVae5z_0I6QYtQP2ys3s-9wlvsdmGdIaQakpf_-zclbuP4MgL2DCjTeCf6zbtFb4rSzG28ihQ7unZMnN3B0SJytoN2GGc3YUzBUKAbZRQG6aNe4VZrtnp3nUCbNzYBEwaa4rXNl6xPM/s640/coco-image-23.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Screenshot from the Coco VR experience.&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
In our industry, describing portable material descriptions is not a new problem. In fact it is many problems in one:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Vfx studios have to work on the same show, share props, characters or whole environments, but for technical, competitive or legal reasons, they cannot share the technology used to render them.&lt;/li&gt;
&lt;li&gt;A high quality material needs to look fairly accurate in a fast preview, so animators can use it to make creative decisions in real time.&lt;/li&gt;
&lt;li&gt;A studio may need to export assets so they can be adapted for video games, toy makers, or VR.&lt;/li&gt;
&lt;li&gt;An asset that renders today, may not work in a future pipeline or renderer 10 years from now. There is a need for making the materials work not only across studios and tools, but also across time. Storing whole archives of assets this way is often referred to as &quot;digital backlots&quot; (at least ours is), and I&#39;ll talk more about them in a future post.&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
There have been several remarkable attempts at describing looks for exchange. Let&#39;s examine a few:&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;h3&gt;
Alembic&lt;/h3&gt;
&lt;/div&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhG_ztXsS8jzc9fA9PcsLOn1xewGKo6LHma9dRe9MQun-B9511IAvA4QEfaAjQkRIVxpO9UtAhWRfAfQT_9KzyYiDkWooTnRY-XuG2-1xhmt254y7R10iIGq8mcqSvx-jLijtb8ibQ2edw/s1600/alembic_logo.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em; text-align: justify;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;235&quot; data-original-width=&quot;255&quot; height=&quot;183&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhG_ztXsS8jzc9fA9PcsLOn1xewGKo6LHma9dRe9MQun-B9511IAvA4QEfaAjQkRIVxpO9UtAhWRfAfQT_9KzyYiDkWooTnRY-XuG2-1xhmt254y7R10iIGq8mcqSvx-jLijtb8ibQ2edw/s200/alembic_logo.jpg&quot; width=&quot;200&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;Alembic&lt;/b&gt; is the most widespread pose caching (post-animation) format in the film industry. Sony Imageworks and ILM worked together on its development and its Open Source release, and as of&amp;nbsp;version 1.1 they introduced lights and materials. The internal implementation includes a resolver of materials, so hierarchies can be described with inheritance and sparse overrides, which is a pretty powerful feature, similar to how Katana resolves Materials.&lt;br /&gt;
&lt;br /&gt;
However, while the geometry is used all over the place, this rather stable format has seen few updates recently, and the industry adoption of its material description is extremely sparse. That is true even within some of the owners of Alembic, who moved on to newer technologies. In fact, major third party Alembic plugins don&#39;t even support the exchange of materials.&lt;/div&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;Pro:&lt;/b&gt;&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Tiny dependencies&lt;/li&gt;
&lt;li&gt;Widespread abc format&lt;/li&gt;
&lt;li&gt;Stable library&lt;/li&gt;
&lt;li&gt;Well compressed files with de-duplication&lt;/li&gt;
&lt;li&gt;Open Source&lt;/li&gt;
&lt;li&gt;Includes a resolver for bindings, hierarchies, overrides&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;Con:&lt;/b&gt;&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Material description is hardly used&lt;/li&gt;
&lt;li&gt;No enforced standardization&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
MaterialX&lt;/h3&gt;
&lt;/div&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEizSGerGLXvtyc8-KkjieiNlnCLVAWfvBxP98wchyIXd6M3Qe-chFYI37p5UxfWnf27_ZzseSfENDWZfM0o_a2DHQxYbiYkIrp2TKhkWl2RBrxOcN4CZ98bgTmTTlJ57E0BtxoJo1GsxT4/s1600/matx_logo.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em; text-align: justify;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;247&quot; data-original-width=&quot;320&quot; height=&quot;154&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEizSGerGLXvtyc8-KkjieiNlnCLVAWfvBxP98wchyIXd6M3Qe-chFYI37p5UxfWnf27_ZzseSfENDWZfM0o_a2DHQxYbiYkIrp2TKhkWl2RBrxOcN4CZ98bgTmTTlJ57E0BtxoJo1GsxT4/s200/matx_logo.jpg&quot; width=&quot;200&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
While Alembic theoretically can support material descriptions, studios have recognized a need for content standardization and compatibility. ILM took this to heart, with Doug Smythe and Jonathan Stone spearheading the development. The first conversations go way back to Siggraph 2012, and early embracers counted our tools-shading and USD teams at Pixar, who got to contribute to its shaping, and The Foundry. This resulted in the 2017 Open Source release of MaterialX.&lt;br /&gt;
&lt;br /&gt;
At this point in time, Autodesk is the primary facility other than ILM that has put some real engineering muscle behind MaterialX, writing a pattern generator called &lt;a href=&quot;http://www.materialx.org/assets/MaterialX%20Sig2017%20BOF%20Slides.pdf&quot; target=&quot;_blank&quot;&gt;ShaderX&lt;/a&gt;.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;
MaterialX exchange files are simply implemented as an XML, but its real strength is in its schemas. It is very rigorous in its pattern description, somewhat inspired to compositing systems and to the Mari internal node graph, with canonical nodes shipped with openGL and OSL implementation to clarify the behavior and maximize compatibility. It has well defined rules for targeting different platforms, and for describing complex color spaces. It supports node grouping and encapsulation, as well as some basic referencing. Because it only supports materials and no geometry, MaterialX features specific rules but no coded resolvers for procedural material bindings or references.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFu117fcprF_8uYgf2jAi9sfIfmqsoNGnS1Ms6R2mR6mXhx-vJ73UT95ToXqZV57XAEGcffh1lvWdyXvSPPWVw1OvH5WFpmktoRXlDaIZIRBF8EfYxa-AuSasbC_oRJlOXdSXvNqpZeFQ/s1600/rogue.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;378&quot; data-original-width=&quot;672&quot; height=&quot;360&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFu117fcprF_8uYgf2jAi9sfIfmqsoNGnS1Ms6R2mR6mXhx-vJ73UT95ToXqZV57XAEGcffh1lvWdyXvSPPWVw1OvH5WFpmktoRXlDaIZIRBF8EfYxa-AuSasbC_oRJlOXdSXvNqpZeFQ/s640/rogue.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
At ILM, MaterialX has been used on a few projects, starting with &quot;Star Wars: The Force Awakens&quot;, and &quot;Rogue One&quot;, where some of the shots were rendered fully in Unreal Engine, using MaterialX as a common description. The VR project &quot;Trials on Tatooine&quot; is also a great example.&lt;br /&gt;
&lt;br /&gt;
As of today, a handful of other studios are testing MaterialX, but DCC&#39;s are working on robust implementations that will enable its spreading.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;Pro:&lt;/b&gt;&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Simple API&lt;/li&gt;
&lt;li&gt;Small dependencies&lt;/li&gt;
&lt;li&gt;Rigorous pattern standardization&lt;/li&gt;
&lt;li&gt;Includes implementations&lt;/li&gt;
&lt;li&gt;Self contained&lt;/li&gt;
&lt;li&gt;Growing interest in the industry&lt;/li&gt;
&lt;li&gt;Open Source&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;Con:&lt;/b&gt;&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Separate from geometry&lt;/li&gt;
&lt;li&gt;Some rules expressed but resolution is left to each client to implement&lt;/li&gt;
&lt;li&gt;Bxdf standardization not fully flushed (yet)&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
Universal Scene Description&lt;/h3&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEizZsPnorQWDngJoL33ESUijg4vIy6jj79dO80g5acbVXLHrNfp9-M8L4ILEATKdB7Z_QtYZKmIvvXnvXYQoaUFWR7FIfgJj9D0il_IEgdqWnZtNZ5n2besYsDRM6H32xTz-eGTpG-A97E/s1600/USDLogoLrgWithAlpha.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em; text-align: justify;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;269&quot; data-original-width=&quot;800&quot; height=&quot;66&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEizZsPnorQWDngJoL33ESUijg4vIy6jj79dO80g5acbVXLHrNfp9-M8L4ILEATKdB7Z_QtYZKmIvvXnvXYQoaUFWR7FIfgJj9D0il_IEgdqWnZtNZ5n2besYsDRM6H32xTz-eGTpG-A97E/s200/USDLogoLrgWithAlpha.png&quot; width=&quot;200&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
After releasing to Open Source in 2016, Pixar has been hard at work on&amp;nbsp;&lt;b&gt;USD&lt;/b&gt;&#39;s shading description. It comes off the bat with all the features of USD&#39;s core, such as references, variant sets, layering and composition, and a very optimized file format. While the Shading description is now getting more mature, lots of work is still going into Hydra (USD&#39;s render service protocol), so its output to each internally supported renderer (GL, Optix, or cpu/offline) will be accurate.&lt;br /&gt;
&lt;br /&gt;
To some extent, USD looks like an Alembic on steroid, in the sense that it describes geometry, shading, dressing, lighting and animation in one composed layer stack. As such, it resolves references and layering, provides facilities to bind materials to geometry and schemas to resolve bindings and collections.&lt;br /&gt;
&lt;br /&gt;
Working closely with ILM, my team greatly aligned itself with the concepts and language of MaterialX, ensuring compatibility and, in a near future, full support, meaning that you will be able to exchange MaterialX data directly in USD.&lt;br /&gt;
&lt;br /&gt;
At Pixar and on Flow, we used USD of course. It has to fit in our pipeline which is almost all USD. Besides, we actually use a lot of the advanced feature sets of USD for Shading.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQc0vn4EkHVMW7jsFRpuE1xdzK3NWXAEhsyfj6uvfDcpGti8iFR8j2ESv9823f0wgE4gn6LLIg8lVt2QwudImUrb1DLPbPjMLqfKhg0vRXh5Xe201FqgCOV6HL8X1J0_EfjjbhNxoCIRE/s1600/coco.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;360&quot; data-original-width=&quot;640&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQc0vn4EkHVMW7jsFRpuE1xdzK3NWXAEhsyfj6uvfDcpGti8iFR8j2ESv9823f0wgE4gn6LLIg8lVt2QwudImUrb1DLPbPjMLqfKhg0vRXh5Xe201FqgCOV6HL8X1J0_EfjjbhNxoCIRE/s1600/coco.jpg&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Flow native source data is USD itself, as opposed to having its own file format and then &quot;export&quot; to USD. It &lt;b&gt;references&lt;/b&gt; pre-authored library materials, applies overrides and exports only the sparse overrides, as well whole new materials, &lt;b&gt;shader bindings and public interface&lt;/b&gt;.&lt;br /&gt;
&lt;br /&gt;
We can create &lt;b&gt;derived Materials &lt;/b&gt;(similar to Katana&#39;s child materials) to any level of hierarchy depth. We can import and visualize alternate &lt;b&gt;modeling variants&lt;/b&gt;, and export &lt;b&gt;shading variants&lt;/b&gt; (currently in Katana, coming soon on Flow too), each with arbitrary complexity.&lt;br /&gt;
&lt;br /&gt;
Finally, we export all this back to Katana, which in turn applies more sparse overrides, including &lt;b&gt;collections&lt;/b&gt; and new materials, and exports back to another USD that will be composed on top. Assets shaded this way are then USD-referenced into shots during Layout or Set Dressing, ready for more shot-specific overrides. At some point soon, we&#39;ll be even able to render directly from USD to Renderman (r22 and later).&lt;br /&gt;
&lt;br /&gt;
Did we use MaterialX too? I claim we did, at least in spirit. In the sense that MaterialX design has influenced USD shading a lot. What we don&#39;t use is the exhaustive list of nodes provided with MaterialX. They don&#39;t match closely with how we set up our networks, because we use less, larger nodes with multiple outputs, and MaterialX defaults to using many smaller nodes with a single outputs. You can see my older posts if you are curious about how we keep our renderers matching.&lt;br /&gt;
&lt;br /&gt;
Other than Pixar, Animal Logic, Luma and SideFx have been actively using and developing USD and its plugins.&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;Pro&lt;/b&gt;:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Very powerful feature set&lt;/li&gt;
&lt;li&gt;Composition resolved, clients don&#39;t need to implement it&lt;/li&gt;
&lt;li&gt;Can read Alembic&lt;/li&gt;
&lt;li&gt;MaterialX compatibility&lt;/li&gt;
&lt;li&gt;Wide DCC support&lt;/li&gt;
&lt;li&gt;Growing industry adoption&lt;/li&gt;
&lt;li&gt;Great compression and fast file I/O&lt;/li&gt;
&lt;li&gt;Open Source&lt;/li&gt;
&lt;li&gt;Easy setup for Public Interface of networks&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;Con&lt;/b&gt;:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Moderate build dependencies, more if Hydra and python bindings are needed&lt;/li&gt;
&lt;li&gt;No rigorous standardization of node types (unless using MaterialX schemas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
Multiverse&lt;/h3&gt;
&lt;h3&gt;
&lt;div style=&quot;font-size: medium; font-weight: normal;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj0Pk21SH_Me6OGo91AiaoyZ8bcYwqpCiouf0kthy6NKk1EvLX1jPNtmf3Jz454IxlExFJqjSDT2LdlsKq9vbHpCMjIT0nDHnZ4rN8hKzdvs16RZpL72q6ttVB5mg9c-DPrWB0c0taf6Vc/s1600/ms_white_f.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;265&quot; data-original-width=&quot;1080&quot; height=&quot;48&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj0Pk21SH_Me6OGo91AiaoyZ8bcYwqpCiouf0kthy6NKk1EvLX1jPNtmf3Jz454IxlExFJqjSDT2LdlsKq9vbHpCMjIT0nDHnZ4rN8hKzdvs16RZpL72q6ttVB5mg9c-DPrWB0c0taf6Vc/s200/ms_white_f.png&quot; width=&quot;200&quot; /&gt;&lt;/a&gt;One of the advantages of the systems above is that they are open source. Because of that, some DCCs have been additionally relying on&amp;nbsp;&lt;a href=&quot;http://multi-verse.io/&quot; target=&quot;_blank&quot;&gt;Multiverse&lt;/a&gt;&amp;nbsp;for exchanging material data. Multiverse, distributed by Foundry, in itself is not a file format, so it relies on these existing ones. It can currently support, to varying degrees, USD, Abc and MatX, and provide plugins for loading and storing such data. We haven&#39;t tried it here, but I love the spirit of it.&lt;/div&gt;
&lt;/h3&gt;
&lt;h3&gt;
Material Description Language&lt;/h3&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhCIMCZ-lQZ8CIkYy4JCe0NqGYhQEJqH3MBulB1NBBM5UAgm8XrQKMjAIFSG3LhO4TDurj-MzfhYquw5tTzo161XWvVdViDfJJjwRhSFSukYZ5N_6GJavV-_cKMY7vNE7LBUuYFR3S42eA/s1600/nvidia-logo.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;256&quot; data-original-width=&quot;256&quot; height=&quot;200&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhCIMCZ-lQZ8CIkYy4JCe0NqGYhQEJqH3MBulB1NBBM5UAgm8XrQKMjAIFSG3LhO4TDurj-MzfhYquw5tTzo161XWvVdViDfJJjwRhSFSukYZ5N_6GJavV-_cKMY7vNE7LBUuYFR3S42eA/s200/nvidia-logo.png&quot; width=&quot;200&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
Independently from these efforts, NVidia came up with a different solution that spans their own and some external renderers: &lt;b&gt;&lt;a href=&quot;https://www.nvidia.com/en-us/design-visualization/technologies/material-definition-language/&quot; target=&quot;_blank&quot;&gt;MDL&lt;/a&gt;&lt;/b&gt;, or Material Description Language.&lt;br /&gt;
&lt;br /&gt;
This product is significantly different than the ones above in that it&#39;s not open source, and it&#39;s less of a node graph description, but rather a shading language (although one can often be mapped into the other).&lt;br /&gt;
MDL tries to be a standard representation for multiple targets, from real time engines, to interactive one (IRay), all the way to photoreal offline renderers, like Mental Ray or V-Ray. It is the responsibility of each engine to provide, full or partial implementations for each call of the material.&lt;br /&gt;
&lt;br /&gt;
As the science of physically based illumination is settling over the years, MDL has put a lot of efforts in defining standards in its description, so Bxdfs and lights are enforced to be quite portable. Pattern description is simpler, and while more portable, it looks a bit like a more declarative version of the industry&#39;s favorite &lt;a href=&quot;http://opensource.imageworks.com/?p=osl&quot; target=&quot;_blank&quot;&gt;Open Shading Language&lt;/a&gt; (OSL) from Sony Imageworks.&lt;br /&gt;
&lt;br /&gt;
With the exception of V-Ray and Substance from Allegorithmic, the penetration of MDL in the film industry is not clear to me at this point. I&#39;d love to hear from you readers.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Pro:&lt;/b&gt;&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Standard Bxdf&#39;s and lights&lt;/li&gt;
&lt;li&gt;Large user base in other industries&lt;/li&gt;
&lt;li&gt;Large corporate backing in developing and maintaining it&lt;/li&gt;
&lt;/ul&gt;
&lt;b&gt;Con:&lt;/b&gt;&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Not Open Source&lt;/li&gt;
&lt;li&gt;Low film industry usage&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;h3&gt;
What to do, what to use?&lt;br /&gt;
&lt;/h3&gt;
&lt;/div&gt;
All the notes about pros and cons are, of course, quite personal, so this is my view. If you have read so far, chances are you may be looking for a solution for exchanging Materials Exchange. Unfortunately, there isn&#39;t one solution that fits all, and the specific needs of a studio should shape their choice of technology. I am partial to USD because of all the things we can do with it, but there are valid arguments for each one.&lt;br /&gt;
&lt;br /&gt;
One consideration is these products have been developed for years and have had to solve problems that most people don&#39;t even know they will run into. Before moving ahead and writing a new one, make sure you tried these. And if you are missing features, well, many of them are open source, why not contribute?&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;blogger-post-footer&quot;&gt;----------------------------
Extracted from blog:
http://dakrunch.blogspot.com&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dakrunch.blogspot.com/feeds/1397665448378154424/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3558910597161148058/1397665448378154424' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3558910597161148058/posts/default/1397665448378154424'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3558910597161148058/posts/default/1397665448378154424'/><link rel='alternate' type='text/html' href='http://dakrunch.blogspot.com/2017/12/open-material-exchanges.html' title='Portable Material Descriptions'/><author><name>Davide Pesare</name><uri>http://www.blogger.com/profile/02004541122380635353</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjVv5yK9dQzgi_Rhw_L1Z6aP-l0EFX4ZaX5_wbrqUJT2BsbFur0p9Jcvld2D4rAn3GnGtIA8lk_CzZwSpc14QhSnopKGppH-MckEeif19h9u_3ephxnOVQ2gy8ysiOx6tj6xeb640KSTI0qTYsz-CW4_zVLJp5xD4bWYHiOohFCo9SmDU/s220/1743541473925.jpeg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfRVae5z_0I6QYtQP2ys3s-9wlvsdmGdIaQakpf_-zclbuP4MgL2DCjTeCf6zbtFb4rSzG28ihQ7unZMnN3B0SJytoN2GGc3YUzBUKAbZRQG6aNe4VZrtnp3nUCbNzYBEwaa4rXNl6xPM/s72-c/coco-image-23.png" height="72" width="72"/><thr:total>0</thr:total><georss:featurename>Emeryville, CA, USA</georss:featurename><georss:point>37.831316 -122.28524729999998</georss:point><georss:box>37.806236 -122.32558779999998 37.856396000000004 -122.24490679999998</georss:box></entry><entry><id>tag:blogger.com,1999:blog-3558910597161148058.post-8794507499817520852</id><published>2017-10-16T00:13:00.003-07:00</published><updated>2017-10-16T14:16:50.912-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Cg"/><category scheme="http://www.blogger.com/atom/ns#" term="Pixar"/><title type='text'>Material Layering</title><content type='html'>&lt;div style=&quot;text-align: justify;&quot;&gt;
How do you shade a shiny metal object with a layer of dirt or rust on top (or underneath)? Every application seems to have an opinion on this. The problem they solve is called Material Layering, and &lt;b&gt;while it seems simple as a concept, it has quite a few catches&lt;/b&gt;, and quite a few solutions.&lt;br /&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhaKMAkpNvAo6f5ykGRb1AOno9BoBAnle3nW6UDpUyo8yM7zi5nTwy5nPGgn378Ts0swmiwuW8R3Bn6jji0pkROGd5Qb9Lkgm-mMjXxmqPICPPLQ3MmGtlIUBwcJmwnkLUite_5LnbumXc/s1600/coco59a0917a0a349.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;821&quot; data-original-width=&quot;1600&quot; height=&quot;328&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhaKMAkpNvAo6f5ykGRb1AOno9BoBAnle3nW6UDpUyo8yM7zi5nTwy5nPGgn378Ts0swmiwuW8R3Bn6jji0pkROGd5Qb9Lkgm-mMjXxmqPICPPLQ3MmGtlIUBwcJmwnkLUite_5LnbumXc/s640/coco59a0917a0a349.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;font-size: 12.8px;&quot;&gt;Coco packs an incredible level of detail in each sequence. Each material is made of many layers.&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
As physically based approaches are now pervasive, material layering has become again a topic of development and efforts are going into trying to standardize its description and its desired look.&lt;br /&gt;
&lt;br /&gt;
I have been meaning to write about this for a while, as a lot of questions come up, from how to flatten a material to make it more efficient to render, to why blending between shiny and rough items doesn&#39;t always look right. I&#39;ll try to cover some of the answers that have I have seen in offline renders as well as some authoring tools.&lt;/div&gt;
&lt;h3 style=&quot;text-align: justify;&quot;&gt;
Color Layering&lt;/h3&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
If we go back far enough, Renderman had Reyes, a renderer that lets you literally ask for lighting at any point in your RSL (Renderman Shading Language) shader.&lt;br /&gt;
&lt;br /&gt;
A popular way to calculate Material Layering was to get the result of &lt;b&gt;each material&lt;/b&gt;, complete with its illumination, turn it &lt;b&gt;into an RGBA layer&lt;/b&gt;, or ColorOpacity, and do an alpha composition. We also passed along just enough information to do displacement layering. The structure was called &lt;b&gt;ColorDisp &lt;/b&gt;(1 color, 1 float, 1 int, 2 vectors). Simple enough, this approach was quite good at getting realistic results. As we started being able to package and publish material layers for later use, the average number of layers grew over time, and we ran into this technique&#39;s main drawback: the cost in computing complex, complete lighting at each material layer. We didn&#39;t have physically based rendering or importance sampling yet, but in fact, even after we introduced physically based rendering in Monsters University, we still relied on this quite a bit.  So 5 or 6 layers meant calculating all the lights 5 or 6 times, which quickly became a bottleneck.&lt;/div&gt;
&lt;h3 style=&quot;text-align: justify;&quot;&gt;
Pattern Layering&lt;/h3&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Starting in Cars in 2003, we experimented with &lt;b&gt;blending not the results of each layer but rather their inputs&lt;/b&gt;. Albedo got layered with albedo, specular color with specular color. The final composed parameters were used to calculate illumination lobes, and a final color.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Not all materials use the same illumination system or the same parameters, so this was not a complete solution. If you grouped your layers carefully, with this technique you could get good results and reduce, say, 8 layers into only 2 or 3 pre-composed materials with unique illumination properties.&lt;br /&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhvsl3JKgstepjmUZD68zrVlImGdrEdbYTt6EDf4aGYigRrKG7xHFPB3bYD3ZLdOBwXIOsWVeK-sQX66bbou_rFa9OhPVLAk05YTYb8Yl2Vtavfl9ai6fRAgB2XQtaY8u2kJx0rh-UoINQ/s1600/next-summer-well-get-cars-3-where-well-see-the-return-of-the-red-hot-lightning-mcqueen-voiced-by-owen-wilson.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;481&quot; data-original-width=&quot;1200&quot; height=&quot;256&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhvsl3JKgstepjmUZD68zrVlImGdrEdbYTt6EDf4aGYigRrKG7xHFPB3bYD3ZLdOBwXIOsWVeK-sQX66bbou_rFa9OhPVLAk05YTYb8Yl2Vtavfl9ai6fRAgB2XQtaY8u2kJx0rh-UoINQ/s640/next-summer-well-get-cars-3-where-well-see-the-return-of-the-red-hot-lightning-mcqueen-voiced-by-owen-wilson.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;font-size: 12.8px;&quot;&gt;Pixar Cars, 2006, was rendered with a mix of ColorDisp and pattern layering techniques.&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
If you use this blending for a some or all of your layers, with a bit of hand holding, results still look good with a much reduced overhead. So after we switched to Physically based Rendering, with improvements on Monsters University and Cars 2, this became the main layering technique used at Pixar.&lt;br /&gt;
Used carelessly however, the technique is far from perfect:&amp;nbsp;&lt;b&gt;not all parameters blend equally well&lt;/b&gt;. If you blend directly related parameters separately, across two materials, you will get &lt;b&gt;badly blended pixels around the layering zone&lt;/b&gt; (where presence is not solid 0 or 1). Why is that? Say you have a grey, RGB = (.4, .4, .4) material with .5 diffuseGain. Its overall diffuse response is (.2, .2, .2). Now let&#39;s say you mix it with a black material: (0,0,0) and 0 diffuseGain. If the presence of the black overlay material was exactly half, or 0.5, you will end up with a color of (.2, .2, .2) and a diffuseGain of .25. The resulting color is... RGB (.05, .05, .05)! While the accurate average of the two should have looked more like a (.1, .1, .1), double that.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
That is because we are blending separately two aspects that are always considered, in the renderer, as one. We use the result of diffuseColor * diffuseGain, so that is what we should be blending: &lt;b&gt;premultiplied results&lt;/b&gt;. That goes for any color that also has a multiplier applied to it.&lt;br /&gt;
&lt;br /&gt;
This same premultiplication gets trickier when you are calculating factors that affect non-linearly the resulting pixels, like a dmfp (diffuse mean free path) in subsurface scattering.&lt;br /&gt;
&lt;br /&gt;
Surface&amp;nbsp;&lt;b&gt;normals &lt;/b&gt;present their own challenges. We have historically preferred to layer &lt;b&gt;bump vectors &lt;/b&gt;(the equivalent of&amp;nbsp; displacement vectors, they create a virtual point which we later used to compute a final normal). Bump Vectors have the advantage of blending more correctly than surface normals, and allow for more complex layering behaviors, such as displacement/bump accumulation, erosion and softening. Unfortunately, Bump Vectors rendered much faster in good old Reyes, where the derivatives needed for normal calculations were basically free. The extra cost in a path tracer is measurable. &lt;br /&gt;
Recently, the development focus is going more towards pre-computed maps we call &lt;a href=&quot;https://graphics.pixar.com/library/BumpRoughness/&quot; target=&quot;_blank&quot;&gt;BumpRoughness&lt;/a&gt;, based on LEADR mapping. While they share the same issues as layering normal maps, they are more accurate, faster to render, and they behave better when the shader details get filtered away.&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
An interesting parameter to interpolate is &lt;b&gt;specular roughness&lt;/b&gt;. For at least two reasons. One: in most classical descriptions of physically based microfacet models such as Beckmann or Ggx, roughness is not a linear quantity. That means that double the roughness will not give you a highlight that is double as large. Most valid values for roughness tend to be crammed between 0 and 0.2. Some shading models, such as &lt;a href=&quot;https://disney-animation.s3.amazonaws.com/library/s2012_pbs_disney_brdf_notes_v2.pdf&quot; target=&quot;_blank&quot;&gt;Disney&#39;s Brdf&lt;/a&gt; (PxrDisney in Renderman) address this by blending a normalized and linearized parameter instead, that behaves well between 0 and 1.&lt;br /&gt;
&lt;br /&gt;
But that&#39;s not all. Quite simply put, the &lt;b&gt;average of the render of two speculars is not, in fact, the render of the average of the same two speculars&lt;/b&gt;. This becomes quite obvious when you have a lot of variance over the roughness (e.g. a shiny metal and a dull layer of dust), with a not-quite-solid coverage (e.g. presence of the dust is 50%). The artifacts you get are rougher surfaces with little detail, and even some visible errors in the blending areas.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiuWO7CB2CTJq8sJscb48rAp1COmLHWTDX03gXCbJARuuvWL8dHon3Y0n5xuhr0FvLsPWxwo7OwTjcndl-gWslvDZ2uVaQ0hrSR-J13Hnfesdnvi7MyroPBAoJHnP-HP__hQI8mNsjbbiM/s1600/ShaderBall_Default_flow_2017-10-13--19-08-37_exr.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;720&quot; data-original-width=&quot;960&quot; height=&quot;480&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiuWO7CB2CTJq8sJscb48rAp1COmLHWTDX03gXCbJARuuvWL8dHon3Y0n5xuhr0FvLsPWxwo7OwTjcndl-gWslvDZ2uVaQ0hrSR-J13Hnfesdnvi7MyroPBAoJHnP-HP__hQI8mNsjbbiM/s640/ShaderBall_Default_flow_2017-10-13--19-08-37_exr.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;On top of this RenderMan preview shaderBall, mixing roughness will make the underlying shiny layer look rougher, rather than dimmer with a rough layer on top. Note the roughness artifacts on the highlights of the base too.&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1avgqJQqfM11pgMIKX42rTZYumaOFkCVNYtXxnBikCcozO3CE2xqMBWfzo3GPZcGFqnj1EmIfVdIGwJB6kD75vjfTcOlHaFBklkVWHXxOAUUGI8RiVxTLOVfFz5saBM74p3X_VVgg1p4/s1600/ShaderBall_Default_flow_2017-10-13--19-10-22_exr.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;720&quot; data-original-width=&quot;960&quot; height=&quot;480&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1avgqJQqfM11pgMIKX42rTZYumaOFkCVNYtXxnBikCcozO3CE2xqMBWfzo3GPZcGFqnj1EmIfVdIGwJB6kD75vjfTcOlHaFBklkVWHXxOAUUGI8RiVxTLOVfFz5saBM74p3X_VVgg1p4/s640/ShaderBall_Default_flow_2017-10-13--19-10-22_exr.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Mixing resulting values from the speculars directly, will yield a result that is closer to reality.&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;div&gt;
&lt;div&gt;
&lt;br /&gt;
We work around the roughness blending errors by having &lt;b&gt;more than one specular lobe&lt;/b&gt;. We have three, sorted by their recommended roughness range. ClearCoat (0-0.1), Specular (0.1-0.3), RoughSpecular (0.3-1). These three allow us to reach interesting, rich sheen looks. But especially when layering, they ensure that the blend between speculars does not create interpolated roughness that are too far from either material being layered.&lt;br /&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgyt2bgDcp_dwiqJrCHbwNtIUM6BRyCzOhjA0fJP-uJ5mzCReiaFsJx2fyHy3mUhr4xu-55fd-R8Yx96HTF59Fa0vGS7P2kvWpesmg28gsF9DCMJE_tGOgp7Xd_lkXMIZbk32wmFHfOhi0/s1600/1012-rust.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1024&quot; data-original-width=&quot;1024&quot; height=&quot;640&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgyt2bgDcp_dwiqJrCHbwNtIUM6BRyCzOhjA0fJP-uJ5mzCReiaFsJx2fyHy3mUhr4xu-55fd-R8Yx96HTF59Fa0vGS7P2kvWpesmg28gsF9DCMJE_tGOgp7Xd_lkXMIZbk32wmFHfOhi0/s640/1012-rust.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;font-size: 12.8px;&quot;&gt;Rust shader by Harsh Agrawal, rendered in Renderman&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
Without getting into more exotic surface effects such as metal flakes, scratches, fuzz or iridescence, layering these three lobes separately in practice has solved 95% of our visible layering issues, giving us accurate results.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhligszZ4TYoXxablQCvHYJHw_GsBfJcVmM4nRivqIjcq9ABRMtNYkXQI3z2uK34ZkHAq8AyIS8i073dZdHxOthMqSJ2NgWB3SJIxum_UTbemWtHltm58LTTGV5tejzTRlWaYNnjMHDxzg/s1600/jackson-storm-7050x4736-cars-3-4k-8k-7787.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;788&quot; data-original-width=&quot;1600&quot; height=&quot;314&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhligszZ4TYoXxablQCvHYJHw_GsBfJcVmM4nRivqIjcq9ABRMtNYkXQI3z2uK34ZkHAq8AyIS8i073dZdHxOthMqSJ2NgWB3SJIxum_UTbemWtHltm58LTTGV5tejzTRlWaYNnjMHDxzg/s640/jackson-storm-7050x4736-cars-3-4k-8k-7787.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Cars 3&#39;s Storm, closeup of metal flakes&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;&lt;/div&gt;
At Pixar we still layer patterns, compose the results in a virtual structure of premultiplied values (V-Struct) and feed the resulting values directly to PxrSurface. We are not alone in this: many studios do their look development in procedural and/or painting applications where a lot the visual complexity is baked and at the end, pre-layered values are fed to an individual uber-shader with a largely predetermined number of illumination lobes (or Bxdf&#39;s)&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;h3&gt;
Bxdf Layering&lt;/h3&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
In a perfect path tracing world, with accurate prediction of where most of the light will be coming from, layering BXDF results directly is not as much more expensive than pattern layering any more. The layering logic needs to know what is covering what and how, &lt;i&gt;affecting&amp;nbsp;&lt;/i&gt;the Probability Density Functions (PDF) and their resulting samples.&lt;br /&gt;
&lt;br /&gt;
We did try this approach during Finding Dory, but did not publish it with Renderman (do not confuse with PxrLayerSurface, which relies on pattern layering). While more work was needed to do it really efficiently, there are advantages to it: blending is more accurate, and complex pipeline solutions like VStructs become unnecessary. Also, more lean and diverse Bxdf become feasible with less reliance on one UberShader to rule them all. It will be exciting to see what happens in this field in the coming years.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;h3&gt;
Illumination lobe based layering&lt;/h3&gt;
&lt;div&gt;
Bxdf, in an UberShader world, are composed of multiple illumination lobes. Seemingly simple ones, like diffuse or specular, as well as complex ones, like Path Traced Subsurface Scattering. Often times the resulting light coming out of these lobes is simply added together into a final color.&lt;/div&gt;
&lt;div&gt;
In the real world, however, these illumination properties often come from distinct layers of the physical material. For example, in a car paint, there will be a metal layer, a paint layer with metal flakes embedded, and a clear coat on top of it all. The more light the top lobe reflects, the less light the underlying layers will receive, and therefore emit. Also, the &lt;b&gt;top layer might modify the light&lt;/b&gt;&amp;nbsp;properties and diffuse it in a way that will &lt;b&gt;affect what happens to the lower layers&lt;/b&gt;. This can get complicated quickly, beyond what pattern layering can do.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
An easy way to begin emulating this, is using the Fresnel coefficient that affects your specular layers, inverting it, and applying it to all the other lobes.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
E.g. If the light is largely reflected by the specular clear coat at grazing angles, we should dim appropriately the response of the other layers. That is so the overall response doesn&#39;t blow out beyond physically valid coefficients, which is bad if you care about your render times and quality. If you have more than one specular lobe, you may have to do this multiple times.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiRvWl_MGl8gfG7u8ydIS5n0VPwL2SActhyphenhyphenWW_5AGY6O-vX5NI4NCux8KMK7by-s3C-S63uXhqSCKPmdoFEqGkjEvHiqx3eHwS1gInCXiA6AhIj75pH-CCPqH6Pmqfc38_Sy-Zlx4Z_Ho0/s1600/teaser.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;561&quot; data-original-width=&quot;1600&quot; height=&quot;224&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiRvWl_MGl8gfG7u8ydIS5n0VPwL2SActhyphenhyphenWW_5AGY6O-vX5NI4NCux8KMK7by-s3C-S63uXhqSCKPmdoFEqGkjEvHiqx3eHwS1gInCXiA6AhIj75pH-CCPqH6Pmqfc38_Sy-Zlx4Z_Ho0/s640/teaser.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;br /&gt;
There are a few good papers on this topic, &lt;a href=&quot;http://www.cs.cornell.edu/projects/layered-sg14/&quot; target=&quot;_blank&quot;&gt;like this one&lt;/a&gt;&amp;nbsp;in 2014 by Jakob, D&#39;Eon, Jakob and of course, Steve Marschner. While the science is good, I &lt;b&gt;haven&#39;t seen a full featured implementation in commercial renderers&lt;/b&gt;. &lt;br /&gt;
&lt;br /&gt;
This is something that will be fun to see evolve in these years, as well as how standard descriptions of layered materials will take shape, in Usd, MaterialX, and MDL, to name a few.&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;blogger-post-footer&quot;&gt;----------------------------
Extracted from blog:
http://dakrunch.blogspot.com&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dakrunch.blogspot.com/feeds/8794507499817520852/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3558910597161148058/8794507499817520852' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3558910597161148058/posts/default/8794507499817520852'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3558910597161148058/posts/default/8794507499817520852'/><link rel='alternate' type='text/html' href='http://dakrunch.blogspot.com/2017/10/material-layering.html' title='Material Layering'/><author><name>Davide Pesare</name><uri>http://www.blogger.com/profile/02004541122380635353</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjVv5yK9dQzgi_Rhw_L1Z6aP-l0EFX4ZaX5_wbrqUJT2BsbFur0p9Jcvld2D4rAn3GnGtIA8lk_CzZwSpc14QhSnopKGppH-MckEeif19h9u_3ephxnOVQ2gy8ysiOx6tj6xeb640KSTI0qTYsz-CW4_zVLJp5xD4bWYHiOohFCo9SmDU/s220/1743541473925.jpeg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhaKMAkpNvAo6f5ykGRb1AOno9BoBAnle3nW6UDpUyo8yM7zi5nTwy5nPGgn378Ts0swmiwuW8R3Bn6jji0pkROGd5Qb9Lkgm-mMjXxmqPICPPLQ3MmGtlIUBwcJmwnkLUite_5LnbumXc/s72-c/coco59a0917a0a349.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3558910597161148058.post-5217798666377532910</id><published>2017-09-30T17:09:00.001-07:00</published><updated>2017-09-30T17:16:04.384-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Travel"/><title type='text'>Kicking it underwater</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQPVjenSCmDktWXvLLp9mhjbbEyruW3kKAJ-gp7t061DHuQkNcXXHVYoFvVDEW-WkLh9ljysmechfHQkhrrmlxK3FzYtJ6LCXWP0GY3wllKoGLYK12GxXRuFRNYWjEy1JQw3rKpMNThZs/s1600/Copy+of+IMG_9232.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1600&quot; data-original-width=&quot;1415&quot; height=&quot;640&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQPVjenSCmDktWXvLLp9mhjbbEyruW3kKAJ-gp7t061DHuQkNcXXHVYoFvVDEW-WkLh9ljysmechfHQkhrrmlxK3FzYtJ6LCXWP0GY3wllKoGLYK12GxXRuFRNYWjEy1JQw3rKpMNThZs/s640/Copy+of+IMG_9232.JPG&quot; width=&quot;563&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;
In almost a decade living on the Pacific coast, Hawaii is a place I have only dreamed of. Especially from Italy, it is seen as the quintessential exotic place to visit. So beautiful and so remote. And yet so easy to get to now.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgANTdueYs-kxjrpV6zoqV8NbNTFzUXyw1tWHjttjPsJMSodwnEbJLqd8r_1qxK6-Px7ea0f9rxudN52_7C8hCYV_zQHsM_AndLMZsbagn11EIvZCZv8FsFxMaenpfChwWJNhDBhZFmv8A/s1600/Copy+of+IMG_9293.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;480&quot; data-original-width=&quot;1600&quot; height=&quot;190&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgANTdueYs-kxjrpV6zoqV8NbNTFzUXyw1tWHjttjPsJMSodwnEbJLqd8r_1qxK6-Px7ea0f9rxudN52_7C8hCYV_zQHsM_AndLMZsbagn11EIvZCZv8FsFxMaenpfChwWJNhDBhZFmv8A/s640/Copy+of+IMG_9293.JPG&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Finally we resolved to go visit the Big Island in February. As it turns out, it a great month to visit Hawaii. The weather is mild, the surf is great.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
But before going, we prepared by taking scuba lessons. So much of the beauty of the islands lays hidden under a feet of salty water, and I was not going to let that escape. Not after all the work I put in my &lt;a href=&quot;https://www.shadertoy.com/view/4ls3zM&quot; target=&quot;_blank&quot;&gt;ShaderToy project&lt;/a&gt; from a couple of years back.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;
&lt;iframe allowfullscreen=&quot;&quot; class=&quot;YOUTUBE-iframe-video&quot; data-thumbnail-src=&quot;https://i.ytimg.com/vi/F2vjC4r8QvA/0.jpg&quot; frameborder=&quot;0&quot; height=&quot;440&quot; src=&quot;https://www.youtube.com/embed/F2vjC4r8QvA?feature=player_embedded&quot; width=&quot;680&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
The Big Island has a lot to offer. Several volcanoes, that you couldn&#39;t tell from the shore, but they are almost 14.000 feet in height. Almost as high as the tallest mountain in the Alps, the Mont Blanc.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhOKV-8BqB4P4xrKchH7cWCIimBhjluTW8hbu36KzMMwzA22ARuRS42Y6Udt7E4iNLGec7OAcRzVhYfDKfI7qNERIALw3QjU1sa-bmeitLfid4eHIa2QrrVObXox8sOo25L3s3t9ue4f2I/s1600/Copy+of+IMG_9259.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;744&quot; data-original-width=&quot;1600&quot; height=&quot;296&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhOKV-8BqB4P4xrKchH7cWCIimBhjluTW8hbu36KzMMwzA22ARuRS42Y6Udt7E4iNLGec7OAcRzVhYfDKfI7qNERIALw3QjU1sa-bmeitLfid4eHIa2QrrVObXox8sOo25L3s3t9ue4f2I/s640/Copy+of+IMG_9259.JPG&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
We ended up settling in Kona for a few days, and drive around from there. The place is notorious for the coffee plantations on the volcano side, also the only place in the US that has the right climate to grow it.&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg3huJn3Re-AMjSZxxcqQGrOPp3MHDu9AarFp3Ypn3MR4aFlmzTR6OsWeYaIeURVTMUUEt7y2u0JfsoI260n6_hCkXjPneBziYxy4seG9nUWICWGMEbDzTLoWrRZbiMPrD0e5iDr99kznM/s1600/Copy+of+IMG_9247.JPG&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1600&quot; data-original-width=&quot;1200&quot; height=&quot;400&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg3huJn3Re-AMjSZxxcqQGrOPp3MHDu9AarFp3Ypn3MR4aFlmzTR6OsWeYaIeURVTMUUEt7y2u0JfsoI260n6_hCkXjPneBziYxy4seG9nUWICWGMEbDzTLoWrRZbiMPrD0e5iDr99kznM/s400/Copy+of+IMG_9247.JPG&quot; width=&quot;300&quot; /&gt;&lt;/a&gt;&lt;i&gt;Hawaii has their own endemic nuts: the Macadamias - also one of the tastiest and fattiest nuts in the world. The ideal treat to bring back to the continent and nibble on for weeks.&lt;/i&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;
&lt;br /&gt;
The sharp, porous volcanic rock turned, after millennia, into beautiful black sand beaches. Those become the theater for the birth of sea turtles, who travel to the Big Island to lay their eggs.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhqttwxq5ncqcYdgKGFjL0LyXef-g1V15ZNJv1haqjBu4uHwdbnF5l3lcQT55qoMyT3EVL8CRyqRaTQhyphenhyphen75gqeaWL8cflQG8Z_3qLCidp9mwjCHdhpCTIHLygDcAwQ9UST15O5WJbW5X50/s1600/Copy+of+IMG_9284.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1056&quot; data-original-width=&quot;1600&quot; height=&quot;422&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhqttwxq5ncqcYdgKGFjL0LyXef-g1V15ZNJv1haqjBu4uHwdbnF5l3lcQT55qoMyT3EVL8CRyqRaTQhyphenhyphen75gqeaWL8cflQG8Z_3qLCidp9mwjCHdhpCTIHLygDcAwQ9UST15O5WJbW5X50/s640/Copy+of+IMG_9284.JPG&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;blogger-post-footer&quot;&gt;----------------------------
Extracted from blog:
http://dakrunch.blogspot.com&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dakrunch.blogspot.com/feeds/5217798666377532910/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3558910597161148058/5217798666377532910' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3558910597161148058/posts/default/5217798666377532910'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3558910597161148058/posts/default/5217798666377532910'/><link rel='alternate' type='text/html' href='http://dakrunch.blogspot.com/2017/09/kicking-it-underwater.html' title='Kicking it underwater'/><author><name>Davide Pesare</name><uri>http://www.blogger.com/profile/02004541122380635353</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjVv5yK9dQzgi_Rhw_L1Z6aP-l0EFX4ZaX5_wbrqUJT2BsbFur0p9Jcvld2D4rAn3GnGtIA8lk_CzZwSpc14QhSnopKGppH-MckEeif19h9u_3ephxnOVQ2gy8ysiOx6tj6xeb640KSTI0qTYsz-CW4_zVLJp5xD4bWYHiOohFCo9SmDU/s220/1743541473925.jpeg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQPVjenSCmDktWXvLLp9mhjbbEyruW3kKAJ-gp7t061DHuQkNcXXHVYoFvVDEW-WkLh9ljysmechfHQkhrrmlxK3FzYtJ6LCXWP0GY3wllKoGLYK12GxXRuFRNYWjEy1JQw3rKpMNThZs/s72-c/Copy+of+IMG_9232.JPG" height="72" width="72"/><thr:total>0</thr:total><georss:featurename>Kailua-Kona, HI, USA</georss:featurename><georss:point>19.639994 -155.9969261</georss:point><georss:box>19.520373000000003 -156.1582876 19.759615 -155.8355646</georss:box></entry><entry><id>tag:blogger.com,1999:blog-3558910597161148058.post-8865511882415029970</id><published>2017-08-01T16:33:00.003-07:00</published><updated>2017-08-04T10:09:14.238-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Cg"/><category scheme="http://www.blogger.com/atom/ns#" term="Pixar"/><title type='text'>Shading at Siggraph 2017</title><content type='html'>&lt;div style=&quot;text-align: justify;&quot;&gt;
This summer downtown Los Angeles got hotter, with awesome progress being presented at Siggraph left and right. Here are some oh my highlights in the world of shading.&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgbht377KkVeICZdY9Dtp5sXUrHB-ObF5g1I-WvQyaXXDNOWAUyDNt0gxjnDGLiaT6oFeXEfmn22E9nHBmfvTyE4E5dmLKjhaMeHQYT6I6z632zhyphenhyphen8c0AcNAhnoMB4iypBnliM2dNb4o8U/s1600/siggraph-2017-badge.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;181&quot; data-original-width=&quot;339&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgbht377KkVeICZdY9Dtp5sXUrHB-ObF5g1I-WvQyaXXDNOWAUyDNt0gxjnDGLiaT6oFeXEfmn22E9nHBmfvTyE4E5dmLKjhaMeHQYT6I6z632zhyphenhyphen8c0AcNAhnoMB4iypBnliM2dNb4o8U/s1600/siggraph-2017-badge.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;h3 style=&quot;text-align: justify;&quot;&gt;
MaterialX goes Open-Source&lt;/h3&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgbJPIA9TPlxm0V4_bkHcqZ4q8w3In5FBRNuj3wZEwtSt46J7Un2MfRQRDO2TC64nGojWACmHskgD598PrOfJhqc0y2wqStbHC9aTfy5J-ZHIOHeY-mgUwGiFMK2TO3vbiaqcxDPZ-AWOI/s1600/1033335-materialxannounce201707.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;309&quot; data-original-width=&quot;400&quot; height=&quot;247&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgbJPIA9TPlxm0V4_bkHcqZ4q8w3In5FBRNuj3wZEwtSt46J7Un2MfRQRDO2TC64nGojWACmHskgD598PrOfJhqc0y2wqStbHC9aTfy5J-ZHIOHeY-mgUwGiFMK2TO3vbiaqcxDPZ-AWOI/s320/1033335-materialxannounce201707.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;Years ago, I remember sitting down in the lounge of a hotel in Anaheim. Sitting with me were friends from Industrial Light and Magic, The Foundry, and several film and software studios. We discussed how hard it is to share material descriptions across software and studios, and have them look right, without having to hand off all the secret renderer sauce.&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
ILM really took the helm in this effort, and came up, year by year, with a better and more refined spec, called &lt;a href=&quot;http://www.materialx.org/&quot; target=&quot;_blank&quot;&gt;MaterialX&lt;/a&gt;, for a standard in pattern descriptions. Used alongside &lt;a href=&quot;http://www.alembic.io/&quot; target=&quot;_blank&quot;&gt;Alembic&lt;/a&gt;, MaterialX helped them share assets with vendors, and across OpenGL based software such as Mari, and final render quality. And now, the spec is mature enough to go open source. Congratulations!&lt;/div&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Back at Pixar, I have looked at this spec quite a bit, and worked with our friends at ILM to try to improve it and make it converge with our &lt;a href=&quot;https://graphics.pixar.com/usd/docs/index.html&quot; target=&quot;_blank&quot;&gt;Universal Scene Description&lt;/a&gt; (USD) shading libraries, which in turn were heavily influenced by MaterialX. As a result, it&#39;s easy to see a near future where MaterialX will be natively encoded in USD.&lt;/div&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
I will get deeper into this in a separate post, but a somewhat similar goal was set by NVidia&#39;s Material Description Language (MDL). NVidia has put some real muscle behind this project, which is already established in other industries, such as product design, automotive, architecture and even fashion. MaterialX differs from MDL in its focus on film-centric problems, such as flexible deferred binding and color spaces (which can become a problem when handling different hardware and cameras). It is also very focused on pattern network definition, while MDL has successfully captured the physically accurate illumination side of the equation.&lt;/div&gt;
&lt;h3 style=&quot;text-align: justify;&quot;&gt;
&amp;nbsp;&lt;/h3&gt;
&lt;h3 style=&quot;text-align: justify;&quot;&gt;
Flow Graduates&lt;/h3&gt;
&lt;div&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7L61zGdiwwCA_11ZGRnE9b45EcYJ066EcTgXr94uF8etzQSfz6d4pRLJL6f8Wvm_YbMXmgSNoRGKmZKH2-EGFUDuYNCtalkrnpxfiR7hyxCtg7k3hBRcnHz2yiJwu08VpUOb_LasOOFQ/s1600/Flow256.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;256&quot; data-original-width=&quot;256&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7L61zGdiwwCA_11ZGRnE9b45EcYJ066EcTgXr94uF8etzQSfz6d4pRLJL6f8Wvm_YbMXmgSNoRGKmZKH2-EGFUDuYNCtalkrnpxfiR7hyxCtg7k3hBRcnHz2yiJwu08VpUOb_LasOOFQ/s1600/Flow256.png&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;
While Coco is still in its final stages, our new single-asset shading tool Flow (see a couple of posts ago) is getting more mature, and is getting used in both characters and sets in newer shows.&lt;/div&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Come see my friends Florian Hecht and Peter Roe present the fruits of our labor at the Nvidia booth on Wednesday at 10am. Or at the Renderman Science Fair, if have an invitation.&lt;br /&gt;
[update] Here is the&amp;nbsp;&lt;a href=&quot;http://on-demand.gputechconf.com/siggraph/2017/video/sig1738-florian-hecht-peter-roe-go-with-the-flow-pixar.html&quot; target=&quot;_blank&quot;&gt;link to the talk&lt;/a&gt;&amp;nbsp;at the NVidia booth.&lt;/div&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
A lot of Flow&#39;s success in production can be credited to the speed and accuracy of our Optix-based preview renderer, called RTP. This prototype has shown a lot of potential and we hope it will prove useful to our team in Seattle, to continue to push Renderman speed.&lt;br /&gt;
&lt;br /&gt;
We also focused on streamlining the most common operations, leaving the more complex things to Katana. As a result, accurately shading assets can take hours, where it used to take days.&lt;/div&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
But really, Flow and its level of integration across our complex pipeline wouldn&#39;t have been possible if we didn&#39;t have a such a powerful scene description as USD.&lt;/div&gt;
&lt;br /&gt;
&lt;h3 style=&quot;text-align: justify;&quot;&gt;
Renderman Advancements&lt;/h3&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Renderman&#39;s core tech advances are also nothing to laugh at either. Much faster curve rendering, which can make a difference where everything is furry, hairy or even just a bit fuzzy. Newer, better &lt;a href=&quot;https://rmanwiki.pixar.com/display/REN/RenderMan+21.5&quot; target=&quot;_blank&quot;&gt;subsurface&lt;/a&gt;&amp;nbsp;and denoising techniques are available, in use already at Pixar. FxGuide just published a great article with a &lt;a href=&quot;https://www.fxguide.com/featured/pixar-deep-dive-on-sss-siggraph-preview&quot; target=&quot;_blank&quot;&gt;deep dive in path tracing and subsurface&lt;/a&gt;, featuring our work, especially that or Christophe and Ryusuke.&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSKQ0YqW2MvZl6p94XU1QzyLLyKZayKNfGc6JfA2kgHzT7EoZ6DLuOoziGSyG5h26qE4rIqoEkVjMGnTaB9B3aI6vyKMsxRa504V-0oJ7Y6KqRkeKw9h8reUu9CZFBwdVLkrdvNgP3gbY/s1600/sss-665x285.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;285&quot; data-original-width=&quot;665&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSKQ0YqW2MvZl6p94XU1QzyLLyKZayKNfGc6JfA2kgHzT7EoZ6DLuOoziGSyG5h26qE4rIqoEkVjMGnTaB9B3aI6vyKMsxRa504V-0oJ7Y6KqRkeKw9h8reUu9CZFBwdVLkrdvNgP3gbY/s1600/sss-665x285.jpg&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;/div&gt;
&lt;h3 style=&quot;text-align: justify;&quot;&gt;
Cars 3 Production Sessions&lt;/h3&gt;
&lt;div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpKjPMGO8-qfbX5h5JRu2uK2alAnCxk3cCZ8bTWVR07PeRbmPyJlXt7mcUhd943sTwfJOc_WjP24qm7sHR5sDAuCdgDnLoWVJPwhyyXlrKIJm3POGTwn0ODHSHWqFW9NEuLiNXUw7rjcY/s1600/cars_three_ver3_xlg.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1500&quot; data-original-width=&quot;1012&quot; height=&quot;640&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpKjPMGO8-qfbX5h5JRu2uK2alAnCxk3cCZ8bTWVR07PeRbmPyJlXt7mcUhd943sTwfJOc_WjP24qm7sHR5sDAuCdgDnLoWVJPwhyyXlrKIJm3POGTwn0ODHSHWqFW9NEuLiNXUw7rjcY/s640/cars_three_ver3_xlg.jpg&quot; width=&quot;431&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Top research and academic papers are what have historically distinguished Siggraph from other events, but Production Sessions and panels are still some of my favorite things to watch. This year we are presenting Cars 3 in all its beauty.&lt;/div&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
My friends from technology, art, characters, sets and lighting are showing some of the remarkable work that went into it - including the deferred texturing techniques mentioned earlier. Scratches and bump/roughness interactions are not new concepts in rendering, but their quality leaped ahead with new authoring techniques.&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;
Smash and Grab&lt;/h3&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNzCV9qxHayL-nF10AJJQceWyf1GexJYO1fykGGg4FAFPRtTuS2d5IoimAO7H0RtJwOq-IZ3-8bAFdv7T7ULJWrAzzgygkFpbTbmjX7oPaONvuG8615Gw2N5dj5aUxaRn2zb-y9EQTr-s/s1600/20544009_10154917331030369_2514558615061868997_o.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;640&quot; data-original-width=&quot;1524&quot; height=&quot;268&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNzCV9qxHayL-nF10AJJQceWyf1GexJYO1fykGGg4FAFPRtTuS2d5IoimAO7H0RtJwOq-IZ3-8bAFdv7T7ULJWrAzzgygkFpbTbmjX7oPaONvuG8615Gw2N5dj5aUxaRn2zb-y9EQTr-s/s640/20544009_10154917331030369_2514558615061868997_o.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;
Pixar also has an experimental department that tries new things, not for theatrical consumption, called Spark. This year the group, only a handful of part time artists and TDs with no Pixar pipeline set up, put together a beautiful little short, called Smash and Grab. There is a talk about it on Wednesday at 9am. Hope you can make it!&lt;/div&gt;
&lt;div&gt;
&lt;a data-ft=&quot;{&amp;quot;tn&amp;quot;:&amp;quot;-U&amp;quot;}&quot; href=&quot;http://s2017.siggraph.org/talks/sessions/alt-workflows&quot; rel=&quot;nofollow noopener&quot; target=&quot;_blank&quot;&gt;http://s2017.siggraph.org/talks/sessions/alt-workflows&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3 style=&quot;text-align: justify;&quot;&gt;
and much more...&lt;/h3&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Trying to cover everything noteworthy that happened this year is well beyond the scope of this post. But I did see some exciting news about Epic&#39;s new DataSmith Alembic-based toolkit, as well as Allegorithmic&#39;s impressive new Substance/Unreal integration.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Faster workflows, standard exchange and simpler controls seem to be the focus of this year. The near future of shading is getting brighter, and that makes me smile.&lt;/div&gt;
&lt;div class=&quot;blogger-post-footer&quot;&gt;----------------------------
Extracted from blog:
http://dakrunch.blogspot.com&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dakrunch.blogspot.com/feeds/8865511882415029970/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3558910597161148058/8865511882415029970' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3558910597161148058/posts/default/8865511882415029970'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3558910597161148058/posts/default/8865511882415029970'/><link rel='alternate' type='text/html' href='http://dakrunch.blogspot.com/2017/08/thoughts-on-siggraph-2017.html' title='Shading at Siggraph 2017'/><author><name>Davide Pesare</name><uri>http://www.blogger.com/profile/02004541122380635353</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjVv5yK9dQzgi_Rhw_L1Z6aP-l0EFX4ZaX5_wbrqUJT2BsbFur0p9Jcvld2D4rAn3GnGtIA8lk_CzZwSpc14QhSnopKGppH-MckEeif19h9u_3ephxnOVQ2gy8ysiOx6tj6xeb640KSTI0qTYsz-CW4_zVLJp5xD4bWYHiOohFCo9SmDU/s220/1743541473925.jpeg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgbht377KkVeICZdY9Dtp5sXUrHB-ObF5g1I-WvQyaXXDNOWAUyDNt0gxjnDGLiaT6oFeXEfmn22E9nHBmfvTyE4E5dmLKjhaMeHQYT6I6z632zhyphenhyphen8c0AcNAhnoMB4iypBnliM2dNb4o8U/s72-c/siggraph-2017-badge.png" height="72" width="72"/><thr:total>0</thr:total><georss:featurename>Los Angeles, CA, USA</georss:featurename><georss:point>34.0522342 -118.2436849</georss:point><georss:box>33.2099567 -119.5345784 34.8945117 -116.95279140000001</georss:box></entry><entry><id>tag:blogger.com,1999:blog-3558910597161148058.post-2625978250329159223</id><published>2017-05-29T12:59:00.000-07:00</published><updated>2017-09-30T16:33:03.797-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Cg"/><category scheme="http://www.blogger.com/atom/ns#" term="Pixar"/><title type='text'>Cars 3 and deferred texturing</title><content type='html'>&lt;div style=&quot;text-align: justify;&quot;&gt;
I haven&#39;s spoken much about Cars 3 in the last few years. This time I will, because I think the film deserves attention, as it looks incredible, and it forced us to solve a lot of interesting problems. One of them is deferred texturing.&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhggx81aVLpos3iSSITxRH8jsB9WyUYASFT5N67cGqSL8V4F-30XpWShW5lcX5vra0xyiPiuouEOOcCaHIUQ9-hAFKCrTtf2zZvMSo2GL8T02jMvkb-Y-3H-9TARdlJboP-NudfZBAvVhw/s1600/Cars358af3471e40b8-1024x429.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;429&quot; data-original-width=&quot;1024&quot; height=&quot;267&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhggx81aVLpos3iSSITxRH8jsB9WyUYASFT5N67cGqSL8V4F-30XpWShW5lcX5vra0xyiPiuouEOOcCaHIUQ9-hAFKCrTtf2zZvMSo2GL8T02jMvkb-Y-3H-9TARdlJboP-NudfZBAvVhw/s640/Cars358af3471e40b8-1024x429.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;
&lt;br /&gt;
I am going to go back to the initial issue in Finding Dory, the show when we switched renderer to &lt;a href=&quot;https://renderman.pixar.com/view/latest-tech&quot; target=&quot;_blank&quot;&gt;RIS&lt;/a&gt;. That gave us fantastic new potential for render quality, but brought with it the end of our classic Renderman Shading Language, along with all our traditional shading tools, including one, we called &lt;b&gt;Picasso&lt;/b&gt;.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Using math figured out and later patented by my friend David Ryu in 2008, Picasso allowed a user in &lt;a href=&quot;https://www.autodesk.com/products/maya/overview&quot; target=&quot;_blank&quot;&gt;Maya&lt;/a&gt; to build a set of poses, e.g. T-pose, exploded prims, or open mouth, so hard-to-reach parts could be painted with ease. Each pose could be rigid, as in transform matrices would be the only data stored per pose, or deformable, so an additional 3d primvar was stored with each point.&lt;br /&gt;
Each pose had an associated rig of cameras, and each camera (usually orthographic) was able to project paint on a subset of objects, on one or several &quot;channels&quot;, labeled arbitrarily or using specific standards, such as Albedo, ShinyDull, SmallDisp, etc...&amp;nbsp; Our shading networks would have strategically placed special &quot;receiver&quot; nodes with matching channel names.&lt;br /&gt;
The order of cameras would determine the composition order of the paint, that would alpha compose like in photoshop layers (in &quot;normal&quot; mode). The math is pretty specific about how much of each layer to see based on camera depth,&amp;nbsp; clipping planes, incident normals and a number of parameters. At render time, when the objects deformed, the paint and its layering was calculated using reference points and normals, so the paint wouldn&#39;t &quot;swim&quot;.&lt;br /&gt;
The matching of receiver nodes with projection paint was resolved dynamically at render time.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now, was this the most efficient possible way to texture an asset? Probably not. Certainly not at render time. But in the Reyes algorithm, the relative weight of this texturing was pretty minor, and it allowed to do complex texturing for assets that are traditionally hard to UV. Perhaps also because of Picasso, Pixar has always been resistant to adopt UVs.&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgi6Eur1wA929_XDSihwsHXrIFlF8id3Mg_TPHK8jFqxeKGNAiaGTmPfsAR_g0NeT6IF9BFurS8KD4-eKJpCU4F6dmy5FGGmvHmz9mdHCGQqdebcToAyX3zORwrUU2PCEXe2gWjPAL_d0Y/s1600/picasso-femme-en-pleurs.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em; text-align: justify;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;400&quot; data-original-width=&quot;316&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgi6Eur1wA929_XDSihwsHXrIFlF8id3Mg_TPHK8jFqxeKGNAiaGTmPfsAR_g0NeT6IF9BFurS8KD4-eKJpCU4F6dmy5FGGmvHmz9mdHCGQqdebcToAyX3zORwrUU2PCEXe2gWjPAL_d0Y/s320/picasso-femme-en-pleurs.jpg&quot; width=&quot;252&quot; /&gt;&lt;/a&gt;&lt;i&gt;The origin of the name is no longer clear, but I think that Picasso should draw its name from the Spanish painter who, for some time in his life, adopted cubist techniques, where paint on the surface appeared to be coming from projections other than the point of view itself.&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
After being built on hierarchical Renderman attributes, the later incarnations of Picasso I wrote on Monsters University, progressively relied more on dynamically generated, or code-gen&#39;ed, RSL co-shaders that looked at the camera setups and layered the paint appropriately.&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Why did we have to lose all this? It&#39;s not just about the disappearance of RSL. In Pixar&#39;s RIS, we are running shaders two orders of magnitude more times for a final render than we did for Reyes. The whole concept of co-shaders (hierarchically bound objects with an API that could be fetched dyamically by name) went away to help improve the new Renderman&#39;s performance. While those changes were needed, they had serious consequences on our traditional workflows: if we want to apply a single layer of paint on top of 100 object with 30 different bound shaders, we would have to go into each one of those objects and &lt;i&gt;splice &lt;/i&gt;some texture and projection nodes into their shading networks, and hope we don&#39;t have to change our minds or make mistakes, or else do it all again.&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Fortunately, we didn&#39;t only switch to RIS, we also switched to &lt;a href=&quot;https://www.foundry.com/products/katana&quot; target=&quot;_blank&quot;&gt;Foundry&#39;s Katana&lt;/a&gt;, away from our traditional, declarative lighting suite called Lumos. In Katana, deferred but inspectable proceduralism is a solved problem, and at the core of the tool. In our shading networks we started adding nodes, named &quot;Receivers&quot;, which only have a channel name (to tune in with a paint broadcaster) and a default RGBA, for when no paint is found at all, or alpha holes are found in the paint.&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjyLanbrVwlOQHc-dFqpxU3ehXcFZpVrPvvEH-oZPHq_FdyvCNtMpqkmEGcc9TBnQtoO3nfGIMcNs8IKSa3HHyh4go6Hi4CPOz91xEikvbKxDDTtRGLU2X6L4Y11sGsh2w97p74BJzydyc/s1600/d92e8fda6b0d9dc09d243d04f3ac2311.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;650&quot; data-original-width=&quot;571&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjyLanbrVwlOQHc-dFqpxU3ehXcFZpVrPvvEH-oZPHq_FdyvCNtMpqkmEGcc9TBnQtoO3nfGIMcNs8IKSa3HHyh4go6Hi4CPOz91xEikvbKxDDTtRGLU2X6L4Y11sGsh2w97p74BJzydyc/s320/d92e8fda6b0d9dc09d243d04f3ac2311.jpg&quot; width=&quot;280&quot; /&gt;&lt;/a&gt;I wrote a Katana &quot;SuperTool&quot; that looks somewhat analogous to the built-in &quot;Gaffer&quot;. That is no accident, as we had modified Katana&#39;s Gaffer quite heavily for our &lt;a href=&quot;http://www.imdb.com/title/tt0457802/&quot; target=&quot;_blank&quot;&gt;Blue Umbrella&lt;/a&gt; short (by Saschka Unseld), and had gained a lot of insight on its workings. Instead of creating lights, this supertool creates cameras and settings, and based on that set up, at render (or rib generation) time, generates and wires in the appropriate textures, projections, and blending nodes, purely based on the channel name and their composition order and style.&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
The nice thing about this is that the authored shaders didn&#39;t have to be setup knowing what paint would be available in the future, that part would be figured out later, even on a shot per shot basis. Instead of a texture node, we just put in a Receiver with channel &quot;GraphicMask&quot;, or &quot;MetalColor&quot;, or &quot;Displacement&quot;. This can be extra important for Cars movies, because we use a ton of graphics, which are &lt;i&gt;often finalized and approved long after the assets are shaded and painted&lt;/i&gt;. So there, deferred projections solved.&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
In fact, why even stop at projection painting? Why not make it be able to read paint no matter where it came from? That&#39;s why we picked a multi-talented scientist and artist to name this new tool: &lt;b&gt;Leonardo&lt;/b&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Since the introduction of Foundry&#39;s&amp;nbsp;&lt;a href=&quot;https://www.foundry.com/products/mari&quot; target=&quot;_blank&quot;&gt;Mari&lt;/a&gt; in our pipeline on Monsters University, UDIM-based painting has taken a growing role in our workflow, especially in characters. This is notably later than a large part of the VFX community, and that is in part a consequence of how much Pixar cherishes the ability to make creative choices live, late in the pipeline, while uv painting sort of bakes it in. Leonardo allows us to switch techniques at any point, to cater for that need. So we added support for UVs, UDIMs textures. We extended it with the support to Disney&#39;s uvless texturing, called &lt;a href=&quot;http://ptex.us/&quot; target=&quot;_blank&quot;&gt;Ptex&lt;/a&gt;, which came in handy with complex meshes that are typically difficult to correctly UV.&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
We didn&#39;t end up stopping there. By the time the show was wrapping, we were able to read point clouds, primitive variables (or privars), &lt;a href=&quot;http://www.openvdb.org/&quot; target=&quot;_blank&quot;&gt;openVDB &lt;/a&gt;and even lights and interactive space-shapers in Katana, which we call Rods. That came in very useful when we had to drive complex, shared paint such as animated streaks of dirt and damage, shared between characters and environments. Eventually, we created a &quot;Broadcaster&quot; setup that allowed deferred splicing of arbitrary networks with matching channel names, for those special cases that were not covered by our built-in Leonardo layers.&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjkyBD5fljOk0Ktl6sILFD2C9oUU8gxpbCkMuSxk0kB_v2_eXPL4crKhYNi4g6sLc5Vlb7YCg-RX2TBznLP3UMBni5vLfB2LhteNriOURK8pyMzYhTUKHgjxq5-rElS60YAKJc4D6_Bjdg/s1600/cars3-demolitionderby-lightningstuck1.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;668&quot; data-original-width=&quot;1600&quot; height=&quot;266&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjkyBD5fljOk0Ktl6sILFD2C9oUU8gxpbCkMuSxk0kB_v2_eXPL4crKhYNi4g6sLc5Vlb7YCg-RX2TBznLP3UMBni5vLfB2LhteNriOURK8pyMzYhTUKHgjxq5-rElS60YAKJc4D6_Bjdg/s640/cars3-demolitionderby-lightningstuck1.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;I hope you get to see Cars 3. A lot of hard work and love went into it, and what came out is a surprisingly involving emotional piece, as well as a real eye candy.&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;blogger-post-footer&quot;&gt;----------------------------
Extracted from blog:
http://dakrunch.blogspot.com&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dakrunch.blogspot.com/feeds/2625978250329159223/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3558910597161148058/2625978250329159223' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3558910597161148058/posts/default/2625978250329159223'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3558910597161148058/posts/default/2625978250329159223'/><link rel='alternate' type='text/html' href='http://dakrunch.blogspot.com/2017/05/cars-3-and-deferred-texturing.html' title='Cars 3 and deferred texturing'/><author><name>Davide Pesare</name><uri>http://www.blogger.com/profile/02004541122380635353</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjVv5yK9dQzgi_Rhw_L1Z6aP-l0EFX4ZaX5_wbrqUJT2BsbFur0p9Jcvld2D4rAn3GnGtIA8lk_CzZwSpc14QhSnopKGppH-MckEeif19h9u_3ephxnOVQ2gy8ysiOx6tj6xeb640KSTI0qTYsz-CW4_zVLJp5xD4bWYHiOohFCo9SmDU/s220/1743541473925.jpeg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhggx81aVLpos3iSSITxRH8jsB9WyUYASFT5N67cGqSL8V4F-30XpWShW5lcX5vra0xyiPiuouEOOcCaHIUQ9-hAFKCrTtf2zZvMSo2GL8T02jMvkb-Y-3H-9TARdlJboP-NudfZBAvVhw/s72-c/Cars358af3471e40b8-1024x429.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3558910597161148058.post-4079047955781437411</id><published>2017-03-15T22:45:00.000-07:00</published><updated>2017-03-15T23:07:46.339-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Cg"/><category scheme="http://www.blogger.com/atom/ns#" term="Pixar"/><title type='text'>Coco and the Flow</title><content type='html'>&lt;div style=&quot;text-align: justify;&quot;&gt;
So what exactly have I been doing Coco? Not much I can specifically point at. I mean, our work is everywhere. That&#39;s the thing about working in Tools: we enable others to do amazing work, and that is incredibly rewarding.&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_qFfHlKloQ3LX_0LJ7Gq1u_JLk2BvAY-wf_S-Zxc01R67j_R5GywsNDoRt7bb4L40CAXKfqlAIZllGaKDEpAm7ie6UtwV88QC71SRxIBqDFn2iTH9MibueiKZANFk8mpUH51DAPOL2k4/s1600/NEbwS7U83EFPek_1_b.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;336&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_qFfHlKloQ3LX_0LJ7Gq1u_JLk2BvAY-wf_S-Zxc01R67j_R5GywsNDoRt7bb4L40CAXKfqlAIZllGaKDEpAm7ie6UtwV88QC71SRxIBqDFn2iTH9MibueiKZANFk8mpUH51DAPOL2k4/s640/NEbwS7U83EFPek_1_b.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Among the other things, my fantastic team and I have embarked on a mission to make shading fun again, working really hard on a shading tool, which we now imaginatively call Flow.&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj1y9RBfCPAUno1sysp8gkf_8jD4TEJZFKioy4k3lL4x440tNQ-11qStouyMbVXn4rV9aaz4yckEIWwbcdxTkyQQUP7_18zc8w96kAS1zrbPfeACaveBDMU8aleZYwqFxjM6CNvWQZ6fWQ/s1600/Cars3-p1-720x1066.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj1y9RBfCPAUno1sysp8gkf_8jD4TEJZFKioy4k3lL4x440tNQ-11qStouyMbVXn4rV9aaz4yckEIWwbcdxTkyQQUP7_18zc8w96kAS1zrbPfeACaveBDMU8aleZYwqFxjM6CNvWQZ6fWQ/s320/Cars3-p1-720x1066.jpg&quot; width=&quot;216&quot; /&gt;&lt;/a&gt;Last year at Siggraph, Pixar was hosted at the NVidia booth, and Danny Nahmias and I gave a &lt;a href=&quot;http://on-demand.gputechconf.com/siggraph/2016/video/sig1628-david-pesare-jean-daniel-nahmias-look-development-in-real-time.mp4&quot;&gt;preview&lt;/a&gt;&amp;nbsp;of what was coming. Check it out! Other videos at the booth are hosted&amp;nbsp;&lt;a href=&quot;http://www.nvidia.com/object/siggraph2016.html&quot;&gt;here&lt;/a&gt;. We also presented it again at Pixar&#39;s Renderman Technology Fair.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
When we made Finding Dory and Cars 3, we pushed Katana for Shading as much as we could, given time and resources. The challenge was great, because we really started from scratch: we switched to the new Renderman RIS renderer, losing with it our well seasoned Renderman Shading Language and our existing tools. The results were great too, because we were able to create new workflows that were impossible before.&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Not all was perfect though. With the risk of oversimplifying things, the iteration of look development is often as simple as bind a shader, move a slider, see the result, and keep tweaking until it looks good. With our software, hard things became possible, but these simple things took a long time. In an effort to address this, the Coco environment artists and Tools teamed up to build something different.&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Flow puts together some of our best technologies. It uses a real time GPU viewport, that is a full path tracer developed at Pixar, built on NVidia&#39;s Optix framework. The application framework is using parts of our very own Presto animation system. Our shaders are kept in sync with the Renderman ones via a OSL to RTP (cuda) translator. Kees - you might know him for being the author of ShaderFX - built a shading specific node graph that enables some of the coolest workflows. We have a cross platform media browser for finding and publishing textures and materials. And last but not least, Flow is the first tool to load and save USD (including USD Shading) as a native format.&lt;br /&gt;
&lt;br /&gt;
There are a lot of people to credit for this work. But the biggest shout outs go to Peter, Brandon and Florian, who fearlessly carried this project so far.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;
Would you like to see it? We&#39;ll be presenting it again this year at Siggraph, probably both with NVidia and RenderMan. Once again, stay tuned!&lt;/div&gt;
&lt;div class=&quot;blogger-post-footer&quot;&gt;----------------------------
Extracted from blog:
http://dakrunch.blogspot.com&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dakrunch.blogspot.com/feeds/4079047955781437411/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3558910597161148058/4079047955781437411' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3558910597161148058/posts/default/4079047955781437411'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3558910597161148058/posts/default/4079047955781437411'/><link rel='alternate' type='text/html' href='http://dakrunch.blogspot.com/2017/03/coco-and-flow_15.html' title='Coco and the Flow'/><author><name>Davide Pesare</name><uri>http://www.blogger.com/profile/02004541122380635353</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjVv5yK9dQzgi_Rhw_L1Z6aP-l0EFX4ZaX5_wbrqUJT2BsbFur0p9Jcvld2D4rAn3GnGtIA8lk_CzZwSpc14QhSnopKGppH-MckEeif19h9u_3ephxnOVQ2gy8ysiOx6tj6xeb640KSTI0qTYsz-CW4_zVLJp5xD4bWYHiOohFCo9SmDU/s220/1743541473925.jpeg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_qFfHlKloQ3LX_0LJ7Gq1u_JLk2BvAY-wf_S-Zxc01R67j_R5GywsNDoRt7bb4L40CAXKfqlAIZllGaKDEpAm7ie6UtwV88QC71SRxIBqDFn2iTH9MibueiKZANFk8mpUH51DAPOL2k4/s72-c/NEbwS7U83EFPek_1_b.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3558910597161148058.post-9157540451787848531</id><published>2017-03-15T22:04:00.002-07:00</published><updated>2017-03-15T22:08:07.376-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Cg"/><category scheme="http://www.blogger.com/atom/ns#" term="Pixar"/><title type='text'>Coco is coming</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;
Wonder what I have been busy on all this time? Given my absence, you could say I&#39;m back from the dead, after being head down on a movie about, well, the Day of the Dead.&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;
Remember Disney tried to trademark &quot;The Day of the Dead&quot; as a movie title? That didn&#39;t go too well. Anyways, the film was eventually renamed to Coco, and the trailers are out! Here is one, still gives me shivers.&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;iframe allowfullscreen=&quot;&quot; class=&quot;YOUTUBE-iframe-video&quot; data-thumbnail-src=&quot;https://i.ytimg.com/vi/zNCz4mQzfEI/0.jpg&quot; frameborder=&quot;0&quot; height=&quot;400&quot; src=&quot;https://www.youtube.com/embed/zNCz4mQzfEI?feature=player_embedded&quot; width=&quot;640&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;----------------------------
Extracted from blog:
http://dakrunch.blogspot.com&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dakrunch.blogspot.com/feeds/9157540451787848531/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3558910597161148058/9157540451787848531' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3558910597161148058/posts/default/9157540451787848531'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3558910597161148058/posts/default/9157540451787848531'/><link rel='alternate' type='text/html' href='http://dakrunch.blogspot.com/2017/03/coco-and-flow.html' title='Coco is coming'/><author><name>Davide Pesare</name><uri>http://www.blogger.com/profile/02004541122380635353</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjVv5yK9dQzgi_Rhw_L1Z6aP-l0EFX4ZaX5_wbrqUJT2BsbFur0p9Jcvld2D4rAn3GnGtIA8lk_CzZwSpc14QhSnopKGppH-MckEeif19h9u_3ephxnOVQ2gy8ysiOx6tj6xeb640KSTI0qTYsz-CW4_zVLJp5xD4bWYHiOohFCo9SmDU/s220/1743541473925.jpeg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img.youtube.com/vi/zNCz4mQzfEI/default.jpg" height="72" width="72"/><thr:total>0</thr:total><georss:featurename>Emeryville, CA, USA</georss:featurename><georss:point>37.831316 -122.28524729999998</georss:point><georss:box>37.806236 -122.32558779999998 37.856396000000004 -122.24490679999998</georss:box></entry><entry><id>tag:blogger.com,1999:blog-3558910597161148058.post-5351450340429735096</id><published>2015-09-23T16:40:00.000-07:00</published><updated>2017-05-29T13:28:57.596-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Cg"/><category scheme="http://www.blogger.com/atom/ns#" term="Pixar"/><category scheme="http://www.blogger.com/atom/ns#" term="Travel"/><title type='text'>Eighteen years later</title><content type='html'>&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjA9Q_Uaxsq43hQ_ymkvFxsZj2HdfyG_WLd2knKVkaMp_5-RYxwnzvAd4_6Dlg7rvkh4lqq89GziwEAM8we46lUD4LYCQDDkfT4EJocUoVRZueH_hg-hex6A0iRlmn5cCcKHF4UtsEzNn8/s1600/BFX-logo1.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;54&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjA9Q_Uaxsq43hQ_ymkvFxsZj2HdfyG_WLd2knKVkaMp_5-RYxwnzvAd4_6Dlg7rvkh4lqq89GziwEAM8we46lUD4LYCQDDkfT4EJocUoVRZueH_hg-hex6A0iRlmn5cCcKHF4UtsEzNn8/s320/BFX-logo1.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
My very first trip overseas by myself was a student exchange program, in a cute town on the English Channel, called Bournemouth.&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjggyKtKueDFqalo_bfDjAA0cN7ggYfzUYEp2dCrdmte-FBsPwTFdEerW8lb1IBgJrX5Zvi82FzBrWHJWvjQDkNAwgZ7AYUm-4EW0pbFL6AIJn2Z2SiNZsvbfJBbIlq3u2Ga9Z58B2crF4/s1600/IMG_4553.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;163&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjggyKtKueDFqalo_bfDjAA0cN7ggYfzUYEp2dCrdmte-FBsPwTFdEerW8lb1IBgJrX5Zvi82FzBrWHJWvjQDkNAwgZ7AYUm-4EW0pbFL6AIJn2Z2SiNZsvbfJBbIlq3u2Ga9Z58B2crF4/s200/IMG_4553.jpg&quot; width=&quot;200&quot; /&gt;&lt;/a&gt;I have fond memories of that place. Many first times. Other than the obvious first exposure to real spoken English language, I got to learn a lot about the world just by seeing something different than what I was used to. It was my first time clubbing, my first time experiencing a cold beach, a sunrise at 5am, and my first time trying several interesting (for an Italian kid) foods and beverages.&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Novel delicacies that were frankly hits and misses with me included fruit-flavored chocolate, pasta with ketchup, lemon curd, vinegar fries, honey glazed salted popcorns on the pier, but also hard cider, and British ales. It was most of all my first time making international, longtime friends. I would bet the experience had a lot of repercussions in my life although, not having a time machine handy, I will never know.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
So here I am, eighteen years later, on my way back to that cute English town. And for work, none the less. My old friend and ex colleague Sofronis invited me to join, so I&#39;ll be talking about what&#39;s new at Pixar. I&#39;ll be part of a panel and introduce our Universal Scene Description at BFXPro, and talk about our experience changing from a Reyes Renderman to a Path Tracer Renderman, at BFXCore next week.&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
For those who may not be familiar with it, &lt;a href=&quot;http://www.bfxfestival.com/about-bfx/&quot;&gt;BFX&lt;/a&gt; is a fairly new conference and festival. It takes place in Bournemouth, UK and, while hosted by the Arts University of Bournemouth, it has many industry partners such as Dneg, Framestore, MPC, The Mill, Cinesite, Creative Skillset and BAFTA.&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
I will also be hanging out in London a day or two. If you&#39;re around, come say hi!&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;blogger-post-footer&quot;&gt;----------------------------
Extracted from blog:
http://dakrunch.blogspot.com&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dakrunch.blogspot.com/feeds/5351450340429735096/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3558910597161148058/5351450340429735096' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3558910597161148058/posts/default/5351450340429735096'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3558910597161148058/posts/default/5351450340429735096'/><link rel='alternate' type='text/html' href='http://dakrunch.blogspot.com/2015/09/eighteen-years-later.html' title='Eighteen years later'/><author><name>Davide Pesare</name><uri>http://www.blogger.com/profile/02004541122380635353</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjVv5yK9dQzgi_Rhw_L1Z6aP-l0EFX4ZaX5_wbrqUJT2BsbFur0p9Jcvld2D4rAn3GnGtIA8lk_CzZwSpc14QhSnopKGppH-MckEeif19h9u_3ephxnOVQ2gy8ysiOx6tj6xeb640KSTI0qTYsz-CW4_zVLJp5xD4bWYHiOohFCo9SmDU/s220/1743541473925.jpeg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjA9Q_Uaxsq43hQ_ymkvFxsZj2HdfyG_WLd2knKVkaMp_5-RYxwnzvAd4_6Dlg7rvkh4lqq89GziwEAM8we46lUD4LYCQDDkfT4EJocUoVRZueH_hg-hex6A0iRlmn5cCcKHF4UtsEzNn8/s72-c/BFX-logo1.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3558910597161148058.post-348666519792435176</id><published>2015-08-31T20:09:00.000-07:00</published><updated>2015-08-31T20:23:03.233-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Cg"/><category scheme="http://www.blogger.com/atom/ns#" term="Pixar"/><title type='text'>A Scene Description for All</title><content type='html'>&lt;div style=&quot;text-align: justify;&quot;&gt;
I can&#39;t say I went to Siggraph this year, although I was physically there for one evening.&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
I went to the Renderman event, which this year was extra exciting, not just for the crowd-drawing yearly teapot giveaway, but because we turned it into a full on science fair. Besides the presentations, which this year were including production updates on Finding Dory, we had booths showing some of the cool work we have done in the last year.&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimUdMMkImVKopCKR3Kyg-T4rJrsOcPeBXCnOziE1LheOKx9eYjoZL_WdgjS1tlbha5y8Mayp41bnYG7ORqaTQxbnyRgmqek9RIRQ_9kzMd6zYzrhtVNI1G5xu0YUNFcyuohsRCcnEseD0/s1600/IMG_5757.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;300&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimUdMMkImVKopCKR3Kyg-T4rJrsOcPeBXCnOziE1LheOKx9eYjoZL_WdgjS1tlbha5y8Mayp41bnYG7ORqaTQxbnyRgmqek9RIRQ_9kzMd6zYzrhtVNI1G5xu0YUNFcyuohsRCcnEseD0/s400/IMG_5757.jpg&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;
I got to help man one of the booths, mainly to show off some of the integration work we did on Katana and Rfk (Renderman for Katana), so shading would be possible on the - mostly - lighting platform. Other booths included our Real Time Preview, an Optix based renderer that can be used for high quality previews of your shading and lighting. We had Presto, our in house Rigging-Animation-Layout-Sim-You Name It tool. We also showed Hydra, our GL renderer used across multiple platforms.&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;
&lt;a href=&quot;http://graphics.pixar.com/usd/&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgdwdWzRBzCFTf4m37rnpVH8y14NcGskzdmaJg1DB8OfurVY3LJFEieyVft0PED9FnPk3dgpI5z-bHgpitoimVKaNzmp0jKMcMreYeH2TqNQ5uprmv7R9lgy4p9u8LOZvWi4Tasb9ys1_A/s1600/USDLogoHeader.png&quot; /&gt;&lt;/a&gt;Among the other things however, we &lt;a href=&quot;http://graphics.pixar.com/usd/docs/Open+Source+Announcement.html&quot; target=&quot;_blank&quot;&gt;announced&lt;/a&gt; the open sourcing of our new scene description format: USD - or Universal Scene Description. I am very proud of it and I hope it becomes a new standard in the data exchange for Visual Effects and Animation.&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;
So besides it rather grandiose name, what does it offer that is not already out there?&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;
First off, Usd is not just an optimized pose cache format: if that&#39;s all you need, Alembic is plenty good enough - by the way, Usd can load Alembic files. Usd attempts rather to solve more complex pipeline issues. At Pixar at one point we had a dozen files and respective converters we had to keep up to date. That made us reconsider whether we should simplify the pipeline and adopt one exchange format instead.&lt;/div&gt;
&lt;div class=&quot;&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;
Our pipeline is rather complex, many departments work on the same data at the same time, so we had a system of hooks and cues, and in general files that expressed opinions on the same objects, even the same properties, and those opinions had to be layered correctly so that the strongest one would be available to use for rendering.&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;
Hence the first main feature of USD: &lt;b&gt;Composition&lt;/b&gt;. Take a character. Then add some rigging information, then load it into a group, where you can add garments and hair. Add some shading. Then load that group into another context, like a shot. On the shot you have layout, then animation, then lighting and FX. But the shot also loads another version of the same character as well as hundreds of thousands of props and architecture parts. Each one of those elements are Usd files, that reference each other and override or enrich the previous layer&#39;s results. Better yet, you can load the Usd of the whole shot, and express overrides that will be saved directly onto a low level, like the model itself.&lt;/div&gt;
&lt;div class=&quot;&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;
But what if the character is a template for, say 10 different characters, each of them with 15 different sets of characteristics? Usd can address that with a built in mechanism, called &lt;b&gt;Variant Sets&lt;/b&gt;. We use them for many things, starting from modeling variants (which can be switched as late as shot lighting), shading variants, dressing variants, etc... Any set of overrides can be encapsulated into a Variant Set, and given a name. Those can be switched at any time, which made our shading workflows a lot more flexible than, say straight Katana Look Files.&lt;/div&gt;
&lt;div class=&quot;&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;
There is a lot more to it, such as schema API&#39;s and viewers and editing tools, but hopefully, you get the idea. This has been a game changer for us, and we hope it will be for you too. Stay tuned for updates!&lt;/div&gt;
&lt;div class=&quot;blogger-post-footer&quot;&gt;----------------------------
Extracted from blog:
http://dakrunch.blogspot.com&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dakrunch.blogspot.com/feeds/348666519792435176/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3558910597161148058/348666519792435176' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3558910597161148058/posts/default/348666519792435176'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3558910597161148058/posts/default/348666519792435176'/><link rel='alternate' type='text/html' href='http://dakrunch.blogspot.com/2015/08/a-scene-description-for-all.html' title='A Scene Description for All'/><author><name>Davide Pesare</name><uri>http://www.blogger.com/profile/02004541122380635353</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjVv5yK9dQzgi_Rhw_L1Z6aP-l0EFX4ZaX5_wbrqUJT2BsbFur0p9Jcvld2D4rAn3GnGtIA8lk_CzZwSpc14QhSnopKGppH-MckEeif19h9u_3ephxnOVQ2gy8ysiOx6tj6xeb640KSTI0qTYsz-CW4_zVLJp5xD4bWYHiOohFCo9SmDU/s220/1743541473925.jpeg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimUdMMkImVKopCKR3Kyg-T4rJrsOcPeBXCnOziE1LheOKx9eYjoZL_WdgjS1tlbha5y8Mayp41bnYG7ORqaTQxbnyRgmqek9RIRQ_9kzMd6zYzrhtVNI1G5xu0YUNFcyuohsRCcnEseD0/s72-c/IMG_5757.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3558910597161148058.post-8001053655518515637</id><published>2015-07-21T21:30:00.000-07:00</published><updated>2015-07-21T23:11:09.050-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Cg"/><category scheme="http://www.blogger.com/atom/ns#" term="Pixar"/><title type='text'>The last Reyes project</title><content type='html'>&lt;div style=&quot;text-align: justify;&quot;&gt;
In my engineering position in Tools at Pixar, I am fortunate to get to work on pretty much all of Pixar theatrical projects. My department tends to start as early as four years from delivery, and we help along the way until one year or so to the release date. I was actually done with my work on The Good Dinosaur a long time ago and seeing the trailer almost caught me by surprise, a great one, as I hadn&#39;t seen recent imagery in months.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjcA5ZjqDCgF6E6pBTQ-WXYT873UrcULVOwelP2M4ceTzeMW6ATP9pGfIkADjvKYHErznKkw0qMtfeYO00s7L0kAj8XmXutKptK7kRFi9pGRKhB0GTWb7ByUA7PvAQ-I2PqcbV8JRaY484/s1600/maxresdefault.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;360&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjcA5ZjqDCgF6E6pBTQ-WXYT873UrcULVOwelP2M4ceTzeMW6ATP9pGfIkADjvKYHErznKkw0qMtfeYO00s7L0kAj8XmXutKptK7kRFi9pGRKhB0GTWb7ByUA7PvAQ-I2PqcbV8JRaY484/s640/maxresdefault.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
This show marks a special milestone at Pixar, though, for us who work on the technical aspects of our films. It is the last show we will release with our Reyes implementation of Renderman. It still uses a lot of the work we did on Monsters University, where we implemented a physically based engine using a hybrid raytracer on top of Renderman&#39;s Reyes. The quality of the environments in the huge world portrayed in The Good Dinosaur, however, raised the bar again and is a true achievement in itself.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Here is the latest trailer. I think it is a true beauty, and shows how far were able to push photorealism before taking a leap into the new renderer: &lt;a href=&quot;http://rendermansite.pixar.com/view/renderman&quot; target=&quot;_blank&quot;&gt;RIS&lt;/a&gt;, Renderman&#39;s path tracer.&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;iframe allowfullscreen=&quot;&quot; class=&quot;YOUTUBE-iframe-video&quot; data-thumbnail-src=&quot;https://i.ytimg.com/vi/O-RgquKVTPE/0.jpg&quot; frameborder=&quot;0&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/O-RgquKVTPE?feature=player_embedded&quot; width=&quot;560&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;br /&gt;
In the last couple of years, I had a chance to give some talks around the world about the differences between Reyes, Raytracing and Path Tracing, and how we use them, and have learned to appreciate their strengths and weaknesses. Now we are still hard at work with making the new renderer work well for our artists on a platform like Katana.&lt;br /&gt;
&lt;br /&gt;
So why did we change? I mean, other than the fact that most of the VFX world is working with path tracers by now - be it Manuka, Glimpse, Arnold or you name it.&lt;br /&gt;
&lt;br /&gt;
While the selling point for us was the quality of water renders - they tend to matter when making a sequel to Finding Nemo - the main appeal to many of us was the speed we can get feedback of complex illumination phenomenons. It was a bit later though that I started seeing the real difference in the quality of the renders: in the same render times we got so much more detail that my eyes hurt. While in Reyes we were shading 4 to 10 shading samples per pixels, we are now doing thousands. All the pain we went through in the transition was quite frankly worth it.&lt;br /&gt;
&lt;br /&gt;
The challenges I have seen in the new architecture is that we have lost our classic bag of tricks, and had to dive in with a fresh mind, but not so much time to do so. Things were weird and unintuitive. Bump (at least the way we formulate it) is now much more expensive than displacement. The cost of primvar is, comparatively, much higher. We lost a whole shading language: RSL, as well as some good old tools we were used to. More importantly, we lost the flexibility that dynamic networks of coshaders and lights provided us, and have to make up for it with a whole new toolset to connect bxdf&#39;s and patterns in complex ways.&lt;br /&gt;
&lt;br /&gt;
We are now ramping up the following two shows to use the new toolset, and it is just now starting to look more appealing than daunting. We&#39;re over the hump.&lt;/div&gt;
&lt;div class=&quot;blogger-post-footer&quot;&gt;----------------------------
Extracted from blog:
http://dakrunch.blogspot.com&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dakrunch.blogspot.com/feeds/8001053655518515637/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3558910597161148058/8001053655518515637' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3558910597161148058/posts/default/8001053655518515637'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3558910597161148058/posts/default/8001053655518515637'/><link rel='alternate' type='text/html' href='http://dakrunch.blogspot.com/2015/07/the-last-reyes-project.html' title='The last Reyes project'/><author><name>Davide Pesare</name><uri>http://www.blogger.com/profile/02004541122380635353</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjVv5yK9dQzgi_Rhw_L1Z6aP-l0EFX4ZaX5_wbrqUJT2BsbFur0p9Jcvld2D4rAn3GnGtIA8lk_CzZwSpc14QhSnopKGppH-MckEeif19h9u_3ephxnOVQ2gy8ysiOx6tj6xeb640KSTI0qTYsz-CW4_zVLJp5xD4bWYHiOohFCo9SmDU/s220/1743541473925.jpeg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjcA5ZjqDCgF6E6pBTQ-WXYT873UrcULVOwelP2M4ceTzeMW6ATP9pGfIkADjvKYHErznKkw0qMtfeYO00s7L0kAj8XmXutKptK7kRFi9pGRKhB0GTWb7ByUA7PvAQ-I2PqcbV8JRaY484/s72-c/maxresdefault.jpg" height="72" width="72"/><thr:total>0</thr:total><georss:featurename>Emeryville, CA, USA</georss:featurename><georss:point>37.831316 -122.28524729999998</georss:point><georss:box>37.806236 -122.32558779999998 37.856396000000004 -122.24490679999998</georss:box></entry><entry><id>tag:blogger.com,1999:blog-3558910597161148058.post-4617521664110370748</id><published>2015-06-02T09:33:00.002-07:00</published><updated>2015-06-02T09:34:57.562-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Cg"/><category scheme="http://www.blogger.com/atom/ns#" term="Pixar"/><title type='text'>Two in a year</title><content type='html'>For the first time in Pixar history, 2015 is the year we have two movies released. The next one is The Good Dinosaur. The exciting news is, we have the first official trailer out there. It&#39;s pretty darn exciting, so enjoy!&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7lBon9hFkXTmsToxdJryaXhr9ejsZZ4KQdz6CseHeRSUH4m572P10fZglXiB3TkCMo3MeHO6Ga9ynGBsYy-Ko53Io3RIsE7kHJ9WY2iZfyVrRtWaAX0ZZLirM-rSF8KkZWm5ZSIRsGTY/s1600/Arlo_spo.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;br /&gt;&lt;/a&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7lBon9hFkXTmsToxdJryaXhr9ejsZZ4KQdz6CseHeRSUH4m572P10fZglXiB3TkCMo3MeHO6Ga9ynGBsYy-Ko53Io3RIsE7kHJ9WY2iZfyVrRtWaAX0ZZLirM-rSF8KkZWm5ZSIRsGTY/s1600/Arlo_spo.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;br /&gt;&lt;/a&gt;&lt;iframe allowfullscreen=&quot;&quot; class=&quot;YOUTUBE-iframe-video&quot; data-thumbnail-src=&quot;https://i.ytimg.com/vi/0QlRSVKwFA0/0.jpg&quot; frameborder=&quot;0&quot; height=&quot;400&quot; src=&quot;https://www.youtube.com/embed/0QlRSVKwFA0?feature=player_embedded&quot; width=&quot;600&quot;&gt;&lt;/iframe&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7lBon9hFkXTmsToxdJryaXhr9ejsZZ4KQdz6CseHeRSUH4m572P10fZglXiB3TkCMo3MeHO6Ga9ynGBsYy-Ko53Io3RIsE7kHJ9WY2iZfyVrRtWaAX0ZZLirM-rSF8KkZWm5ZSIRsGTY/s1600/Arlo_spo.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7lBon9hFkXTmsToxdJryaXhr9ejsZZ4KQdz6CseHeRSUH4m572P10fZglXiB3TkCMo3MeHO6Ga9ynGBsYy-Ko53Io3RIsE7kHJ9WY2iZfyVrRtWaAX0ZZLirM-rSF8KkZWm5ZSIRsGTY/s1600/Arlo_spo.png&quot; /&gt;&lt;/a&gt;&lt;span style=&quot;text-align: justify;&quot;&gt;The film has been anticipated by many posters, such as this one. If you pay attention though, the main characters and the environments actually appear quite a bit different than the look Pixar decided to land with. On the technological side, I tested a lot of my work on on the older assets, and I feel a bit nostalgic, but the new characters are much more appealing.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;text-align: justify;&quot;&gt;The Good Dinosaur is slated for later this year, and we are in the final laps of this race. Cross fingers for us!&lt;/span&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;----------------------------
Extracted from blog:
http://dakrunch.blogspot.com&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dakrunch.blogspot.com/feeds/4617521664110370748/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3558910597161148058/4617521664110370748' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3558910597161148058/posts/default/4617521664110370748'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3558910597161148058/posts/default/4617521664110370748'/><link rel='alternate' type='text/html' href='http://dakrunch.blogspot.com/2015/06/two-in-year.html' title='Two in a year'/><author><name>Davide Pesare</name><uri>http://www.blogger.com/profile/02004541122380635353</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjVv5yK9dQzgi_Rhw_L1Z6aP-l0EFX4ZaX5_wbrqUJT2BsbFur0p9Jcvld2D4rAn3GnGtIA8lk_CzZwSpc14QhSnopKGppH-MckEeif19h9u_3ephxnOVQ2gy8ysiOx6tj6xeb640KSTI0qTYsz-CW4_zVLJp5xD4bWYHiOohFCo9SmDU/s220/1743541473925.jpeg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img.youtube.com/vi/0QlRSVKwFA0/default.jpg" height="72" width="72"/><thr:total>0</thr:total><georss:featurename>Pixar</georss:featurename><georss:point>37.831316 -122.28524729999998</georss:point><georss:box>37.806236 -122.32558779999998 37.856396000000004 -122.24490679999998</georss:box></entry></feed>