Pregunta

Estoy creando una biblioteca .NET que genera datos para un mundo 3D, pero no hace nada de la representación misma. Se encuentra en XNA, DirectX, OpenGL, etc. para representarlo en función de los datos (el codificador final hace esto). Quiero proporcionar los datos del mundo en un formato que tenga más sentido. En XNA, "Z" entra en la pantalla ", X" va a la izquierda, y "Y" baja (según mis pruebas). Puedo entregar los datos mundiales en este mismo formato, pero no quiero que dependa de XNA. ¿Es este el formato más común para la orientación de los ejes? Siempre visualizo las cosas como "Z" como arriba y "Y" en la pantalla, por lo que iba a entregar los datos mundiales en este formato y simplemente convertirlos en mi XNA Bootstrapper, pero si nadie más Utiliza los datos con esa orientación, entonces parece una tontería entregarlos así.

Muy agradecido por cualquier consejo. Gracias.

Además, los datos mundiales son básicamente datos de terreno, por lo que tiene una estructura lógica para lo que debería ser arriba y abajo: montañas, etc.

¿Fue útil?

Solución

Sí, en la programación de videojuegos, porque DirectX fue la biblioteca 3D más popular durante un tiempo, la mano izquierda X a la derecha, y a la parte superior, Z delantero fue y sigue siendo la convención del eje más común utilizada.

Sin embargo, tenga en cuenta que las clases de matemáticas XNA se han cambiado a una convención de la derecha, por lo que si desea trabajar en un sistema zurdo, tendrá que invertir algunos resultados, como los productos cruzados.

Otros consejos

No hay un sistema de coordenadas "universal".

OpenGL ha usado típicamente diestro de forma predeterminada. Direct3D ha utilizado típicamente sistemas de coordenadas zurdos de forma predeterminada. Sin embargo, ambos pueden manejar sistemas de coordenadas izquierda o derecha. Incluso con esto, sin embargo, hay varias formas de traducir las coordenadas mundiales a la vista, y diferentes sistemas utilizan diferentes convenciones.

Si está haciendo algo que generará modelos y quiere que lo use ningún Sistema subyacente, probablemente haría que su biblioteca sea mucho más útil para poder tener un sistema de coordenadas proporcionado por el usuario y construirla. Hacer las transformaciones es relativamente sencilla.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top