몇 시간 동안 이미 해결하려고하는 Direct3D11 응용 프로그램에 이상한 문제가 있습니다.크래시를 일으키는 행렬
m_ViewMatrix = XMMatrixLookAtLH(vecPosition, vecLookAt, vecUp);
는 어떻게 든이 응용 프로그램의 충돌 (스위치가 올바른 것으로 응답하지) 원인 : 그것은 그 라인에 도달 할 때까지
void CameraClass::Render()
{
XMFLOAT3 sUp, sLookAt, sRotationInRadians;
sUp.x = 0.0f;
sUp.y = 1.0f;
sUp.z = 0.0f;
sLookAt.x = 0.0f;
sLookAt.y = 0.0f;
sLookAt.z = 1.0f;
sRotationInRadians.x = m_Rotation.x * 0.0174532925f;
sRotationInRadians.y = m_Rotation.y * 0.0174532925f;
sRotationInRadians.z = m_Rotation.z * 0.0174532925f;
XMVECTOR vecLookAt = XMVectorSet(sLookAt.x, sLookAt.y, sLookAt.z, 0.0f);
XMVECTOR vecUp = XMVectorSet(sUp.x, sUp.y, sUp.z, 0.0f);
XMVECTOR vecPosition = XMVectorSet(m_Position.x , m_Position.y, m_Position.z, 0.0f);
XMMATRIX RotationMatrix(XMMatrixRotationRollPitchYaw(sRotationInRadians.x, sRotationInRadians.y, sRotationInRadians.z));
vecLookAt = XMVector3TransformCoord(vecLookAt, RotationMatrix);
vecUp = XMVector3TransformCoord(vecUp, RotationMatrix);
vecLookAt += vecPosition;
m_ViewMatrix = XMMatrixLookAtLH(vecPosition, vecLookAt, vecUp);
}
모두의 미세 : 문제는 그 방법이다. 실제 통화처럼 어떻게 여기
그리고이 : 그 문제가되지 않습니다 그래서 사전에
XMMATRIX ViewMatrix;
XMMATRIX ProjectionMatrix;
XMMATRIX WorldMatrix;
m_D3D->BeginScene(0.0f, 0.0f, 0.0f, 1.0f);
m_Camera->Render();
m_D3D->GetWorldMatrix(WorldMatrix);
m_D3D->GetProjectionMatrix(ProjectionMatrix);
, 버텍스 및 픽셀 쉐이더는 잘 컴파일합니다. 아마도 xnamath (나는 완전히 새로운 것)로 뭔가 잘못하고있는 것이지만 지구상에 무엇이있을 수 있는지 전혀 알지 못합니다. 미리 감사드립니다. 필요한 경우 더 많은 정보를 제공 할 것입니다.
편집 @ 1 : 수십 가지 변경 사항을 통해 나는 프로젝션과 월드 매트릭스를 작동시킬 수있었습니다. View Matrix를 설정할 수는 없지만. 코드를 변경하여 실제 코드와 일치하고 중요하지 않은 코드를 제거했습니다.
편집 2 @ : 마지막 순간에서 뉴스 속보 :이 난 지역 변수에 결과를 저장하기로 결정하기 때문에, XMMatrixLookAtLH 기능에 문제가되지 않습니다 그것은 작동하지만이 클래스에 결과 행렬을 지정하려면 회원이되면 충돌이 발생합니다. 그것은 가장 흥미로운 부분입니다.
메소드 디버깅을 시도하고 m_ViewMAtrix 포인터의 값을 확인하십시오. –
그래,이 똑같은 오류가 발생했습니다. 이 코드는 XMMatrixLookAtLH 또는 XNA 함수를 계산하려고 할 때 신비하게 충돌합니다. – Caesar
몇 가지 시도를 한 후에 마침내 64x 빌드로 내 모드를 설정하여 작업을 마쳤습니다.아직도 그것이 일어나는 이유에 대한 대답을 찾고 있습니다. – Caesar