Multitexture 2.04
Multitexture 2.04 — Quick User Guide
Step 1: Load Your Base Textures
Open the Material Editor. Assign a VRayMtl (or Standard material) and load Multitexture 2.04 into the Diffuse slot. You will see 16 slots labeled "Layer 1" to "Layer 16".
- Layer 1: Clean stone texture (stone_diffuse.jpg)
- Layer 2: Dirt overlay (dirt_mask.png)
- Layer 3: Moss patches (moss_diffuse.jpg)
- Layer 4: Puddle reflection (water_specular.jpg)
Installation and Setup: Getting Multitexture 2.04 to Work Today
Disclaimer: Multitexture 2.04 is legacy software. It is not compatible with 64-bit versions of 3ds Max 2020 or newer without compatibility layers. However, archival users running 3ds Max 2010-2014 (32-bit) can still install it.
The Dark Art of Register Combiners (NVidia)
The true deep magic of 2.04 was only unlocked on NVidia hardware via the GL_NV_register_combiners extension. Suddenly, you weren't chaining texture stages—you were programming a tiny SIMD machine inside the GPU. multitexture 2.04
You had:
- 8 general-purpose registers (R0–R7)
- Discard masks, swizzles, and sum-of-products operations
- Final combiner for the last stage
A typical 2.04 register combiner setup looked like this pseudocode: Multitexture 2
// Stage 0: Diffuse * Lightmap (RGB) R0.rgb = TEX0.rgb * TEX1.rgb// Stage 1: Dot3 bump (stores result in alpha) R1.rgb = TEX2.rgb (normal map) R1.a = DOT3(R1.rgb, CONSTANT_LIGHT_DIR)
// Stage 2: Combine R2.rgb = R0.rgb * R1.a // lightmapped diffuse * bump lighting R2.rgb = R2.rgb + SPECULAR_TEX3.rgb Layer 1 : Clean stone texture (stone_diffuse
Output = R2
This wasn't programming. This was alchemy. Every register was precious. You'd debug by flipping swizzles and watching the colors shift. If you ran out of registers, you'd sacrifice specular highlights or move detail maps to a second pass.
2.1 Fixed-Function Multitexture
Early multitexturing (e.g., OpenGL 1.3) used glTexEnv to combine layers via GL_MODULATE, GL_DECAL, or GL_BLEND. Limitations included only two sources per stage and no per-pixel layer weights.
Key concepts
- Layers: Independent textures stacked; each has blend mode, opacity, transform, and mask.
- Blend modes: Normal, Multiply, Add, Overlay, Screen, and custom shader blends.
- Masks: Grayscale images or procedural generators that control per-layer visibility.
- Tiling & UV transform: Scale, rotate, offset per layer; can use world or object-space UVs.
- Channels: Support for RGB, alpha, and packing multiple maps (e.g., roughness in R, metallic in G).
- LOD / streaming: Mipmapping and LOD bias settings for performance and memory.
- Compression & formats: Common formats with presets (PNG/TGA for authoring; compressed GPU formats for runtime).