mirror of
https://github.com/Kelsidavis/WoWee.git
synced 2026-03-24 16:10: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
|
|
@ -92,7 +92,16 @@ void Shader::unuse() const {
|
|||
}
|
||||
|
||||
GLint Shader::getUniformLocation(const std::string& name) const {
|
||||
return glGetUniformLocation(program, name.c_str());
|
||||
// Check cache first
|
||||
auto it = uniformLocationCache.find(name);
|
||||
if (it != uniformLocationCache.end()) {
|
||||
return it->second;
|
||||
}
|
||||
|
||||
// Look up and cache
|
||||
GLint location = glGetUniformLocation(program, name.c_str());
|
||||
uniformLocationCache[name] = location;
|
||||
return location;
|
||||
}
|
||||
|
||||
void Shader::setUniform(const std::string& name, int value) {
|
||||
|
|
@ -123,5 +132,9 @@ void Shader::setUniform(const std::string& name, const glm::mat4& value) {
|
|||
glUniformMatrix4fv(getUniformLocation(name), 1, GL_FALSE, &value[0][0]);
|
||||
}
|
||||
|
||||
void Shader::setUniformMatrixArray(const std::string& name, const glm::mat4* matrices, int count) {
|
||||
glUniformMatrix4fv(getUniformLocation(name), count, GL_FALSE, &matrices[0][0][0]);
|
||||
}
|
||||
|
||||
} // namespace rendering
|
||||
} // namespace wowee
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue