4D 동종 공간에서 클리핑 할 때 GPU가 실제로 수행하는 작업에 대한 세부 정보


10

작은 소프트웨어 렌더러를 구현하여 프로그래밍 가능한 렌더링 파이프 라인을 배우고 있습니다. '하드웨어'스타일로 구현하려고합니다. 그러나 GPU 파이프 라인에 익숙하지 않고 동종 클리핑 문제가 있습니다.

균질 한 클리핑 공간에는 각 정점에서 다양한 w 변수를 . 각 정점 객체의 균질 좌표 (투영 행렬과 균질 분할 사이)가 자체 클리핑 공간에 있습니까? 그렇다면 선과 삼각형을 절두체보다 가깝게 자르거나 카메라 뒤에서 스트레칭하는 방법 (예 : w <= frustum_znear)?

업데이트 : 이 스레드 는 동종 공간에서의 클리핑이 4D 동종 공간에서의 교차 문제라고 말합니다. 교차점이을 의미합니다 p_vec4 = t * point1_vec4 + (1 - t) * point2_vec4. 내가 4D 균질 한 공간을 가지고 P0(-70, -70, 118, 120)있고P1(-32, -99, -13, -11)plane w = -z (NDC이다의 어느 Z = -1)되는 (-35, -96, -1, 0.9) t = 0.99, 방법 NDC 공간에서의 정점 오브젝트 corrresponding를 얻을?

그리고 올바른 교차점을 얻은 후에는 꼭짓점 셰이더로 생성 된 꼭짓점 객체간에 보간을 수행하여 새로운 꼭짓점 객체를 가져와야합니까?


이것은 하나의 게시물에 대해 너무 많은 질문으로 나에게 영향을 미치며 아마도 분리되어야합니다. 일반적인 규칙은 게시물 당 하나의 질문 (또는 적어도 핵심 질문)입니다.
Pikalek

@Pikalek 다른 두 가지 질문을 제거 하고이 스레드를 합리적으로 만들려고합니다. 조언 해 주셔서 감사합니다.
stanleyerror

답변:


1

클리핑은 4D 공간이 아닌 'w'나누기 전에 3D 공간에서 수행됩니다.

GPU는 뷰 프러스 텀의 근거리 및 원거리 평면 또는 6 개의 3D 평면을 모두 찾아서 Geo를 여기에 클립합니다.

w 분할이 완료된 경우 좌표 표시가 눈 / 카메라 뒤의 정점에 대해 뒤집 힙니다.

w 분할 전에 먼 평면 만 3D 클립에 사용되는 경우 x & y 평면의 래스터 화 단계에서 2D 클리핑에만 의존 할 수 있습니다.


W는 Z와 직접 관련된 프로젝션 디바이더 일 뿐이며 실제로 4 차원이 아닙니다. 4x4 매트릭스는 편리한 형식으로 번역 및 프로젝션 디비전을 포함하는 "핵"입니다. 위치가 (x, y, z, 1)로 암시되고 법선이 (x, y, z, 0)으로 암시되기 때문에 작동합니다.

그러나 실제로는 4 개의 독립적 인 차원이 아닙니다.

1 또는 0이 아닌 "W"의 다른 값은 지오메트리는 거의 의미가 없으며 변환을 끄는 편리한 온 / 오프 스위치입니다.


0

동종 클립 공간 좌표를 표준화 된 장치 좌표 (NDC) 좌표로 변환하는 방법을 묻는 경우 프로세스는 다음과 같습니다. <x y z w> → <x/w y/w z/w>

이 GDSE Q / A on 클립 공간이 항상 "동종 클립 공간"이라고하는 이유는 무엇입니까? 도움이 될 수도 있습니다.


1
답변 주셔서 감사합니다. 그러나 내 문제는 보간에 관한 것입니다. 3D 눈 좌표 아래의 두 점 e1, e2가 4D 균질 클리핑 공간 h1, h2에 투영된다고 가정하십시오. 그런 다음 4D 균질 공간에서 보간을 수행합니다. 세그먼트 h1-h2는 4D 점 h (t) = t * h1 + (1-t) * h2에서 잘립니다. 일반성을 잃지 않고 래스터 화 단계에 h1-h (t) 부분 (보기)이 공급된다고 가정합니다. 따라서 해당 정점 속성을 생성해야합니다 (정점 셰이더의 출력 형식과 동일). 내 질문은 이러한 새로운 정점의 속성을 생성하는 방법입니다.
stanleyerror

내 이해는 HCS에서 보간이 수행되지 않지만 실수 할 수 있다는 것입니다. 더 많은 / 더 나은 답변을 얻지 못하면 다시 요청하거나 마이그레이션 할 수 있습니다.
Pikalek

확인. 이 스레드를 직접 SO로 마이그레이션 할 수 있습니까, 아니면 새로운 질문을 다시 열어야합니다.
stanleyerror

다시 요청하라는 나의 실수; 교차 게시는 일반적으로 권장하지 않습니다 .
Pikalek

관리자가 tho로 마이그레이션 할 수 있다고 생각합니다.
Sidar
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.