Skip to content

Commit

Permalink
Merge pull request #3 from OmooLab/feature/dev
Browse files Browse the repository at this point in the history
docs: README.md
  • Loading branch information
icrdr authored Apr 2, 2024
2 parents 5a0e1ae + f02f578 commit ce5f3ec
Show file tree
Hide file tree
Showing 10 changed files with 94 additions and 28 deletions.
72 changes: 44 additions & 28 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,11 @@
[中文文档](https://uj6xfhbzp0.feishu.cn/wiki/L7dVwVfP7iffHskjHL0cjCaqnfc?from=from_copylink)

![alt text](docs/images/overview.png)

# OmooAsset

USD based 3D model storage solution, our goal is **"create once, render anywhere"**.
If you're struggling to keep your model assets rendering consistently on different platforms by repeatedly creating material spheres manually, and Houdini is in your workflow, then Omoo Asset is the best choice!

Currently supported platforms:

Expand All @@ -11,63 +14,76 @@ Currently supported platforms:
- Cinema4D 2024.x (Redshift)
- Threejs (.glb)

[中文文档](https://uj6xfhbzp0.feishu.cn/wiki/L7dVwVfP7iffHskjHL0cjCaqnfc?from=from_copylink)
Future supported platforms:

- Unreal
- Unity

# Why OmooAsset ?

It is reasonable to assume that as long as the platform has full support for USD | MaterialX, all models can be loaded consistently. It is conceivable that eventually all platforms will highly support for reading and writing USD | MaterialX, but it is still conceivable that the definition of channels for rendering will not be completely consistent. For example, some renderers support the effect of model scaling on displacement strength, while others do not. **This is a problem that Omoo Asset is trying to solve by making sure that models are "rendered" consistently across all renderers.**
Theoretically, as long as the platform can fully support USD | MaterialX, it can ensure consistency itself. However, rendering effects and channel definitions are difficult to standardize across platforms and are unlikely to be resolved in the short term. For example, some renderers support the effect of model scaling on displacement strength, while others do not. This is a problem that Omoo Asset wants to solve, to maximize the consistency of the rendering result, especially the subsurface scattering.

![alt text](docs/images/results.png)

The image above shows the rendering results of Omoo Asset on different renderers, from the real-time preview in Substance 3D Painter at the material texturing stage, to the rendering results in Houdini Karma at the material Lookdev stage, to the output to Blender | Cinema4D rendering. Although, the rendering results can't be said to be exactly the same 🥲, at least in terms of channel definitions and properties strength values (e.g. displacement and subsurface) are the same, the only variable being the renderer itself 👌.

We have defined a subset of MaterialX, [OmooLab Standard Surface (OSS Material)](docs/OmooLab_Standard_Surface.md), which is unique in that the material parameters are almost entirely controlled by textures. Just like USD can only store pure geometry, not controllers and modifiers, all physical properties of the material are baked and calculated into textures.
So how does Omoo Asset ensure consistency?

Omoo Asset is exported via Houdini's Omoo Export SOP. For principled shader it is converted to a USD Preview Surface (a Houdini native feature), so in any case, all materialas in Omoo Assert include at least USD Preview Surface, which ensures that the Omoo Asset can be loaded as a .usd with all materials' textures, even without any plugins. We also provide plug-ins for each platform to ensure maximum consistency in material rendering:
We have defined a MaterialX specification, [OmooLab Standard Surface (OSS Material)](docs/omoolab_standard_surface.md), which is unique in that the material parameters are almost entirely controlled by the texture. Just like USD can only store pure geometry, not controllers and modifiers, all physical properties on the material are baked into the textures. OSS Material includes an output of the USD Preview Surface, which ensures that Omoo Asset can load the material texture when reading it as .usd. Of course, for optimal rendering, you'll need to use the plugins we provide.

- [Blender 4.x](docs/Blender.md)
- [Cinema4D 2024.x (Redshift)](docs/Cinema4D.md)
### Known Limitations

If you just want to import Omoo Assets, you can click the links above.
- No support for procedural materials, material animations
- No support for Animated skeleton (will support in the future)
- Depends on how well DCC itself supports USD (will not in the future)

# Getting Started

## Houdini HDA Installation
### Configure OCIO (optional)

1. Download the latest release version of OmooAsset. [https://github.com/OmooLab/OmooAsset/releases](https://github.com/OmooLab/OmooAsset/releases)
Consistent rendering also relies on a consistent working color space across all software, so a unified OCIO profile is recommended.We also provide a profile based on aces v1.3 ocio v2.1, adding special values defined by each of Houdini, Blender, and Substance 3D Painter to ensure maximum compatibility.
Download OmooAset_v0.1.0_OCIO.zip from https://github.com/OmooLab/OmooAsset/releases/latest. Unzip it to any location and add OCIO to the Windows environment variable with the value of the path to the config file.

2. Unzip all files to any directory. e.g. `path/to/OmooAsset`
### Importing Omoo Asset

3. Reference it's package path to houdini package json file `houdiniX.Y/packages/env.json`.
- [Houdini 20](docs/houdini.md)
- [Blender 4.x](docs/blender.md)
- [Cinema4D 2024.x (Redshift)](docs/cinema4d.md)

```json
{
"package_path": ["path/to/OmooAsset/packages"]
}
```
### Exporting Omoo Asset

Currently you can only make it in Houdini, you can choose to model it in other software, but eventually you need to export it from Omoo Export SOP in Houdini. It's very easy to do, just connect Omoo Export in Sop and click Export.

If you need to paint materials, you can insert a Substance Bridge node in front of Omoo Export, which connects you to the Substance 3D Painter and allows you to quickly transfer materials back to Houdini and render them in Karma. This is also currently the only way to create OSS Materials.

Follow along with [your first Omoo Asset](docs/your_first_omoo_asset.md) to learn more about creating omoo asset!

# Omoo Asset Sturcture

### Directory Sturcture

```bash
<AssetName>
{AssetName}
|-- Components # Layers, textures, any other files
| |-- Clips # Optional
| |-- Textures # Optional
| |-- <AssetName>.geometries.usd
| |-- <AssetName>.materials.usd # Optional
| `-- <AssetName>_payload.usd
`-- <AssetName>.usd # Main file
| |-- {AssetName}.geometries.usd
| |-- {AssetName}.materials.usd # Optional
| `-- {AssetName}_payload.usd
`-- {AssetName}.usd # Main file
```

### USD Prim Path Sturcture

Note that the Omoo Asset is not used to store the scene, just models, so there will only be one Asset (Component) in each omoo asset.

```bash
<AssetName> # Xform (Component)
{AssetName} # Xform (Component)
|-- Geometries # Scope
| |-- <Mesh_1> # Mesh
| | `-- <Material_1_group> # GeomSubset
| |-- <Mesh_2> # Mesh
| `-- <Mesh_3> # Mesh
| |-- {Mesh_1} # Mesh
| | `-- {Material_1_group} # GeomSubset
| |-- {Mesh_2} # Mesh
| `-- {Mesh_3} # Mesh
|-- Materials # Scope (optional)
| `-- <Material_1> # Material
```
| `-- {Material_1} # Material
```
19 changes: 19 additions & 0 deletions docs/Blender.md
Original file line number Diff line number Diff line change
@@ -1 +1,20 @@
# OmooAset Blender Add-on

# Getting Start

[Configure OCIO (optional)](../README.md#configure-ocio-optional)
[Download the Omoo Asset example (optional)](https://drive.google.com/file/d/1G_60KsiEinKOVVH-J6BQNtNL8gSb8kwX/view?usp=sharing)

### Download and install the plugin

Download the latest version of the plugin `OmooAset_v0.1.0_Blender.zip` from https://github.com/OmooLab/OmooAsset/releases/latest

Edit - Preferences... - Add-ons - Install. Select the add-on .zip file.

![alt text](images/blender_addon.png)

### Import Omoo Asset

File - Import - Omoo Asset (.usd). Select the Omoo Asset entry file (.usd)

![alt text](images/blender_menu.png)
18 changes: 18 additions & 0 deletions docs/Cinema4D.md
Original file line number Diff line number Diff line change
@@ -1 +1,19 @@
# OmooAset Cinema4D Plugin

# Getting Start

[Configure OCIO (optional)](../README.md#configure-ocio-optional)
[Download the Omoo Asset example (optional)](https://drive.google.com/file/d/1G_60KsiEinKOVVH-J6BQNtNL8gSb8kwX/view?usp=sharing)

### Download and install the plugin

Download the latest version of the plugin `OmooAset_v0.1.0_Cinema4D.zip` from https://github.com/OmooLab/OmooAsset/releases/latest

Copy and overwrite all the folders under the zip package to `%appdata%\Maxon\{cinema4d version}`. For example `%appdata%\Maxon\Maxon Cinema 4D 2024_A5DBFF93`
Then restart Cinema 4D.

### Import Omoo Asset

Omoo Asset - Import Omoo Asset (Redshift)

![alt text](images/cinema4d_menu.png)
13 changes: 13 additions & 0 deletions docs/houdini.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
## Houdini HDA Installation

1. Download the latest release version of OmooAsset. [https://github.com/OmooLab/OmooAsset/releases](https://github.com/OmooLab/OmooAsset/releases)

2. Unzip all files to any directory. e.g. `path/to/OmooAsset`

3. Reference it's package path to houdini package json file `houdiniX.Y/packages/env.json`.

```json
{
"package_path": ["path/to/OmooAsset/packages"]
}
```
Binary file added docs/images/blender_addon.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/blender_menu.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/cinema4d_menu.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/results.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
File renamed without changes.
Empty file added docs/your_first_omoo_asset.md
Empty file.

0 comments on commit ce5f3ec

Please sign in to comment.