Skip to content

Commit

Permalink
[NEWTOOL] Added ZibraVDB for Houdini plugin.
Browse files Browse the repository at this point in the history
  • Loading branch information
aomai01 committed Dec 12, 2024
1 parent e1d6fce commit e130dfb
Show file tree
Hide file tree
Showing 26 changed files with 2,062 additions and 0 deletions.
3 changes: 3 additions & 0 deletions OPcustomize
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,9 @@
//ophide Sop labs::biome_profile::1.0 // Replaced by biome_definitions_file::1.0 and biome_define::1.0
//ophide Sop labs::biome_initialize::1.0 // Replaced by biome_region_assign::1.0
//ophide Sop labs::biome_curve_setup::1.0 // Replaced by biome_curve_label::1.0
opunhide Sop labs::rop_zibravdb_compress::0.2 // Shipped with native Houdini
opunhide Sop labs::zibravdb_decompress::0.2 // Shipped with native Houdini
opunhide Driver labs::zibravdb_compress::0.2 // Shipped with native Houdini

// H20 Changes
ophide Sop labs::dembones_skinningconverter // Replaced by dembones_skinningconverter::1.0
Expand Down
3 changes: 3 additions & 0 deletions config/Icons/zibravdb.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
3 changes: 3 additions & 0 deletions help/labs_icons/zibravdb.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
120 changes: 120 additions & 0 deletions help/nodes/out/labs--zibravdb_compress-0.2.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,120 @@
#type: node
#context: out
#internal: labs::zibravdb_compress::0.2
#icon: /labs_icons/zibravdb.svg
#since: 20.5

= Labs ZibraVDB Compress (Alpha) =

"""Compresses an OpenVDB sequence and caches it to disk as a single file."""

This node compresses an OpenVDB sequence to disk into a single `.zibravdb` file. This drastically reduces the memory footprints of cached volumetric data, enables faster viewport playback in Houdini through the [Labs ZibraVDB Decompress SOP|Node:/sop/labs--zibravdb_decompress-0.2] or the [Labs ZibraVDB File Cache SOP|Node:/sop/labs--zibravdb_filecache-0.2].

TIP:
Currently, ZibraVDB does not compress VDB sequences containing vector fields/channels, such as Color (`Cd.*`), velocity (`vel.*`), emission (`scatter`), etc. You can bypass this limitation by spliting and renaming your vector fields to float fields. Up to 8 float fields/channels can be compressed at once.

Vector VDB compression will be supported in the future.

== About ZibraVDB ==

[ZibraVDB|https://effects.zibra.ai/zibra-vdb-compression] is a VDB compression and real-time playback technology developed by [Zibra AI|https://effects.zibra.ai/]. It can achieve approximately 30~100 times cache size reduction with minimal quality loss, with even higher compression rates planned for future updates. The proprietary output file format, .zibravdb, captures an entire VDB sequence in a single file, which can be loaded back into an application (such as Houdini or Unreal Engine), decompressed on the GPU in real time, and played back in the viewport at speeds multiple times faster than native solutions.

What ZibraVDB brings is a memory-efficient, high-performance volumetric data pipeline that seamlessly integrates into artists' existing, familiar workflows. It significantly reduces storage costs, improves volumetric data I/O speed, and ultimately makes it easier and more feasible to share working projects and distribute final products with high-quality volumetric effects.

[ZibraVDB for Houdini|https://github.com/ZibraAI/ZibraVDBForHoudini] is an open-source plugin contributed by Zibra AI to SideFX Labs. This plugin allows ZibraVDB’s compression, decompression, and fast playback capabilities to integrate smoothly into Houdini’s native volumetric workflows.

The compressed output can also be used directly with [ZibraVDB for UE|https://zibra.notion.site/ZibraVDB-for-UE-d7123b782e8f4073b1b652aac5143364], enabling artists to create beautiful, high-fidelity volumetric effects in Houdini, and render them efficiently as 3D ray-marched volumes in real-time environments for virtual productions or video games.

== Getting Ready ==

=== Activating License ===

To start using ZibraVDB for Houdini you need to get license key and activate it.
# You can get license key using [ZibraVDB for Houdini Alpha form|https://effects.zibra.ai/zibravdbhoudini].
# Open houdini.env file in Houdini's Documents folder `C:\Users\<Username>\Documents\houdiniXX.X\houdini.env`.
# Create `zibravdb_license_key.txt` file and paste your license key in it. The file can be located anywhere.
# Add string `ZIBRAVDB_LICENSE_KEY = "path\to\zibravdb_license_key.txt"` to the end of the file.
Now the plugin should be activated.

=== Downloading ZibraVDB Core Library ===

When first using any ZibraVDB node you need to download core library. This needs to be done only once.
# Press __Download Library__ button on this or any other ZibraVDB node.
# Accept [Terms of Service|https://effects.zibra.ai/vdb-terms-of-services-trial].
# A pop-up window will appear confirming successful download.


@parameters

Render to Disk:
#id: execute
Compresses VDB sequence to `.zibravdb` file and saves it to disk.

Background Render:
#id: executebackground
Compresses VDB sequence to `.zibravdb` file and saves it to disk in background.

Controls...:
#id: renderdialog
Opens the control dialog to allow adjustments of the render parameters before rendering.

Valid Frame Range:
#id: trange
Specifies whether to compress VDB in the frame range or a single frame.

Start/End/Inc:
#id: f
Specifies the range of frames to render (start frame, end frame, and increment). All values may be floating point values. The range is inclusive.

Render with Take:
#id: take
Uses the settings in a particular take while rendering. Choose Current to use the current take when rendering.

SOP Path:
#id: soppath
The path to the SOP node with the VDB data to compress.

Out File:
#id: filename
Path to the `.zibravdb` file VDB sequence will be compessed to. The node automatically creates missing directories in the path.

Quality:
#id: quality
Specifies quality of the compressed effect. The lower quality is the higher compression rate will be.

Use Per Channel Settings:
#id: useperchsettings
Allows to specify different compression quality for each channel.

Number of Channels:
#id: perch_settings
Allows to specify number of overrides for compression quality per channel. Not specified channels will use value from __Quality__ parameter.

Channel Name:
#id: perchname#
Name of the channel that will have custom compression settings.

Channel Quality:
#id: perchquality#
Specifies compression Quality for the specific channel.

Pre-Render Script:
#id: prerender
Run this script before any rendering.

Pre-Frame Script:
#id: preframe
Run this script before each frame.

Post-Frame Script:
#id: postframe
Run this script after each frame.

Post-Render Script:
#id: postrender
Run this script after all rendering.

Download Library:
#id: downloadlibrary
Downloads the core library for ZibraVDB. You need to press this button when using ZibraVDB for the first time.

115 changes: 115 additions & 0 deletions help/nodes/sop/labs--rop_zibravdb_compress-0.2.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,115 @@
#type: node
#context: sop
#internal: labs::rop_zibravdb_compress::0.2
#icon: /labs_icons/zibravdb.svg
#since: 20.5

= Labs ZibraVDB Compress (Alpha) =

"""Compresses an OpenVDB sequence and caches it to disk as a single file."""

This node compresses an OpenVDB sequence to disk into a single `.zibravdb` file. This drastically reduces the memory footprints of cached volumetric data, enables faster viewport playback in Houdini through the [Labs ZibraVDB Decompress SOP|Node:/sop/labs--zibravdb_decompress-0.2] or the [Labs ZibraVDB File Cache SOP|Node:/sop/labs--zibravdb_filecache-0.2].

TIP:
Currently, ZibraVDB does not compress VDB sequences containing vector fields/channels, such as Color (`Cd.*`), velocity (`vel.*`), emission (`scatter`), etc. You can bypass this limitation by spliting and renaming your vector fields to float fields. Up to 8 float fields/channels can be compressed at once.

Vector VDB compression will be supported in the future.

== About ZibraVDB ==

[ZibraVDB|https://effects.zibra.ai/zibra-vdb-compression] is a VDB compression and real-time playback technology developed by [Zibra AI|https://effects.zibra.ai/]. It can achieve approximately 30~100 times cache size reduction with minimal quality loss, with even higher compression rates planned for future updates. The proprietary output file format, .zibravdb, captures an entire VDB sequence in a single file, which can be loaded back into an application (such as Houdini or Unreal Engine), decompressed on the GPU in real time, and played back in the viewport at speeds multiple times faster than native solutions.

What ZibraVDB brings is a memory-efficient, high-performance volumetric data pipeline that seamlessly integrates into artists' existing, familiar workflows. It significantly reduces storage costs, improves volumetric data I/O speed, and ultimately makes it easier and more feasible to share working projects and distribute final products with high-quality volumetric effects.

[ZibraVDB for Houdini|https://github.com/ZibraAI/ZibraVDBForHoudini] is an open-source plugin contributed by Zibra AI to SideFX Labs. This plugin allows ZibraVDB’s compression, decompression, and fast playback capabilities to integrate smoothly into Houdini’s native volumetric workflows.

The compressed output can also be used directly with [ZibraVDB for UE|https://zibra.notion.site/ZibraVDB-for-UE-d7123b782e8f4073b1b652aac5143364], enabling artists to create beautiful, high-fidelity volumetric effects in Houdini, and render them efficiently as 3D ray-marched volumes in real-time environments for virtual productions or video games.

== Getting Ready ==

=== Activating License ===

To start using ZibraVDB for Houdini you need to get license key and activate it.
# You can get license key using [ZibraVDB for Houdini Alpha form|https://effects.zibra.ai/zibravdbhoudini].
# Open houdini.env file in Houdini's Documents folder `C:\Users\<Username>\Documents\houdiniXX.X\houdini.env`.
# Create `zibravdb_license_key.txt` file and paste your license key in it. The file can be located anywhere.
# Add string `ZIBRAVDB_LICENSE_KEY = "path\to\zibravdb_license_key.txt"` to the end of the file.
Now the plugin should be activated.

=== Downloading ZibraVDB Core Library ===

When first using any ZibraVDB node you need to download core library. This needs to be done only once.
# Press __Download Library__ button on this or any other ZibraVDB node.
# Accept [Terms of Service|https://effects.zibra.ai/vdb-terms-of-services-trial].
# A pop-up window will appear confirming successful download.


@parameters

Render to Disk:
#id: execute
Compresses VDB sequence to `.zibravdb` file and saves it to disk.

Background Render:
#id: executebackground
Compresses VDB sequence to `.zibravdb` file and saves it to disk in background.

Controls...:
#id: renderdialog
Opens the control dialog to allow adjustments of the render parameters before rendering.

Valid Frame Range:
#id: trange
Specifies whether to compress VDB in the frame range or a single frame.

Start/End/Inc:
#id: f
Specifies the range of frames to render (start frame, end frame, and increment). All values may be floating point values. The range is inclusive.

Render with Take:
#id: take
Uses the settings in a particular take while rendering. Choose Current to use the current take when rendering.

Out File:
#id: filename
Path to the `.zibravdb` file VDB sequence will be compessed to. The node automatically creates missing directories in the path.

Quality:
#id: quality
Specifies quality of the compressed effect. The lower quality is the higher compression rate will be.

Use Per Channel Settings:
#id: useperchsettings
Allows to specify different compression quality for each channel.

Number of Channels:
#id: perch_settings
Allows to specify number of overrides for compression quality per channel. Not specified channels will use value from __Quality__ parameter.

Channel Name:
#id: perchname#
Name of the channel that will have custom compression settings.

Channel Quality:
#id: perchquality#
Specifies compression Quality for the specific channel.

Pre-Render Script:
#id: prerender
Run this script before any rendering.

Pre-Frame Script:
#id: preframe
Run this script before each frame.

Post-Frame Script:
#id: postframe
Run this script after each frame.

Post-Render Script:
#id: postrender
Run this script after all rendering.

Download Library:
#id: downloadlibrary
Downloads the core library for ZibraVDB. You need to press this button when using ZibraVDB for the first time.
59 changes: 59 additions & 0 deletions help/nodes/sop/labs--zibravdb_decompress-0.2.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
#type: node
#context: sop
#internal: labs::zibravdb_decompress::0.2
#icon: /labs_icons/zibravdb.svg
#since: 20.5

= Labs ZibraVDB Decompress (Alpha) =

"""Decompresses a single ZibraVDB file to an OpenVDB sequence."""

This node decompresses a single `.zibravdb` file from disk to an OpenVDB sequence.

== About ZibraVDB ==

[ZibraVDB|https://effects.zibra.ai/zibra-vdb-compression] is a VDB compression and real-time playback technology developed by [Zibra AI|https://effects.zibra.ai/]. It can achieve approximately 30~100 times cache size reduction with minimal quality loss, with even higher compression rates planned for future updates. The proprietary output file format, .zibravdb, captures an entire VDB sequence in a single file, which can be loaded back into an application (such as Houdini or Unreal Engine), decompressed on the GPU in real time, and played back in the viewport at speeds multiple times faster than native solutions.

What ZibraVDB brings is a memory-efficient, high-performance volumetric data pipeline that seamlessly integrates into artists' existing, familiar workflows. It significantly reduces storage costs, improves volumetric data I/O speed, and ultimately makes it easier and more feasible to share working projects and distribute final products with high-quality volumetric effects.

[ZibraVDB for Houdini|https://github.com/ZibraAI/ZibraVDBForHoudini] is an open-source plugin contributed by Zibra AI to SideFX Labs. This plugin allows ZibraVDB’s compression, decompression, and fast playback capabilities to integrate smoothly into Houdini’s native volumetric workflows.

The compressed output can also be used directly with [ZibraVDB for UE|https://zibra.notion.site/ZibraVDB-for-UE-d7123b782e8f4073b1b652aac5143364], enabling artists to create beautiful, high-fidelity volumetric effects in Houdini, and render them efficiently as 3D ray-marched volumes in real-time environments for virtual productions or video games.

== Getting Ready ==

=== Activating License ===

To start using ZibraVDB for Houdini you need to get license key and activate it.
# You can get license key using [ZibraVDB for Houdini Alpha form|https://effects.zibra.ai/zibravdbhoudini].
# Open houdini.env file in Houdini's Documents folder `C:\Users\<Username>\Documents\houdiniXX.X\houdini.env`.
# Create `zibravdb_license_key.txt` file and paste your license key in it. The file can be located anywhere.
# Add string `ZIBRAVDB_LICENSE_KEY = "path\to\zibravdb_license_key.txt"` to the end of the file.
Now the plugin should be activated.

=== Downloading ZibraVDB Core Library ===

When first using any ZibraVDB node you need to download core library. This needs to be done only once.
# Press __Download Library__ button on this or any other ZibraVDB node.
# Accept [Terms of Service|https://effects.zibra.ai/vdb-terms-of-services-trial].
# A pop-up window will appear confirming successful download.


@parameters

Input File:
#id: filename
Path to the `.zibravdb` file that will be decompresed.

Sequence frame:
#id: frame
Compresses VDB sequence to `.zibravdb` file and saves it to disk in background.

Reload Cache:
#id: refresh
Force a reload of the `.zibravdb` file from disk and decompress needed frame again.

:include /nodes/sop/labs--rop_zibravdb_compress-0.2#downloadlibrary:

:include /nodes/sop/labs--rop_zibravdb_compress-0.2#corelibpath:

Loading

0 comments on commit e130dfb

Please sign in to comment.