부드러운 접선 공간 법선을 사용하여 범프 매핑에서 다면체 모양을 제거하는 방법
범프 매핑을 통합하려는 노력 중에 사용자는 다음에서 다면체 모양을 접할 수 있습니다. 그들의 모델. 이는 모델 파일에 제공된 법선을 무시하고 면당 접선, 종법선 및 법선 값을 계산하기 때문에 발생합니다.
이 문제를 해결하려면 대신 정점당 이러한 값을 계산하는 것이 좋습니다. 한 가지 접근 방식은 모델에 제공된 법선을 활용하고 이를 부드럽게 만들어 다면적인 모양을 제거하는 것입니다. 방법은 다음과 같습니다.
정점별 값을 위한 공간 만들기:
double N[3]; //normal int cnt;
정점별 초기화 :
N={0.0,0.0,0.0} cnt=0;
면별 법선 계산:
각 면의 법선을 계산합니다. 법선이 1.0 길이로 정규화되었는지 확인합니다. 이 법선을 면에 사용된 모든 정점에 추가하고 각 정점에 대해 cnt를 증가시킵니다.
정점별 정규화:
N/=cnt; // N = average normal from all vertex - neighbour faces
사용되지 않은 정점에 대해 cnt가 0이 되는 것을 주의하세요(0으로 나누기 방지).
접선 및 종법선 벡터 계산(TBN 행렬):
N의 정점별 값을 정규화한 후 기존 방법을 사용하여 TBN 행렬에 대한 접선(T) 및 이중 법선(B) 벡터를 계산합니다.
부드러운 출력:
이 접근 방식을 사용하면 이제 각 정점에 부드러운 법선이 포함됩니다. 이렇게 하면 출력된 이미지가 부드럽게 표시됩니다.
이러한 단계를 따르면 사용자는 범프 매핑 모델에서 다면체 모양을 효과적으로 제거하고 부드러운 접선 공간 법선을 얻을 수 있습니다.
위 내용은 탄젠트 공간 법선을 스무딩하여 부드러운 범프 매핑을 달성하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!