Working in larger Katana scripts I always find it a bit cumbersome to switch between Nodes that I’d like to view and/or launch a Render from. I recently started getting my hands dirty with PySide/PyQt and I wanted to put it to use. My goal was to build a simple dynamic UI that would allow the user to quickly switch the view flag of a selection of Nodes in Katana and trigger a render.
Nuke makes it really easy to access metadata from incoming images. You can easily access information from pictures that you shot with your camera or access render stats from CG renderings. This can prove to be really useful in a production environment where you want to make sure that your frames are rendering in a reasonable time without consuming too much memory. This example shows how to access and display that information in Nuke with renderings from Arnold.
The latest addition on my journey to OSL is a WindowBox (sometimes also called Interior Mapping or Parallax Mapping) shader.
I remember one of our teachers in university telling us about how they rendered all the interiors of the buildings in Spiderman with just a simple plane with a shader attached to it that simulates the room interior with proper parallax. Since then this has always stuck in my mind and I saw it being used in some studios I worked at whenever there was a big city to be rendered. I finally found the time (.. too much time :) ) to do this sort of shader myself in OSL!
I had another go at playing around with OSL. This time I tried making a Tri Planar (or sometimes also called Round Cube or Blended Box Mapping) shader. It was an interesting thing to try out as it involves a bit more work. What I came up with however merely serves as an experimental try-out rather than being useful for production. It has a few common features that you would most likely find in modern rendering or texturing packages.
Recently our VFX and Animation Supervisor gave an interview about our work at Trixter on Guardians of the Galaxy 2. It’s been such an outstanding project for me that I feel the urge to share!
Not only has the work been great, but also the team and the general flow of things! I can’t express how happy I am to have worked with such a great bunch of people! Special thanks to the management who allowed me to fool around on a larger scale on this project and the extraordinary Lighting & LookDev guys that coped with me when I was drowning in Excel sheets :-)
Have a look at the interview yourself (if you don’t like reading there are lots of pretty pictures, too!): INTERVIEW LINK
//EDIT: Now there’s also a really cool VFX and Animation Reel with some fun stuff! REEL LINK
Constraining things in Katana works well, but can seem somewhat limited if you are coming from a full-featured 3D application. One of the things that can potentially give you headaches is a missing option for “maintaining offset” when you are constraining one object or a lightrig to something else. While this is generally not an issue when you are doing LookDev (as your assets most likely have zero’d out transforms) it can be a bit frustrating to not have that option when you are working on shots, so here’s my hacky way of maintaining constraint-offsets.
I received a question the other day that was asking how I would approach painting out lights from LatLong HDRI’s that are near the bottom or the top of the image. Anything near those poles will usually be heavily distorted and are a pain to remove if you try to paint on the original map. However there’s quite an easy way to remove them in Nuke and at the same time get the lights to a nice and rectangular format for using them on area lights.
I have recently started getting into Shader Writing in OSL (actually rather Pattern Writing just to not get frustrated too quickly :-) ). To start things off I wrote a simple Pattern that lets you create a life 3d mask in your shading network that can be used to alter different shading effects in very particular areas of an object without the need to paint texture masks. On top of that being OSL it should work in any renderer that supports it (e.g. PRMan/RIS, Cycles in Blender, VRay, etc).
Earlier this year I was lucky enough to get my hands on a Ricoh Theta S, which I was playing around with to quickly capture 360° environments. Initially I didn’t expect much but I was more than pleasantly surprised with the quality that I could achieve in such a short amount of time and realized it’s potential usability for image based lighting. Shooting up to 10 bracketed images in less than 2 minutes and automatic stitching is hard to beat at that price-tag.
One of the worst things to sample for any brute-force ray tracer are specular highlights / reflections with a low roughness in motion blur. Even worse so on fine displacements or bump. And EVEN more worse with lots of small highlights. When all of these things come together sampling these highlights in motionblur is going to become really hard and with conventional methods you will end up having to rely on extemely high AA samples and even then the highlight-streaks will most likely still be dotty… And you won’t make any friends if they have to paint these streaks smooth in Comp :) So during the crunch time of a recent project I was brain storming with some of my collegues how this could potentially be fixed without needing too much samples and I’ve been working on implementing that idea which seems to work quite nicely.