How to convert Z-Up vertices to Y-Up vertices without breaking the winding order of a mesh. (DX9c)
<p>I have a C++ DirectX9 rendering engine with Y as my up axis. When I import a model that was modeled with Z as the up axis I simply swap the Y and Z  values of all of the model's the vertices to have the model correctly orientated. This works fine except for the fact that the winding orders of most (not all) of the meshes are wrong. </p>

<p>Since I render the model with back face culling enabled, the outer shell of the models are invisible and the internal shells are visible.</p>

<p>I've inverted the indices in an attempt to rectify the problem, and it works fine...but since not all the models suffers from the same wrong winding order, I sit with half of the models with correct winding orders and the other half with incorrect winding orders.</p>

<p>So I guess my question then is: How do I correctly convert a 3d model with Z as its up axis to a 3d model with Y as its up axis without breaking the winding order in the process.</p>

<p>Thanks in advance.</p>