티스토리 뷰
Camera 도 날 엿먹이는 구먼
MS의 첨병이 Right hand 를 쓸줄은..
설명 잘되어있다.
x,y 축에 z가 붙는 방향은 정의에 따라 달라지는 거고
Cross product는 그 z 방향으로 (1, 0, 0) 을 내놓을 뿐이다.
이런 관점에서 볼때, 구분 가능한 사실은
// Compute actual up vector
up = Cross(right, forward);
Right 와 forward가 들어오고 Up은 (0, 1, 0) 이 쓰여진다면
RH 이다.
if (m_ReverseZ)
{
Q1 = m_NearClip / (m_FarClip - m_NearClip);
Q2 = Q1 * m_FarClip;
}
else
{
Q1 = m_FarClip / (m_NearClip - m_FarClip);
Q2 = Q1 * m_NearClip;
}
SetProjMatrix( Matrix4(
Vector4( X, 0.0f, 0.0f, 0.0f ),
Vector4( 0.0f, Y, 0.0f, 0.0f ),
Vector4( 0.0f, 0.0f, Q1, -1.0f ),
Vector4( 0.0f, 0.0f, Q2, 0.0f )
) );
-1.0 factor 도 그 증거 그리고 Q1, Q2 도 그 증거가 된다
헷갈린건 NDC는 LH로 고정된게 아니라 앞단의 정의에 따라 바뀐다는 거다
당연한 건데, OpenGL (RH) 가 NDC에서는 LH 로 바뀐다는 comment 땜시;
RH - Reverse Z
RH - Stanard Z
RH 에선 먼게 0 이다
http://dev.theomader.com/linear-depth/
라고 생각했는데,
이건 RH 고 reverse Z 인데 왜 저럼?
Linear Depth 는 왜 또 다르네
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크