I was happy to contribute to Arnold documentation with a tutorial describing rendering of volumetric fractals with Open Shading Language.
I start with simple examples such as rendering implicit volumes, then translate a sphere example into OSL. Afterwards I build a Mandelbulb OSL shader and add orbit traps for coloring.
Take a look and play with example file! More fractal shapes can be added with this technique and they can result in plenty of weird shapes 🙂
I also tested rendering in GPU mode and it worked out of the box, no additional steps needed.
I am really happy to share with you that my graduation project VFX Fractal Toolkit was accepted into Posters Session at Siggraph 2019 in Los Angeles.
Moreover it was featured in Posters Preview: SIGGRAPH 2019 video!
That is my first publication and I am very honored to have this tiny contribution to Siggraph 🙂
You can find abstract in ACM Digital Library.
For my graduation project VFX Fractal Toolkit (VFT) I developed a couple of Open Shading Language (OSL) shaders to render volumetric fractals. I produced with them the following animations.
As a renderer I used Arnold and was pretty satisfied with the workflow. However I was wondering how difficult would it be to use the same OSL shaders in another renderer, e.g. Blender’s Cycles. Especially because I was trying to mimick OpenCL’s syntax in OSL (not the best idea, but helped me port OpenCL shaders which I built first), included couple of header files etc..
As it turned out it was a pretty quick process and everything worked out of the box, requiring only minimal changes. The only thing I had to change was to properly set up multiple node outputs. Arnold doesn’t support multiple outputs for an OSL node so I worked around it by outputting a 4×4 matrix type with encoded values in it and extracting them afterwards. This makes Blender’s shaders nicer and more readable, you can check the diff here.
The shading setup in Blender looks pretty similar to the one used in Arnold and also outputs similar results.
For the testing I used Blender 2.80 beta running in a Docker container.
Keep in mind that rendering such volumes is pretty slow and neither Arnold nor Cycles support OSL on GPU. I included the changes in blender branch of the repository (not for all OSL shaders yet, but you get the idea :)).
I would like to share the first test of a fun project I recently started working on in my spare time – Open3D to Houdini integration.
I built Houdini wrappers around Open3D functionality, which enable me to load point clouds, pre-process (downsample, estimate normals, compute FPFH feature) and perform Global and ICP registration on them to align them tightly:
This already seems quite versatile when combined with the Houdini toolset. Combined with GameDev and Alice Vision tools it can result in a powerful and automatic photogrammetry pipeline – something I like to explore 🙂.
I bidirectionally translate Houdini and Open3D geometry, so the Open3D operations can be seamlessly combined with Houdini SOPs. This doesn’t seem to be the case in the Reality Capture or Alice Vision plugins, which don’t enable Houdini to modify the geometry.
The integration is in early version and has some issues. I tested it only on a Linux so far. I will open-source it after I fix the problems and write some info on setting it up.
Thanks for reading 🙂
I would like to share my graduation project VFX Fractal Toolkit. I finished my TD studies at Filmakademie last month and had a chance to present the results at the last FMX. You can find out more about the VFT here, where you can also check the code.
Recently I got interested in web technologies. I was surprised to learn how much is possible to do in a web browser. I found out about new interesting APIs and a huge ecosystem of libraries, many of which are from areas of my interest.
Some of the benefits I like are portability and cross-platform compatibility. Most of the tests run fine in major web browsers on all operating systems. They run also fine on mobile devices, some of them are even intended for mobile devices, like the AR tests. I found it being a really convenient (and free) platform for building prototypes and tests.
Here I will describe some of the projects.
Continue reading “Web experiments”
Hello, this post will introduce a project I have been developing with friends for some time: Megascans to Houdini integration, or megaH. This will be a high-level overview of the tools and workflows we have developed so far.
This article is written by authors of this tool: me, Peter Trandžík and Ondrej Poláček.
MegaH is currently work in progress and is being used in two student productions. It is not finished and ready for release yet. The two versions are customized to specific pipelines and needs of the corresponding productions.
It is developed and tested on Linux and Windows and with Mantra and Redshift renderer.
Also note that while we used the Megascans library, this project could be ported to include different libraries, for example VFX studios’ internal asset/setup libraries.
Continue reading “megaH | Megascans to Houdini integration”
This is the second article describing our photogrammetry workflow which I developed for a student production. You can find the first article here.
In this article I will go over our attempts on reconstruction of photos in various applications and our semi-automatic post processing workflow based on Houdini. (Houdini asset can be downloaded at the bottom of the page.)
Continue reading “Photogrammetry 2 | 3D reconstruction and post processing”
In this post I will show a simple technique for FLIPs and RBDs interaction. Like in this example:
I decided to give it a try after talking to great FX TD Adam Guzowski. The task was like this: doing a setup where water would fracture RBD objects, would break RBD constraints and RBD objects would be pre-fractured based on the expected water flow.
Continue reading “FLIPs – RBDs interaction”
I would like to share with you a tool I have been developing lately – Houdini 2 VR.
Currently Houdini doesn’t have a tool for previewing (stereo/mono) VR renders in a VR headset. All renderers support this output format, but the preview process is a bit of a bottleneck. You usually need to leave the DCC application, load the render in another app, e.g. Nuke and judge the visual quality there. This adds a bit of time to each iteration and makes the preview process cumbersome.
So I tried to simplify this process. Sending pictures to HMDs can get very technical and low-level but I rather took a high-level approach: Python + WebVR. Or more precisely Python on the Houdini side and WebVR on the side of a web browser. Using a web browser means that I have to leave Houdini for previewing VR render, but with Python I tried to make it as automatic as possible.
Check this video to see how my tool works:
Continue reading “Houdini 2 VR”