바닥 오브젝트를 생성하는데 텍스처가 안 입혀지는 문제가 생겼다.
오브젝트 생성해서 사용할 때 메서드에서
위치, 텍스처, 노멀 세 가지의 버텍스 속성값을 입력받는데
텍스처만 입힐거라 노멀은 지정을 안해준게 문제였다.
코드 상으로는 버텍스 속성을 저장하는 메서드에는 노멀 속성을 안 넣어도 문제 없는데,
fragment shader에서 노멀값이 없으면 텍스처를 지정해주는 loadDiffuseMap 메서드가 작동하지 않는 구조였다.
(왜 그런지는 교수님께 여쭤보고 와야할 듯...
텍스처와 라이팅이 무슨 관계가 있는건지? 왜 DiffuseMap을 사용해서 texture을 지정해주는 건지?)
추가로 라이팅 관련해서 개념이 항상 헷갈렸는데
어디가 문제인지 찾아보면서 조금 정리해봤다.
우선 강의에서 사용하고 있는 라이팅 모델은 Phong Lighting Model이고,
이 라이텡 모델에서 사용하는 요소는 다음과 같이 3가지다.
- Ambient: 전반적인 빛
- Diffuse: 명암(노멀 벡터를 사용해서 정면을 바라보는 정도를 구함)
- Specular: 하이라이트 빛
내가 놓치고 있던 부분이
Diffuse lighting을 사용하기 위해서는 노멀 속성을 지정해줘야 한다는 거!
사진은 조금 무섭게 나왔지만 아무튼 해결!
'OpenGL > 그래픽스 프로그래밍 기말 프로젝트' 카테고리의 다른 글
작업 중 (0) | 2023.05.30 |
---|---|
[OpenGL] 그래픽스 프로그래밍 OpenGL 기말 과제 (0) | 2023.05.27 |