데칼에 대한 정보를 찾는 데 문제가 있었 으므로이 질문이 다른 사람들에게 도움이 될 것입니다. 구현은 포워드 렌더러를위한 것입니다.
데칼 구현이 올바른지 누군가 확인할 수 있습니까?
- 공통 공간에서 투영 볼륨을 정의 할 차원의 큐브를 정의합니다. 투영이 영향을받는 삼각형을 받기 위해 정의 된 큐브와 삼각형 교차를 확인하십시오.
- 이 삼각형을 자르고 저장합니다.
- 그런 다음 매트릭스 트릭을 사용하여 투영중인 텍스처를 참조하는 저장된 삼각형의 UV 좌표를 계산합니다.
- 이렇게하려면 공통 공간에서 큐브의 높이, 너비 및 깊이를 나타내는 벡터를 가져 와서 왼쪽 아래 모서리가 원점이되도록합니다.
- i, j, k 단위 벡터로 행렬에 넣고 큐브의 변환을 설정 한 다음이 행렬을 뒤집습니다.
- 저장된 삼각형의 정점에이 행렬을 곱하면 UV 좌표로 사용하는 0 대 1 크기 큐브 내부의 좌표를 얻을 수 있습니다.
- 이 방법으로 투영중인 원래 삼각형이 있고 UV 좌표가 있습니다 (UV 좌표는 투영중인 텍스처를 참조합니다).
- 그런 다음 저장된 삼각형을 장면에 다시 렌더링하면 영사 이미지로 투영 영역을 덮어 씁니다.
이제 내가 찾을 수 없었던 질문들. 마지막 요점이 맞습니까? 나는 소프트웨어 클리핑을 한 번도 해본 적이 없지만, 제한된 정밀도로 인해 오류가 발생하기 쉬운 것처럼 보이며, 투영 된 텍스처에 대해 z 충돌이 발생할 수 있습니다. UV 좌표를 얻는 방법도 올바른가요?