Spectre wrote: Wed Apr 14, 2021 7:06 pm
Yes, I'm creating mesh from raw data via binding buffers, which is done via v1 mesh, that is then imported into v2 mesh. How do I control how the import treats vertex data? V1 mesh is created with VET_FLOAT3 as VES_POSITION.
At some point you are either calling MeshManager::createByImportingV1 (new Ogre versions) or Mesh::importV1 (older versions).
Both functions accept the following arguments:
Code: Select all
bool halfPos, bool halfTexCoords, bool qTangents
Set "halfPos" and "halfTexCoords" to false instead of true.
If you're importing using OgreMeshTool, do not use the "-O pu" flag ("-O qs" is fine)
Spectre wrote: Wed Apr 14, 2021 7:06 pm
How do simd computations tie into node positions?
When compiled with SSE2 flag (on by default), Ogre performs most computation from SceneNodes position using SSE2. The
changes section in the manual describe it.
Spectre wrote: Wed Apr 14, 2021 7:06 pm
Can you elaborate on how to compile Ogre without that flag, or, where can I read about changing compilation settings?
Compile
Ogre from source and turn off OGRE_SIMD_SSE2 from CMake GUI.
The
build scripts make it much easier, but you'll have to edit the commands:
Where it says:
Code: Select all
%CMAKE_BIN% -D OGRE_USE_BOOST=0 -D OGRE_CONFIG_THREAD_PROVIDER=0 -D OGRE_CONFIG_THREADS=0 -D OGRE_BUILD_COMPONENT_SCENE_FORMAT=1 -D OGRE_BUILD_SAMPLES2=1 -D OGRE_BUILD_TESTS=1 -D OGRE_DEPENDENCIES_DIR=..\..\ogre-next-deps\build\ogredeps -G %GENERATOR% -A %PLATFORM% ..
Change it for:
Code: Select all
%CMAKE_BIN% -D OGRE_USE_BOOST=0 -D OGRE_CONFIG_THREAD_PROVIDER=0 -D OGRE_CONFIG_THREADS=0 -D OGRE_BUILD_COMPONENT_SCENE_FORMAT=1 -D OGRE_BUILD_SAMPLES2=1 -D OGRE_BUILD_TESTS=1 -D OGRE_DEPENDENCIES_DIR=..\..\ogre-next-deps\build\ogredeps -D OGRE_SIMD_SSE2=0 -G %GENERATOR% -A %PLATFORM% ..
Spectre wrote: Wed Apr 14, 2021 7:06 pm
What are repercussions of turning off sse2 for ogre?
Merely lower performance. But it may also have greater precision due to how handling floats in SSE works.