mirror of
https://github.com/Kelsidavis/WoWee.git
synced 2026-03-25 16:30:15 +00:00
Ironforge Great Forge lava, magma water rendering, LavaSteam particle effects
- Add magma/slime rendering path to water shader (fbm noise, crust/molten/core coloring) - Fix WMO liquid height filter rejecting high-altitude zones like Ironforge (Z>300) - Allow interior WMO magma/slime MLIQ groups to load (skip only water/ocean) - Mark LAVASTEAM.m2 as spell effect for proper additive blend, hide emission mesh - Add isLavaModel flag for M2 ForgeLava/LavaPots UV scroll fallback - Add isLava material detection in WMO renderer for lava texture UV animation - Fix WMO material UBO colors for magma (was blue, now orange-red)
This commit is contained in:
parent
2c5b7cd368
commit
a24fe4cc45
10 changed files with 158 additions and 12 deletions
|
|
@ -119,6 +119,7 @@ struct M2ModelGPU {
|
|||
bool isElvenLike = false; // Model name matches elf/elven/quel (precomputed)
|
||||
bool isLanternLike = false; // Model name matches lantern/lamp/light (precomputed)
|
||||
bool isKoboldFlame = false; // Model name matches kobold+(candle/torch/mine) (precomputed)
|
||||
bool isLavaModel = false; // Model name contains lava/molten/magma (UV scroll fallback)
|
||||
bool hasTextureAnimation = false; // True if any batch has UV animation
|
||||
|
||||
// Particle emitter data (kept from M2Model)
|
||||
|
|
|
|||
|
|
@ -340,7 +340,9 @@ private:
|
|||
int32_t pomMaxSamples; // 36 (max ray-march steps)
|
||||
float heightMapVariance; // 40 (low variance = skip POM)
|
||||
float normalMapStrength; // 44 (0=flat, 1=full, 2=exaggerated)
|
||||
}; // 48 bytes total
|
||||
int32_t isLava; // 48 (1=lava/magma UV scroll)
|
||||
float pad[3]; // 52-60 padding to 64 bytes
|
||||
}; // 64 bytes total
|
||||
|
||||
/**
|
||||
* WMO group GPU resources
|
||||
|
|
@ -380,6 +382,7 @@ private:
|
|||
bool unlit = false;
|
||||
bool isTransparent = false; // blendMode >= 2
|
||||
bool isWindow = false; // F_SIDN or F_WINDOW material
|
||||
bool isLava = false; // lava/magma texture (UV scroll)
|
||||
// For multi-draw: store index ranges
|
||||
struct DrawRange { uint32_t firstIndex; uint32_t indexCount; };
|
||||
std::vector<DrawRange> draws;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue