Review
여기까지 온 것을 축하한다! 만약 눈치챘다면, 모든 lighting 튜토리얼 전반에서, 우리는 기본적으로 uniform 배열에 접근하는 것 같은 사소한 것을 제외하고 OpenGL 그 자체에 대해 새로운 어떤 것을 배우지는 않았다. 지금까지 모든 튜토리얼들은 현실적인 조명 결과를 얻기위해 techniques와 공식들을 사용하여 쉐이더들을 조작하는 것에 대한 것이였다. 이것은 너에게 또 다시 쉐이더의 힘들을 보여주는 것이다. 쉐이더들은 매우 유연하고, 너는 직접 몇 가지 3D 벡터들과 몇 가지 설정가능한 변수들로, 우리는 놀라운 그래픽스를 만들 수 있었다는 것을 목격했다!
지난 튜토리얼에서 너는 colors, Phong lighting model (ambient diffuse specular lighting), object materials, configurable light properties, diffuse and specular maps, different types of lights 그리고 모든 그러한 지식을 한 프로그램에 합치는 것을 배웠다. 다른 조명, material colors, light properties를 가지고 실험해보아라. 그리고 조금의 창조성의 도움으로 너만의 환경을 만들려고 노력해라.
다음 튜토리얼에서 우리는 우리가 이야기한 조명 모델에서 좀 더 좋아 보이는 scene에 대해 좀 더 멋진 shapes들을 추가할 것이다.
Glossary
- Color vector : red, green 그리고 blue 컴포넌트의 (RGB로 축약되는) 조합을 통해 실 세계의 색의 대부분을 묘사하는 벡터. 한 오브젝트의 컬러는 실제로 한 오브젝트가 흡수하지 않는 반사된 color components이다.
- Phong lighting model : ambient, diffuse and specular component를 연산하여 실제 세계의 조명을 근사하는 모델
- Ambient lighting : 오브젝트들이 빛을 받지 않으면 완전히 어둡게 되지 않도록 하기 위해, 각 오브젝트에게 작은 밝기를 부여하여 global illumination을 근사화함
- Diffuse shading : light source에 vertex/fragment가 일직선에 있을수록 좀 더 강해지는 조명. 각을 계산하기 위해 법선 벡터를 이용한다.
- Normal matrix : translation이 없는 model (or model-view) matrix이 3x3 maxtrix. non-uniform scaling을 적용할 때 올바른 방향을 향하도록 normal vectors를 유지하도록 (inverse-transpose)방법으로 수정된다.
- Specular lighting : viewer가 표면에서 광원의 반사를 더 가까이 볼 수록, specular highlight를 설정한다. viewer의 방향을 기반으로하여, 빛의 방향과 highlight의 흩뿌려짐의 양을 설정하는 shininess value.
- Phong shading : fragment shader에 적용되는 Phong lighting model
- Gouraud shading : vertex shader에 적용된 Phong lighting model. 더 적은 개수의 정점을 사용할 때 눈에 띌만한 artifacts를 만들어낸다. 시각적 퀄리티 손실 때문에, 효율성을 얻음.
- GLSL struct : shader 변수들을 위해 하나의 container로서 작동하는 C언어 같은 구조체. 대개 input/output/uniforms을 구성하기위해 사용된다.
- Material : 한 오브젝트가 반사시키는 ambient, diffuse and specular light. 이러한 것은 한 오브젝트가 가지는 색을 설정한다.
- Light (properties) : 한 빛의 ambient, diffuse and specular intensity. 이러한 것들은 어떤 color value를 취할 수 있고, 광원이 각 specific Phong component에 대해 어떤 color/intensity로 빛나는지에 대해 정의할 수 있다.
- Diffuse map : fragment마다 diffuse color를 설정하는 texture image
- Specular map : fragment마다 specular intensity/color를 설정하는 texture map. 오직 한 오브젝트의 특정 구역에서만 specular highlight를 허용한다.
- Directional light : 오직 방향만을 가진 광원. 그것은 무한한 거리에 있도록 모델링 되어지고, 모든 그것의 광선들이 평행한 것 처럼 보이는 효과를 갖게 모델링 된다. 그리고 그것의 방향벡터는 따라서 전체 scene에서 같게 된다.
- Point light : scene에서 거리에 따라 옅어지는 빛과함께, 위치를 가진 광원
- Attenuation : 거리에 따라 그것의 강도를 줄이는 빛의 과정. point lights와 spotlights에서 사용된다.
- Spotlight : 한 특정한 방향으로 cone에 의해 정의되는 광원
- Flashlight : viewer의 관점으로부터 위치한 spotlight
- GLSL uniform array : uniform 값들의 한 배열. C의 배열같이 작동한다. 그것들이 동적으로 할당될 수 없는 것을 제외하고.
댓글 없음:
댓글 쓰기