0
프래그먼트 쉐이더에서 오브젝트가 평면과 교차하는 선을 그립니다.프래그먼트 쉐이더에서 오브젝트와 플레인 간의 교차를 그립니다.
평면 방정식을 프래그먼트 셰이더 (a, b, c, d)에 전달하고 내 대상과이 균일 평면 간의 교차를 빨간색으로 그립니다.
나는 교차로의 폭에 상관없이 우리가 확대 얼마나 항상 동일하지 할
을 지금 내가로 조각 쉐이더에서 비행기 내 물체의 거리를 얻을 :.
// uPlane: vec4 where values are a.b.c.d (plane equation)
// vPos: wodlPosition of the fragment
vec4 prod = uPlane*vPos;
float distance = (prod.r + prod.g + prod.g + prod.a)/length(uPlane.xyz);
if(abs(distance) < 1.) {
gl_FragColor = vec4(1., 0., 0., .5);
} else {
gl_FragColor = vec4(0., 1., 0., .5);
}
이 방법의 문제점은 확대/축소시 교차점의 너비가 변경된다는 것입니다 (아래 스크린 샷 참조).
내 개체와 비행기 유니폼의 교차 부분에 "2px 너비"선을 그릴 때 가장 좋은 방법은 무엇입니까? 당신은 당신의보기/스케일링은 "줌 배율"을 설명해야
어떻게 든 하나의 해결책은 조각 위치를 평면에 투영 한 다음 어떻게 든 투영 화면 좌표를 계산 한 다음 투영 화면 좌표를 조각 화면 좌표와 비교하고 해당 정보를 사용하여 선을 그립니다 – Nicolas