Direct3D11 uygulamasında, birkaç saatliğine çözmeyi denediğim tuhaf bir sorunum var.Matrisler çökmeye neden oluyor
m_ViewMatrix = XMMatrixLookAtLH(vecPosition, vecLookAt, vecUp);
nasılsa uygulama çökme (anahtarlar doğru cevap vermeyen) neden olur: o çizgiye ulaşana kadar
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);
}
Yolunda: Sorun o yöntemdir. Gerçek aramalar benzemesi burada
Ve geçerli: bu bir sorun değil yani öncesinde
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);
, Vertex ve Piksel shader, sadece iyi derlemek. Muhtemelen xnamath ile yanlış bir şeyler yapıyorum (onunla tamamen yeni yaşıyorum), ama Dünyada ne olabileceği hakkında hiçbir fikrim yok. Şimdiden teşekkürler. Gerekirse daha fazla bilgi vereceğim.
Edit @ 1: Düzinelerce değişiklikle Projeksiyon ve Dünya matrislerinin çalışmasını sağladım. Yine de View matrix'i ayarlayamıyorum. Kodu değiştirdim, bu yüzden gerçek olanla eşleşiyor ve önemli olmayan şeylerden kurtuluyor.
Düzenleme 2 @: Son dakikada gelen dakika haberi: orada yerel değişkene sonucu kurtarmaya karar çünkü XMMatrixLookAtLH fonksiyonu ile ilgili bir sorun değildir ve çalışır, ancak ben sınıfa sonuç matrisi atamak istiyorsanız üye o zaman kazayı alıyorum. Bu kesinlikle ilginç.
Yöntemi hata ayıklamayı deneyin ve m_ViewMAtrix işaretçisinin değerini öğrenin. –
Tamam, ben de aynı hatayı alıyorum. XMMatrixLookAtLH veya herhangi bir XNA işlevini hesaplamaya çalıştığında kod gizemli bir şekilde çöküyor. – Caesar
Bazı şeyleri denedikten sonra, modumu 64x derlemeye ayarlayarak çalıştım.Yine de bunun neden olduğuna dair bir cevap arıyorum. – Caesar