About gluUnProject
Projection은 3D World Space상에 있는 Objects를 2D 화면상에 "투영" 하는 것. 3D Vertex -> [Projection Matrix -> ModelView Matrix] -> 2D Vertex 로 변환되는 과정이다. 3차원이 2차원으로 변환되면서, x, y, z 성분 중 z 성분이 사라지게 되는데, (여기서 말하는 z 성분이란, Viewer의 Front Vector를 기저로 하는 벡터) "엄밀히 말하면 사라지는 것"이 아니라, Depth 라는 값으로 변환되는 것. OpenGL에서는 어느 픽셀의 Depth값을 읽어 낼 수 있는 함수가 있다. float depth; glReadPixels( 픽셀위치X, 픽셀위치Y, 1, 1, GL_DEPTH_CONPONENT, GL_FLOAT..
2008. 2. 2.
Geometry
Plane Geometry 생성. 현재 파일은 *.raw 까지만 지원. 생성자의 매개변수(1.파일명, 2.가로버텍스수, 3.세로버텍스수, 4.가로버텍스간격, 5.세로버텍스간격) 중요한 것은 geo.buildPlane(256, 256, dX, dZ); 부분이다. Geometry 클래스에서 정해진 만큼 평면 매쉬를 생성한 후, HeightMapLoader 클래스 에서는 높이정보를 넣는다. *.raw 파일의 바이트 오더와 Geometry의 메쉬 인덱스 오더가 일치해야하는 것이 중요하다. 아직 미완성이며, 당연히 최적화는 없다. 생각컨데, 1. 프러스텀 컬링을 위해서는 glVertexPointer & glDrawElements 방식은 안될것 같다. -확인요. 2. 파일의 내용을 순서대로 읽을 것이라면, 굳이 b..
2007. 8. 15.