목록Graphics/OpenGL (9)
momodudu.zip
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/dOhCeN/btrIxTZFa21/NV7qb5DOOU9Kk6j8M1KxEK/img.png)
vertex shader fragment shader 사이에는 optional programmble stage인 geometry shader가 존재한다. geometry shader는 하나의 primitive를 구성하는 vertex set을 받을 수 있다. Geometry shader는 이 입력으로 받은 primitive의 vertex들을 변형하고, 다음 stage로 보낸다. 여기서 Geometry shader는 단순히 primitive vertex만을 바꿔서 보내는게 아니라, primitive 자체를 바꿔서 완전히 다른 primitive로 다음 스테이지로 보낼 수 있다. 예를 들어서, Geometry shader stage로 들어온 Input Primitive는 Triangles였지만, Geometry..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bAZ4rm/btqyDDraryY/2KHxrb9nGeoZZ1ErPSu051/img.png)
이번 포스팅은 그래픽스에서 아주 기초적이고 간단한편이지만, 널리 쓰이는 퐁 조명 모델과 조명 적용에 관한 전반적인 설명이다. 퐁 조명은 총 4가지 항의 합으로 이루어진다. Diffuse, Specular, Ambient, Emissive light이다. Diffuse는 난반사를 의미하고, Specaular는 정반사, Ambient는 간접조명, Emissive light는 자체 발산광이라고 보면 된다. 난반사를 의미하며, 광원으로부터 점P까지의 벡터를 l, 점 P의 normal을 n으로 표현한다. 두 벡터 사이의 각이 작으면 작을수록 점 P는 더 많은 조명을 받게 될것이다. 즉, 벡터 l과 n이 정규화 되어있다면 점 P로 들어오는 빛의 양은 두 벡터의 내적값이라고 정의할 수 있다. 대신 조명을 받거나, 받..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/cCymZr/btqyANAUaQ9/LOkGgKQ8574fSwPaAJk9I0/img.png)
이번 포스팅은 texture 매핑에 관한 포스팅이다. 실제로 texturing이라고 하면, image, 즉 color값만을 mesh에 입히는것으로 생각할 수 있는데 실제 texture는 color뿐만아니라 normal이나 depth도 가질 수 있다. 어쨌든, texture filtering란 한 mesh의 정점(x,y)에 대해서 (u,v)를 mapping하면 텍셀(tx,ty)를 얻을 수 있는데, uv는 [0,1]로 normalize된 정규화 좌표이므로 (x,y)에 uv를 곱하게 되면 텍셀 좌표는 실제로 부동소수점 값이다. 이를 처리하기 위해서 한 텍셀을 처리할 때 주변 텍셀들의 정보를 참고하고 결합하여 현재 텍셀을 결정한다. 이게 바로 texture filtering의 정의다. texture filter..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bpAxkx/btqyyUs4Y8D/W7CfdGKougkXHDjKubiMI1/img.png)
행렬 관련 포스팅은 전에도 glm 라이브러리를 쓰면서 간단하게 썼었는데, 변환 과정은 봐도봐도 부족하니까 오늘은 좀 더 응용단계? 그래픽스 이론 관점에서 보는 변환 행렬이다. 우리가 흔히 말하는 mvp매트릭스. 도대체 변환이 왜 이루어져야하고, 어떻게 이루어지는지에 대한 포스팅이다. 처음 그래픽스를 배울때 기초 이론이 없어서, 이걸 써야한다는건 알고 있었는데 도대체 왜쓰며, 무슨 원리인지에 대해 몇년동안 제대로 알지 못하고 썼다. 변환행렬 관련해서는 찾아봐도 별로 참고할만한 자료가 안나와서....(내가 못찾은걸수도) 직접 공부했던 내용들을 정리하면서 다시 써보고자 한다. 사실 OpenGL ES보다는 그래픽스 이론에 가까운 포스팅이다... 해당 포스팅은 라는 책을 많이 참고했다. 일단, transforma..