All Projects β†’ tangent-opensource β†’ Hdcycles

tangent-opensource / Hdcycles

Licence: other
Cycles Hydra Delegate

Projects that are alternatives of or similar to Hdcycles

osci-render
γ€°πŸ“ΊπŸ”Š Software for making music by drawing objects on an oscilloscope using audio.
Stars: ✭ 135 (-31.47%)
Mutual labels:  blender, rendering
export multi
Use the multi-exporter for Blender and check in (and tweak) various scenes step by step.
Stars: ✭ 31 (-84.26%)
Mutual labels:  blender, rendering
Blender Cli Rendering
Python scripts for rendering images using Blender 2.83 from command-line interface
Stars: ✭ 241 (+22.34%)
Mutual labels:  rendering, blender
Sheepit Client
Client for the free and distributed render farm "SheepIt Render Farm"
Stars: ✭ 244 (+23.86%)
Mutual labels:  rendering, blender
Armory
3D Engine with Blender Integration
Stars: ✭ 2,350 (+1092.89%)
Mutual labels:  rendering, blender
blender-colab
Render Blender 3.x and 2.9x scenes with Google Colaboratory
Stars: ✭ 78 (-60.41%)
Mutual labels:  blender, rendering
RefRESH
Create RefRESH data: dataset tools for Learning Rigidity in Dynamic Scenes with a Moving Camera for 3D Motion Field Estimation (ECCV 2018)
Stars: ✭ 51 (-74.11%)
Mutual labels:  blender, rendering
Herebedragons
A basic 3D scene implemented with various engines, frameworks or APIs.
Stars: ✭ 1,616 (+720.3%)
Mutual labels:  rendering, blender
Rd Blender Docker
A collection of Docker containers for running Blender headless or distributed ✨
Stars: ✭ 111 (-43.65%)
Mutual labels:  rendering, blender
DuBLF DuBlast
Quick Playblast tool for Blender
Stars: ✭ 18 (-90.86%)
Mutual labels:  blender, rendering
Bitwrk
Bitcoin-fueled Peer-to-Peer Blender Rendering (and more)
Stars: ✭ 114 (-42.13%)
Mutual labels:  rendering, blender
Appleseed
A modern open source rendering engine for animation and visual effects
Stars: ✭ 1,824 (+825.89%)
Mutual labels:  rendering, blender
Legacy Old Hercules
Abandoned
Stars: ✭ 174 (-11.68%)
Mutual labels:  hydra
Euc
A software rendering crate that lets you write shaders with Rust
Stars: ✭ 180 (-8.63%)
Mutual labels:  rendering
Flux
A real-time physically based rendering engine written in C++ and OpenGL
Stars: ✭ 171 (-13.2%)
Mutual labels:  rendering
Tinykaboom
A brief computer graphics / rendering course
Stars: ✭ 2,077 (+954.31%)
Mutual labels:  rendering
Ogre
scene-oriented, flexible 3D engine (C++, Python, C#, Java)
Stars: ✭ 2,582 (+1210.66%)
Mutual labels:  rendering
Lwrpambientocclusion
Post-Processing Stack v2 Ambient Occlusion works on Lightweight Render Pipeline
Stars: ✭ 179 (-9.14%)
Mutual labels:  rendering
Media Watermark
GPU/CPU-based iOS Watermark Library for Image and Video Overlay
Stars: ✭ 170 (-13.71%)
Mutual labels:  rendering
Glsltuto
GLSL shaders tutorial
Stars: ✭ 168 (-14.72%)
Mutual labels:  rendering

HdCycles

License

A USD/Hydra RenderDelegate plugin that adds support for the Cycles renderer (Blender's physically based path tracer) to any client.

Its goal is to render a one-to-one representation of a USD scene with Cycles.

This requires three components:

  • hdCycles (Cycles Hydra Delegate)
  • ndrCycles (Cycles Node Definition Registry)
  • usdCycles (Cycles USD Schema)

The first two of which are implemented in this repository.

Building

Requirements

  • Cycles standalone libraries and headers Source
  • USD 19.xx+
    • Most of the USD requirements need to be available (OpenSubdiv, PNG, OpenImageIO, OpenVDB ...)

Linux

Make sure to build cycles with -DCMAKE_POSITION_INDEPENDENT_CODE=ON

mkdir build
cd build

cmake -DUSD_ROOT=/path/to/usd/root               \
  -DCYCLES_ROOT=/path/to/cycles                  \
  -DCYCLES_LIBRARY_DIR=/path/to/cycles/build/lib \
  -DCYCLES_INCLUDE_DIRS=/path/to/cycles/src      \
  ..

Windows

mkdir build
cd build

cmake -DUSD_ROOT=C:/path/to/usd/root               \
  -DCYCLES_ROOT=C:/path/to/cycles                  \
  -DCYCLES_LIBRARY_DIR=C:/path/to/cycles/build/lib \
  -DCYCLES_INCLUDE_DIRS=C:/path/to/cycles/src      \
  ..

Installation

Both the hdCycles plugin and the ndrCycles plugin must be added to the PXR_PLUGINPATH_NAME environment variable.

For example:

PXR_PLUGINPATH_NAME = %HDCYCLES_INSTALL_DIR%/plugin/usd/ndrCycles/resources;%HDCYCLES_INSTALL_DIR%/plugin/usd/hdCycles/resources

Notes

usdCycles schema

To allow a full 1:1 representation of a Blender Cycles scene, we need to store Cycles specific settings in USD. To do this, we created usdCycles. More information can be found in that repo.

To prevent DCC's and tooling to not have to implement the full dependency chain of hdCycles, the usdCycles schema definition has been split into it's own repo (and rez package). Found Here!.

Building hdCycles without usdCycles is possible, but results in a very limited subsection of Cycles settings.

For full usdCycles schema support, please build with usdCycles.

Stability & Performance

The codebase is in active development and should be deemed as unstable.

The primary priority is feature-completness. Stability and performance will be addressed in the future.

Please file issues for any question or problem.

Materials

Currently Cycles materials are exported through custom additions to the Blender USD Exporter.

Of note, hdCycles expects a flattened Cycles Material graph, with no groups or reroute nodes. It also does not use the Material Output node. Instead it favours the USD/Hydra material binding inputs.

For now only BSDF nodes are registered in the ndr plugin.

Lights

Currently light node networks are unsupported via USD Lux. A proposal from Pixar plans to fix these limitations. It is planned to support proper world and light materials once the proposal is accepted.

Feature Set

Currently supported features:

hdCycles Feature Status Notes
Meshes Basic Mesh βœ…
Geom Subsets βœ…
Subdivision Surface βœ… Ability to set at render time
Subdivision Surface (Adaptive) ❌
Generic Primvars βœ…
UVs βœ…
Display Colors βœ…
Generic Primitives βœ… (Cube, sphere, cylinder)
Tangents βœ…
Point Instances βœ…
usdCycles Schema Support βœ…
Motion Blur (Transform) βœ…
Motion Blur (Deforming) βœ… Known slow down.
Motion Blur (Velocity) ❌
Motion Blur (Instances) ❌
Materials Cycles Material Graph βœ… Ongoing support
Displacement βœ…
Volumetric βœ…
OSL ❌
USD Preview Surface βœ…
usdCycles Schema Support βœ…
Volumes VDB Support βœ… (Likely will go with foundations implementation)
Cameras Basic Support βœ…
Depth of Field βœ…
Motion Blur βœ…
usdCycles Schema Support βœ…
Curves BasisCurves βœ…
NURBs ❌
Point Instancing ❌
Motion Blur (Transform) βœ…
Motion Blur (Deforming) βœ… Known slow down.
Motion Blur (Velocity) ❌
Motion Blur (Instances) ❌
usdCycles Schema Support βœ…
Points Points βœ…
usdCycles Schema Support βœ…
Motion Blur (Transform) ❌
Motion Blur (Velocity) ❌
Lights Point βœ…
Directional βœ…
Spot βœ…
Area βœ…
Dome βœ…
Temperature βœ… We manually create a blackbody shader for now...
Light Materials ❌ Pending support for new USD Light network shaders
usdCycles Schema Support βœ…
Render Settings Basic Render Settings βœ…
usdCycles Schema Support βœ… Render Settings, Render Products, etc.
Rendering Combined AOV βœ…
Tiled Rendering βœ…
Full AOV Support ❌
Cryptomatte ❌
OCIO Support βœ…
CUDA/GPU Support ❌ Should just require adjustments to build scripts

License

This project is licensed under the Apache 2 license.

For a full list of third-party licenses see: LICENSE-THIRDPARTY

Attribution

This could not have been made without the help and reference of the following open source projects:

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].