3D Graphics
-
2D 직선 그리는 방법3D Graphics/Software Rendering 2007. 3. 26. 15:50
두점 (x1,y1), (x2,y2)를 잇는 직선을 그릴때 다음과 같은 방법을 사용합니다. 첫번째로 간단하게 직선의 기울기를 이용해 그리는 방법입니다. 직선의 기울기는 (y2-y1) / float(x2-x1)으로 구합니다. 이때 분모가 음수가 되면 안되기에 x1과 x2를 비교해서 큰값이 x2에 들어가도록 스왑해야 합니다.. 이런게 저장한 기울기를 저장하고... int gradient = (y2-y1) / float(x2-x1); x값이 1증가할때 y값을 구해서 그려나가면 됩니다. int i, y; y = y1; for (i=x1; i< x2; i++) { y+=gradient*i; PutPixel(i,y,color); //화면에 점을 찍는 함수. } 다음은 완성되 라인 함수입니다. 클리핑 처리는 하지 않았..
-
3D에서의 용어설명3D Graphics/공통 2007. 3. 25. 03:18
자 용어설명를 들어가기에 앞서서 좌표계에 대해서 설명하겠습니다. 3D에서 사용되는 좌표계는 여러가지가 있지만 Direct X에서는 데카르트의 왼손 좌표계 를 사용합니다. 특히 OpenGL은 오른손 좌표계를 사용하니 주의하세요~! 정점(Vertex) 공간에서 위치를 나타내는 점을 의미합니다. 수학에서는 점(point)라고도 하죠~^^. 3D에서는 (x,y,z) 세가지 속성으로 정점을 정의합니다. 벡터(Vector) 다들 아시는 시간에 배웠던 그 벡터가 맞습니다~^^ 벡터는 크기와 방향을 동시에 표현하죠. 3D에서는 정점간의 관계나 방향성및 각종 수치계산에 쓰입니다. 행렬(Matrix) 3D에서 복잡한 계산식을 단순화하기 위해서 행렬을 이용합니다.특히 Direct X에서는 4 x 4 정방행렬를 사용합니다. ..
-
스케일링후 정점변환 적용시키기3D Graphics/공통 2007. 3. 25. 03:01
3DS Max에서 크기변환을 시킨후에 Export하면 정점 데이터가 실제로 변한는게 아니라 변환행렬에 그 값이 저장되게 됩니다. 이 변환행렬로 계산해도 되지만 속도를 생각한다면 저장시 실제 정점의 위치를 변환 시켜야겠죠? 맥스의 Utility 패널의 Reset Xform을 적용하면 변환행렬에 따라서 정점이 이동됩니다. 이걸 몰라서 메쉬 충돌체크때 애먹었다는...;; x파일의 Transform메뉴를 확인해 이 값이 단위행렬인지 확인해보세요. 아니라면 디자이너에게 이 내용을 알려주거나 자신이 변경해야겠죠??
-
Open GL dll 파일 설치법3D Graphics/Open GL 2007. 3. 23. 01:02
*화일구성 6개 GLUT.H GLUT.lib GLUT32.lib GLUT.dll GLUT32.dll ① 위 화일들을 지정 디렉토리에 복사한다. ▶ GLUT.H →c:\Program Files\Microsoft Visual Studio\vc98\Include\ →c:\Program Files\Microsoft Visual Studio\vc98\Include\GL\ ▶ GLUT.lib GLUT32.lib →c:\Program Files\Microsoft Visual Studio\vc98\Lib ▶ GLUT.dll GLUT32.dll →glu.dll(glu32.dll) 화일이 있는 디렉토리에 복사 (예로 win98은 c:\windows\system 에 복사) (windows 2000은 c:\winnt\syst..