에 z 버퍼를 구현하는 과정에서 소프트웨어 래스터 라이저를 작성합니다. 나는 내 z 버퍼링이 잘 작동하지 않는다는 것을 알아 차렸다. 그래서 그것을 화면에 출력하여 디버깅하려고한다. (검은 색이 가깝고 흰색이 멀리 있습니다.)숙제로 소프트웨어 래스터 라이저
그러나 꼭지점 z에 대한 특이한 값을 얻고 있습니다.
float Camera::GetZToPoint(Vec3 a_Point)
{
Vec3 camera_new = (m_MatRotation * a_Point) - m_Position;
return (HALFSCREEN/tanf(_RadToDeg(60.f * 0.5f))/camera_new.z);
}
m_MatRotation
는 3 × 3 행렬이 내가 포인트를 변환하는 데 사용하는 것입니다. 이것을 벡터로 곱하면 변환 된 벡터가 반환됩니다.
0과 x 사이의 최대 값과 최소값을 얻습니다. 여기서 x는 임의의 숫자입니다.
이 변환 작업을 올바르게하고 있습니까? 그렇다면 두 세트 포인트 사이에 있도록 Z 값을 정규화하려면 어떻게해야합니까? 사전에
감사합니다.