LightWave 3D Rust Parser

https://crates.io/crates/lightwave-3d

Complete LWO2 parser for Rust.

Basic Usage

```rust use lightwave::LightWaveObject;

fn main() { LightWaveObject::read_file("path/to/file.lwo"); // or LightWaveObject::read(Cursor::new(vec![0x00, 0x01, ...])) } ```

LightWave Object (LWO2)

Fully feature complete following the LWO2 Spec.

| Chunk | Tag | Status | |--------------------------------------------|--------|--------| | Layer | LAYR | ✅ | | Point List | PNTS | ✅ | | Vertex Mapping | VMAP | ✅ | | Polygon List | POLS | ✅ | | Tag Strings | TAGS | ✅ | | Polygon Tag Mapping | PTAG | ✅ | | Discontinuous Vertex Mapping | VMAD | ✅ | | Vertex Map Parameter | VMPA | ✅ | | Envelope Definition | ENVL | ✅ | | Image (-Sequence) | CLIP | ✅ | | Surface Definition | SURF | ✅ | | Bounding Box | BBOX | ✅ | | Description Line | DESC | ✅ | | Commentary Text | TEXT | ✅ | | Thumbnail Icon Image | ICON | ✅ |

Envelope Subchunks

| Chunk | Tag | Status | |--------------------------|--------|--------| | Envelope Type | TYPE | ✅ | | Pre-Behavior | PRE | ✅ | | Post-Behavior | POST | ✅ | | Keyframe Time and Value | KEY | ✅ | | Interval Interpolation | SPAN | ✅ | | Plugin Channel Modifiers | CHAN | ✅ | | Channel Name | NAME | ✅ |

Clip Subchunks

| Chunk | Tag | Status | |----------------------|--------|--------| | Still Image | STIL | ✅ | | Image Sequence | ISEQ | ✅ | | Plugin Animation | ANIM | ✅ | | Reference (Clone) | XREF | ✅ | | Flag (Undocumented) | FLAG | ⚠️ | | Color-cycling Still | STCC | ✅ | | Time | TIME | ✅ | | Color Space RGB | CLRS | ✅ | | Color Space Alpha | CLRA | ✅ | | Image Filtering | FILT | ✅ | | Image Dithering | DITH | ✅ | | Contrast | CONT | ✅ | | Brightness | BRIT | ✅ | | Saturation | SATR | ✅ | | Hue | HUE | ✅ | | Gamma Correction | GAMM | ✅ | | Negative | NEGA | ✅ | | Plugin Image Filters | IFLT | ✅ | | Plugin Pixel Filters | PFLT | ✅ |

Surface Subchunks

Basic Surface Parameters

| Chunk | Tag | Status | |-----------------------------------|----------------------------------------------------------|--------| | Base Color | COLR | ✅ | | Base Shading Values | DIFF
LUMI
SPEC
REFL
TRAN
TRNL | ✅ | | Specular Glossiness | GLOS | ✅ | | Diffuse Sharpness | SHRP | ✅ | | Bump Intensity | BUMP | ✅ | | Polygon Sidedness | SIDE | ✅ | | Max Smoothing Angle | SMAN | ✅ | | Reflection Options | RFOP | ✅ | | Reflection Map Image | RIMG | ✅ | | Reflection Map Image Seam Angle | RSAN | ✅ | | Reflection Blurring | RBLR | ✅ | | Refractive Index | RIND | ✅ | | Transparency Options | TROP | ✅ | | Refraction Map Image | TIMG | ✅ | | Refraction Blurring | TBLR | ✅ | | Color Highlights | CLRH | ✅ | | Color Filter | CLRF | ✅ | | Additive Transparency | ADRT | ✅ | | Glow Effect | GLOW | ✅ | | Render Outlines | LINE | ✅ | | Alpha Mode | ALPH | ✅ | | Vertex Color Map | VCOL | ✅ | | Surface Blocks | BLOK | ✅ |

Surface Blocks

Ordinal Strings: * ✅ Image Texture Map IMAP * ✅ Procedural Texture PROC * ✅ Gradient Texture GRAD * ✅ Shader Plugin SHDR

Shared

| Chunk | Tag | Status | |-------------------------|--------|--------| | Texture Channel | CHAN | ✅ | | Enable State | ENAB | ✅ | | Opacity | OPAC | ✅ | | Displacement Axis | AXIS | ✅ | | Negative (Undocumented) | NEGA | ⚠️ |

Texture Mapping

| Chunk | Tag | Status | |---------------------|----------------------------|--------| | Positioning | CNTR
SIZE
ROTA | ✅ | | Reference Object | OREF | ✅ | | Falloff | FALL | ✅ | | Coordinate System | CSYS | ✅ |

Image Texture Map

| Chunk | Tag | Status | |-------------------------------------|------------------|--------| | Texture Mapping | TMAP | ✅ | | Projection Mode | PROJ | ✅ | | Major Axis | AXIS | ✅ | | Image Map | IMAG | ✅ | | Image Wrap Options | WRAP | ✅ | | Image Wrap Amount | WRPW
WRPH | ✅ | | UV Vertex Map | VMAP | ✅ | | Antialiasing Strength | AAST | ✅ | | Pixel Blending | PIXB | ✅ | | Sticky Projection | STCK | ✅ | | Texture Ampliture | TAMP | ✅ |

Procedural Texture

| Chunk | Tag | Status | |--------------------------|--------|--------| | Axis | AXIS | ✅ | | Basic Value | VALU | ✅ | | Algorithm and Parameters | FUNC | ✅ |

Gradient Texture

| Chunk | Tag | Status | |----------------|-------------------|--------| | Parameter Name | PNAM | ✅ | | Item Name | INAM | ✅ | | Gradient Range | GRST
GREN | ✅ | | Repeat Mode | GRPT | ✅ | | Key Values | FKEY | ✅ | | Key Parameters | IKEY | ✅ |

Shaders

| Chunk | Tag | Status | |------------------|--------|--------| | Shader Algorithm | FUNC | ✅ |