| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
UVOL 2.0 introduces usage of Compressed Array Textures, via KTX2 supercompressed textures, allowing volumetric media to use much less texture memory than UVOL 1.0!
The geometry compression method has also been updated from Corto to Draco. UVOL 2.0 uses directories of files which represent individual frames or frame sequneces, and a manifest file which points to these files. The Encoder helps you to convert the data you have to the data the UVOL player needs. The encoder script is located at: scripts/Encoder.py.
The Encoder script requires a json configuration file. This config file is processed in a certain order that is explained below.
{
name: string,
draco_encoder: string,
basisu: string,
ABCFilePath: string,
OBJFilesPath: string,
DRACOFilesPath: string,
Q_POSITION_ATTR: number,
Q_TEXTURE_ATTR: number,
Q_NORMAL_ATTR: number,
Q_GENERIC_ATTR: number,
DRACO_COMPRESSION_LEVEL: number,
ImagesPath: string,
KTX2_FIRST_FILE: number,
KTX2_FILE_COUNT: number,
KTX2_BATCH_SIZE: number,
KTX2FilesPath: string,
GEOMETRY_FRAME_RATE: number,
TEXTURE_FRAME_RATE: number,
AudioURL: string,
OutputDirectory: string
}Above is the type spec for the config file. It is not required to specify all the fields in the config file.
Let's start with mandatory fields.
Now, we discuss how geometry data is processed:
Followed by texture data processing:
Below paths must have the file pattern mentioned.
Frame numbers are calculated from the file names itself, Hence file names should be indexed (with padding). The manifest file also uses this notation in specifying DRCURLPattern and KTX2URLPattern. The indexing can be either 0 based indexing or 1 based indexing, but make sure it is consistent between Geometry files and Texture files. These indices are vital for the player to calculate the correct frame and render it with the right geometry/texture.
Here's a short sped up version of encoder on duty!
If you are proficient in C++, python, JS, Unity/C#, or you want to support this project creatively or financially, please get in touch!
Currently playback works in WebGL with three.js. Unity & Unreal support is on the roadmap.
For encoding, you will Python 3 and blender python package installed.
For decoding, currently WebGL is supported (especially three.js), Unreal and Unity will come in a future release.
You will need a mesh and texture sequence in ABC/OBJ and PNG/JPG formats respectively.
Find us on Discord! https://discord.gg/xrf
| Back | FazBrowse Home | New Git URL |