0
GLSL 쉐이더에서는 성능을 대폭 향상시키기 위해 테셀레이션 패치를 생략해야합니다. 이 패치는 각 정점에 주어진 월드 좌표를 갖는 삼각형입니다. 그러나 절두체 컬링을 위해이 좌표를 뷰 공간으로 변환하면 오차가 있습니다.보기 매트릭스로 도려내 기가있는 풀다운
이것은 원래 지형입니다.
이 오류가 상단에 영향을 미치는 방법이다.
이
먼지와 섹션의 근접 촬영입니다.이러한 오류는 화면의 상단뿐만 아니라 측면과 바닥의 주위에 namly 발생합니다. 다음은 GLSL에서 삼각형을 제외해야하는지 결정하는 데 사용하는 코드입니다.
bool inFrustum(vec3 p,vec3 q,vec3 r) {
vec4 Pclip = camera * vec4(p, 1.0f);
vec4 Qclip = camera * vec4(q, 1.0f);
vec4 Rclip = camera * vec4(r, 1.0f);
if(((-Pclip.w>Pclip.x&&-Qclip.w>Qclip.x&&-Rclip.w>Rclip.x)|| (Pclip.x>Pclip.w&&Qclip.x>Qclip.w&&Rclip.x>Rclip.w))||
((-Pclip.w>Pclip.y&&-Qclip.w>Qclip.y&&-Rclip.w>Rclip.y)||(Pclip.y>Pclip.w&&Qclip.y>Qclip.w&&Rclip.y>Rclip.w))||
((-Pclip.w>Pclip.z&&-Qclip.w>Qclip.z&&-Rclip.w>Rclip.z)||(Pclip.z>Pclip.w&&Qclip.z>Qclip.w&&Rclip.z>Rclip.w))){
return false;
}
else{
return true;
}
}
나는 어떤 도움을 주셔서 감사합니다! Behemyth
내 쉐이더에서
게시물에 넣은 노력에 감사드립니다. 나는 실수로 경로 추적 렌더러를 생성하여이 문제를 일주했습니다. 문제는 내 끝에서 진정으로 해결되지 않았으므로,이 질문은 모든 대답만큼 좋은 답변입니다. 도와 주셔서 감사합니다! – Behemyth