OGRECave / ogre

scene-oriented, flexible 3D engine (C++, Python, C#, Java)
https://ogrecave.github.io/ogre/
MIT License
3.96k stars 975 forks source link

Double-precision build fails #2985

Closed eventhorizon5 closed 9 months ago

eventhorizon5 commented 10 months ago

Our project (https://www.skyscrapersim.net) is probably one of the few that uses Ogre in double-precision mode, in order to support very large environments, eventually we could probably move to a different method, but for now this is what we use.

Originally users reported a large drop in FPS when upgrading from Ogre 13 to 14.0.1, but the latest 14 appears to run better, so that might no longer be an issue. Currently I'm getting a number of build errors when building both the released 14.1.2 and the latest Git code of Ogre in double-precision mode, such as: /data/src/ogre-dev/OgreMain/src/OgreAutoParamDataSource.cpp: In member function ‘Ogre::Vector4f Ogre::AutoParamDataSource::getSpotlightParams(size_t) const’: /data/src/ogre-dev/OgreMain/src/OgreAutoParamDataSource.cpp:243:33: error: no match for ‘operator*’ (operand types are ‘Ogre::Matrix3’ and ‘Ogre::Vector3f’ {aka ‘Ogre::Vector<3, float>’})

I tried to fix a number of them by re-casting as floats, but decided to open a bug report about it instead. Thanks

paroj commented 10 months ago

can you provide a pull request with your fixes?