Procedural Planet Generate(2) - Normal 생성

2018. 6. 12. 10:41프로그래밍/OpenGL

Vertex Normal 생성

  - 만들어진 지형의 정점을 참조하여 노말을 생성한다.



노이즈 함수를 이용해 생성된 지형을 렌더링 해보면...



와이어 프레임으로 렌더링 했을 때와는 달리 지형의 굴곡이나 높이 정보를 파악하기 어렵습니다.

물체의 형태는 음영과 그림자로 표현이 되는데, 둘 다 존재하지 않기 때문 입니다.


이 두 가지는 모두 빛과 관련이 되며, 이를 계산하기 위해서는 노말 정보가 필요합니다.


정점의 노말 정보를 구하기 위해서는


1. 현재 정점의 상, 하, 좌, 우 정점의 위치 정보를 가져온다.

2. 정점 정보를 참조하여 만들어지는 4개의 삼각 메쉬의 Face Normal을 구한다.

  - FaceNormal은 삼각메쉬의 두 벡터를 외적하여 구합니다. 

3. 만들어진 Face Normal을 가산하여 평균을 구한 후 정규화 한다.



[만들어진 노말 정보를 VertexColor로 표현한 결과]



[간단한 조명 계산을 한 결과]