mirror of
https://github.com/Kelsidavis/WoWee.git
synced 2026-03-23 07:40:14 +00:00
Performance optimizations and collision improvements
Performance:
- Remove expensive inverse() from all vertex shaders (terrain, WMO, M2, water, character)
- Add uniform location caching to avoid repeated glGetUniformLocation calls
- Add proper frustum culling for WMO groups using AABB intersection
- Add distance-based culling for WMO and M2 instances
- Add cleanup of unused M2/WMO models when tiles unload
Collision & Movement:
- Add M2 doodad collision detection (fences, boxes, etc.)
- Reduce character eye height (5.0 -> 1.8) and collision radius (2.5 -> 0.5)
- Enable WoW-style movement speed by default (14 units/sec run, 5 walk, 9 back)
- Fix emote grammar ("You waves." -> "You wave.")
Misc:
- Rename window title to "Wowee"
This commit is contained in:
parent
0c85fcd444
commit
4287878a73
16 changed files with 258 additions and 32 deletions
|
|
@ -84,7 +84,7 @@ bool Renderer::initialize(core::Window* win) {
|
|||
|
||||
// Create camera controller
|
||||
cameraController = std::make_unique<CameraController>(camera.get());
|
||||
cameraController->setMovementSpeed(100.0f); // Fast movement for terrain exploration
|
||||
cameraController->setUseWoWSpeed(true); // Use realistic WoW movement speed
|
||||
cameraController->setMouseSensitivity(0.15f);
|
||||
|
||||
// Create scene
|
||||
|
|
@ -767,6 +767,9 @@ bool Renderer::loadTestTerrain(pipeline::AssetManager* assetManager, const std::
|
|||
if (wmoRenderer) {
|
||||
cameraController->setWMORenderer(wmoRenderer.get());
|
||||
}
|
||||
if (m2Renderer) {
|
||||
cameraController->setM2Renderer(m2Renderer.get());
|
||||
}
|
||||
if (waterRenderer) {
|
||||
cameraController->setWaterRenderer(waterRenderer.get());
|
||||
}
|
||||
|
|
@ -876,10 +879,13 @@ bool Renderer::loadTerrainArea(const std::string& mapName, int centerX, int cent
|
|||
}
|
||||
}
|
||||
|
||||
// Wire WMO and water renderer to camera controller
|
||||
// Wire WMO, M2, and water renderer to camera controller
|
||||
if (cameraController && wmoRenderer) {
|
||||
cameraController->setWMORenderer(wmoRenderer.get());
|
||||
}
|
||||
if (cameraController && m2Renderer) {
|
||||
cameraController->setM2Renderer(m2Renderer.get());
|
||||
}
|
||||
if (cameraController && waterRenderer) {
|
||||
cameraController->setWaterRenderer(waterRenderer.get());
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue