목록Graphics (14)
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/kHe3C/btqyQ58IGu1/VKKEkSKZltVrUIXetZ8Gv1/img.png)
카테고리를 그래픽스로 할까 OpenGL로 할까 굉장히 고민을 많이했다(...) 일단 이론쪽에 가까워서, 그래픽스 카테고리로 결정했다. 그래픽스 파이프라인에서 culling이란, "어떤것을 그릴 지 말지 결정하는 과정"이라고 정의내릴 수 있다. 보통 파이프라인 내에서 culling은 두 단계로 이루어진다. 첫 번째로, back-face culling이라고 불리우는 object를 구성하는 mesh 삼각형을 그릴지 말지 결정하는 단계다. 즉, 한개의 object가 여러개의 삼각형(또는 사각형..) mesh로 구성이 되어있는데, 카메라가 보여주는 부분은 한정적이기 때문에 카메라에 등을 돌리고 있는 부분은 사실 그릴 필요가 없다. 이 back-face culling은 GPU pipeline내의 primitive ..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bsUSVe/btqyOU1BfBc/NZOzMk9bwkW0Sg54c6KiJk/img.png)
matrix 변환 과정 중 rotation에 대해서는 이미 언급한적이 있다. 어떤 특정 하나의 축을 기준으로 회전시켰었다. https://ally10.tistory.com/13 #2 OpenGL/C++ glm library를 사용하는 간단한 예제들 음.. 매트릭스 관련해서 공부를 하고 있는데, glm 관련 예제가 별로 없어서 기록 겸 포스팅. 쓰기 어려운 라이브러리는 아닌데, 그냥 공부겸 기록겸.... 일단 개발 환경은 모두 세팅된 상태여야함. 나는 glfw/open.. ally10.tistory.com 하지만 사실 이 rotate를 수행하는데에는 두 가지 방법이 있다. 오일러각과 쿼터니언. 오일러각은, xyz를 세 축을 기준으로 회전하는 것을 의미한다. 예를들어서 우리가 x축으로 10만큼, y축으로 2..
![](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로 들어오는 빛의 양은 두 벡터의 내적값이라고 정의할 수 있다. 대신 조명을 받거나, 받..