- Procedurals
- Application
- Katana-SuperTools
- Arnold-Shaders
- OSL-Shaders
- Katana-Plugins
- USD-Scripts
- UE4-Plugins
Procedurals
Speedtree Kit
-
Overview and Purpose
The SpeedtreeKit is a toolset which contents speedtreeLib(based on Unreal Engine), speedtreeProc and speedtreeOp. The speedtreeLib is a speedtree translation lib would convert speedtree original geometry data into general purpose vertex index vector so that the other applications could use. The speedtreeProc contents arnold procedural node “ speedtree_procedural” and a shader “speedtree_shader”, the procedural node would read speedtree original file which suffix is *.srt via translation lib`s API and convert into renderer polymesh node, it might generate more than one polymesh node would be assigned with a “speedtree_shader” to make sure every polymesh node would get different shader and different look. The speedtreeOp contents a Katana Op node “Speedtree_In” which would read original speedtree file into Katana and available to render and also create a proxy alembic file in the viewer.
-
Pipeline Design
Use “Speedtree_In” node to read original speedtree files and create the looks with “speedtree_shader” then export assets into arnold ASS files and go back to maya and use xgen to create the plant in shot.Finally, render the shot assets in Katana with “xgen_procedural” node.
-
Why use speedtreeKit
The speedtreeKit toolset would make your assets of plant very small and don`t need the animation sequences because every animation frame would be calculated by the renderer. That would improve both your IO speed and also render speed.
Application
EXRAutoCropper
-
Overview and Purpose
The EXRAutoCropper would read the OpenEXR files and auto crop it. As we know, most of the OpenEXR images from renderer have large sizes and tiled type, we could read the original image data and write out with optimized color information and scanline type which NUKE preferred with no quality lost and then crop the data window of new exr file. The EXRAutoCropper supporting muti-channel EXR file and muti-threads process.
-
Benefit
Lower size and faster IO speed in Nuke.
-
How to use
cd /path/to/EXRAutoCropper ./runCropper -f <file_path> -t <threads_number> -a <autoCrop_all>
OpenEXRResizer
-
Overview and Purpose
The OpenEXRResizer is a tool that aim to resize EXR files to get lower size proxy images. Supporting muti-threads process. Supporting Cryptomatte files.
-
Pipeline Design
In composting pipeline, those are usually so many 2k or 4k OpenEXR files IO at same time in Nuke, we could convert those files into lower size as proxy and change it back on final render to extremely improve the efficiency of composting.
-
How to use
cd /path/to/OpenEXRResizer ./runResizer -f <file_path> -t <threads_number> -o <output_path>
Katana-SuperTools
ArnoldLightGafferPackage
The ArnoldLightGafferPackage is a GafferThree Supertools that contents all presets of lights and light filters we could create them easily.
MaterialXBake
-
Overview and Purpose
The MaterialXBake tools is a Katana Supertools node to bake Katana shading networks into materialx file. Since Arnold support MaterialX, we could make shading pipeline much more flexible.
-
Benefit
In the final lighting shot, we could override the whole shot materials and also override the specified asset look include in Arnold ASS archives.
Arnold-Shaders
ParallaxMap Shader
-
Overview and Purpose
The ParallaxMap shader is the implementation of OpenGL Parallax Map in Arnold, with this one, we can create very realistic looks of environment just with normal map and bump(depth) map, the look is very similar to the displacement map but much more efficient then displacement map.
-
Benefit
More efficient and easier to create and control.
-
How to use
Step 1: Create "parallax_map" shader; Step 2. Connect arnold "standard_surface"shader to parameter "Standard Surface"; Step 3. Connect depth map or bump map to parameter "Parallax Map"; Step 4. Control the height with parameter "Parallax Value";
TextureRepetition Shader Kit
The TextureRepetition shader kit would repeat a texture into a complex one but with no stitch. With a simple and small texture, we could get a huge size but randomized map.
Please feel free to check the source code on my Github.
Triplanar Shader Kit
The TriplanarPlus shader would project three texture images into three axis(x,y,z), the object without UV information would still get nice shading and the Pref attribute would still get smooth normal.
Please feel free to check the source code on my Github.
OSL-Shaders
-
Overview and Purpose
The OSL-Shaders is the general purpose math shader library. There are a lot of shaders we almost use in every asset, the purpose of the OSL-Shaders is to handle and transform the shading pipeline from different application and renderers easily.
-
By The Way
Those are a lot of osl shaders I don`t list here which deal with different project assets translation.
Katana-Plugins
LightViewerModifier
The LightViewerModifier is a simple plugin to customize the light shapes in Katana viewer for Arnold light.
USD-Scripts
-
Overview and Purpose
A USD-Script library which contents all functionality to translate a Alembic based pipeline into a USD based one, from Maya to Katana.
-
Why I wrote
The purpose of writing those scripts is to learn, test and play with USD project. Just for fun and curious.
UE4-Plugins
Cache_Actor
The Cache_Actor plugin would read a custom animation cache file and generate the animation frame in Unreal Engine, very similar to Alembic cache but we store vertex data into a texture file.
DownloadAssets
The DownloadAssets plugin would download project file from server which exported from Maya pipeline.
ImportAssets
The ImportAssets plugin would import all Maya assets into Unreal Engine and assign the materials automatically.
MiliBlueprintLibrary
Some useful Blueprint node in Unreal Engine.
MiliToolBox
A tool box shelf.