2012-11-30 2 views
3
나는 연기 렌더러에서 전방위 그림자 매핑을 구현했지만 문제가이 문제를 해결하는 데

: shadow problem example는 전 방향 쉐도우 매핑 스팟 조명

이 난 그냥 여섯 자리를 배치 할 때 무슨 일이 있었는지입니다 : 여기

는 사진입니다 양 및 음의 방향으로 각 축을 지시하는 조명. 나는이 문제가 점등 계산에 의해 원뿔의 조명을 조명에 유지시켜주기 때문에 그것이 원형임을 알 수 있습니다.

첫 번째 생각은 원뿔 계산을 비활성화하는 것이 었습니다.하지만 분명히 빛이 서로 섞여 있기 때문에 하나의 빛에서 다른 빛으로 볼 때 겹쳐지기 때문입니다. 원뿔 모양에서 정사각형 기반의 피라미드로 렌더링되는 도형을 변경하면 (그러면 어쨌든해야 할 것 같습니까?) 나는 대신에 (이미 가지고있는) 빛의 절두체를 사용할 수있게 될 것입니다. 현재 픽셀이 절두체 안쪽에 떨어지는 지 테스트하려면 원추형 계산을 수행해야합니다.

그렇다면 누구나 픽셀 쉐이더에서이 작업을 수행하는 가장 좋은 방법은 무엇일까요? 포인트가 절두체의 각 평면 앞에 있는지 확인하는 것만으로 생각했지만 픽셀 쉐이더에서는 비용이 많이 드는 것처럼 보입니다.

+0

같은 질문을 삭제하고 다시 묻는 것은 질문에 대한 답변을 얻는 것이 아닙니다. 실제로 사람들이 요청한 질문에 * 정보를 넣음으로써 답을 얻을 수 있습니다. –

+0

"* 이것은 양의 방향과 음의 방향으로 각 축을 따라 6 개의 스포트 라이트를 배치했을 때 일어난 일입니다. *"실제로 그렇게 할 수있는 것은 무엇입니까? * point light *를 원하면 point light를 사용하십시오. 스팟 라이트를 수행하는 방법을 보여준 온라인 지연된 쉐이딩 예제의 코드를 복사하여 붙여 넣기하고 있습니까? –

+0

이전 질문을 삭제하는 것에 대해 유감스럽게 생각합니다. 다시 입력하지 않았습니다. 다시 말하면서 바꿔 치기했습니다. 그림자 매핑을 처리하는 것을 멍청히 생략했습니다. 점 광원을 추가하는 것에 대해 묻지 않았습니다. 올바르게 작동합니다. "실제로 그렇게 할 수있는 것은 무엇입니까?" 내 질문에 대한 포인트 라이트를 모델링하는 데 6 점등을 사용해야하는 포인트 라이트와 그림자 매핑, 좋은 설명이 altdev 블로그 기사를 읽는 것이 좋습니다 http://www.altdevblogaday.com/2011/01/30/omn-directional-shadow-mapping/ – user1848064

답변

0

당신은 6 frustums을 가지고 있지만

  1. 는 당신이 각면은 두 개의 이웃 frustums에 의해 공유되는
  2. 무한 피라미드에 그냥 여부, 앞 또는 뒷면의 얼굴을 확인하지 않아도됩니다
  3. 각면이 뒤로

이것에만 액세스해야하는 그림자지도 표시 총 6 개면에 대해 화소를 확인해야 함을 의미 대향 프러스 텀에 의해 미러링된다.