Pergunta

Eu estou usando SlimDX / C # para escrever um aplicativo Direct3D. Eu configurei a câmera como por meio de caixa 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;

O desenho e método de rotação são todos decente Matrix.RotationYawPitchRoll e mesh.DrawSubset(0). Tudo o resto parece normal.

O meu problema é que a minha 3d mesh (caixa quadrada fina), quando olhada de lado, e ficar na vertical, que aparecem mais espessa do que quando é horizontal. Eu tentei mudar o AspectRatio a 1, é pior. Então, por tentativa e erro, descobri que é parece muito normal quando o AspectRatio é de cerca de 2.6. Por que é que e que pode estar errado?

Foi útil?

Solução

Eu descobri o problema e resposta já.

Aparentemente eu fiz dimensionar a malha, e para coincidir com a relação de aspecto, e eu aplicar o Matrix.Scaling após Matrix.RotationYawPitchRoll. Quando eu girar a malha voltada para a frente somente eu perceber que ele tem a mesma aparência, não importa vertical ou na horizontal, a escala é alongamento Sideway não Mather como eu girar. Trocar a matriz 2 não resolver o meu problema. Obrigado de qualquer maneira

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top