C++ 용 DirectXTK를 사용하고 있으며 스프라이트 배치 기능을 많이 사용하고 있습니다.DirectxTK SpriteBatch 및 뷰포트 센터링
등각 렌더링 엔진을 개발하려고합니다. 나는 이미 등각 투영 렌더링을 제대로 수행했습니다. 상쇄와 함께. 그러나 나는 하나의 큰 문제에 부딪친 다.
나는 세상의 (0,0) 또는 다른 좌표로 카메라의 중심을 맞추는 방법을 생각할 수 없다.
그리고 SpriteBatch.Begin으로 카메라에서 직접 생성이 변환 행렬()
Matrix Camera::getTransformMatrix() {
Matrix Transform = Transform.CreateTranslation(Vector3(World_Pos.x, World_Pos.y, 0));
Matrix Rotation = Rotation.CreateRotationZ(0);
Matrix Scale = Scale.CreateScale(ZoomFactor, ZoomFactor, 1);
return Transform * Rotation * Scale;
}
아무것도 일어나지 보인다 주입 후
. 이것은 카메라의 월드 위치가 (0,0)으로 설정되고 스프라이트의 월드 위치가 (0,0)으로 설정된 상태입니다.이것은 결과 이미지입니다.
http://i.imgur.com/Bep7l5a.png
나는 이유를 디버깅 알파 블렌딩 및 스프라이트 오프셋을 해제.
아무도 도와 줄 수 있습니까? 또한 누군가가 y를 뒤집는 법을 말해 줄 수 있다면 그것은 좋을 것입니다.
DirectXTK를 사용하지는 않았지만'Camera :: getTransformMatrix()'에 의해 반환되는 변환 매트릭스를 적용하는 방법은 무엇입니까? –
@ Zamrony를 그대로 spritebatch.begin의 인수에 입력하여. – moonshineTheleocat