Pregunta

Estoy usando SlimDX / C # para escribir una aplicación Direct3D. Configuré la cámara según el cuadro de texto:

private float cameraZ = 5.0f;
camera = new Camera();
camera.FieldOfView =(float)(Math.PI/2);
camera.NearPlane = 0.5f;
camera.FarPlane = 1000.0f;
camera.Location = new Vector3(0.0f, 0.0f, cameraZ);
camera.Target = Vector3.Zero;
camera.AspectRatio = (float)InitialWidth / InitialHeight;

El método de dibujo y rotación son todos decentes Matrix.RotationYawPitchRoll y mesh.DrawSubset (0) . Todo lo demás parece normal.

Mi problema es que mi malla 3d (caja cuadrada delgada), cuando se mira desde un lado y está vertical, aparece más gruesa que cuando está horizontal. He intentado cambiar el AspectRatio a 1, es peor. Entonces, a través de prueba y error, descubrí que parece muy normal cuando el AspectRatio es alrededor de 2.6. ¿Por qué es eso y qué podría estar mal?

¿Fue útil?

Solución

Ya descubrí el problema y respondo.

Aparentemente escalé la malla, y para que coincida con la relación de aspecto, y apliqué Matrix.Scaling después de Matrix.RotationYawPitchRoll. Cuando giro la malla hacia adelante solo me doy cuenta de que se ve igual sin importar vertical u horizontalmente, la escala se estira de lado sin importar cómo gire. Cambiar la matriz 2 soluciona mi problema. Gracias de todos modos

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