소개글
1. Episode이번 리포트는 고생을 많이 했던 것 같다. 와인을 그려보자고 마음먹고 이걸 어떻게 그려야 하는지 도무지 접근할 방향도, 어디부터 건드려야 하는지도 많이 힘들었다. 원통을 그리는 튜토리얼을 조금씩 건드려보다가, 3차원으로 그려야 하므로 생각도 3차원적으로 해야 하는데, 그게 안 되서 이쑤시개로 와인잔 을 대충 만들고 시작 할려고 했으나, 본드가 잘 안 붙어서 실패하고 다시 몇 일 동안 고뇌의 시간을 보내었다. 일단, 2번째 과제인 텍스쳐에서 option인 얼굴매쉬의 3D max파일을 X file로 추출해야 하므로, 3D max를 어둠의 경로로 구하고, 내 얼굴의 앞면, 측면, 뒷면의 사진을 준비하였다.
2. 와인잔 그리기
와인잔을 일단 점으로라도 다 그려놓고 TRIAGLESTRIP으로 그려지는건 천천히 생각하자 하여, 와인 바닥과 목까지 그려넣었다. 그리고 컵부분을 그려야 하는데, 컵부분은 곡선이므로 이것을 어떻게 해야할까 고민하다가. sin 그래프가
그림
이런식이므로 처음 0도부터 120도까지 이용하여 컵부분의 너비를 3.5f로 설정하고 120도를 컵이 그려지는데 사용되는 점의 개수로 나누어서, 그렸다.
이렇게 점으로만 표현된 와인은
와 같이 완성하였는데, 문제는 TRIANGLESTRIP으로 그리면 이상하게 와인이 그려지는것이다. 왜냐하면 정점의 순서가 와인의 한 단면에 대해 다 그리고 다시 다음 단면을 그리는 순서로 되어있기 때문인데, 이것을 다시 TRIANGLESTRIP으로 그려지기에 알맞게 재배치 시켜야 했다.
그래서 처음에는 중첩 for문으로 해결하려 했으나, 이것 또한 어디부터 손을 대야 하는지 고민에 빠졌었는데, 교수님의 힌트를 받아보고, 우선 와인 바닥을 완성하는데 삼각형 한 개만 일단 그려보았다. 점 세 개로 만들어보니 어떻게 접근해야 하는지 방향을 잡았고, 차마 생각하지 못했던 부분도 몇 개 발견하여, 점 6개로 늘리고 9개로 늘려가는 식으로 일일이 점을 그려내어 어떤 식으로 해야 하는지 감을 잡았다.
컴파일 실행환경
Visual Studio 6.0, DirectX 9.0압축파일 내 파일목록
사본 - 20022997HW3.doc
hw3_3DWineDrawing/dxutil.cpp
hw3_3DWineDrawing/dxutil.h
hw3_3DWineDrawing/hw3.cpp
hw3_3DWineDrawing/hw3.dsp
hw3_3DWineDrawing/hw3.dsw
hw3_3DWineDrawing/hw3.h
hw3_3DWineDrawing/hw3.ncb
hw3_3DWineDrawing/hw3.opt
hw3_3DWineDrawing/hw3.plg
hw3_3DWineDrawing/Thumbs.db
Meshes/bigface.X
Meshes/black2_sun.X
Meshes/black4.X
Meshes/blackman.X
Meshes/black_sun.X
Meshes/face_sun1.X
Meshes/face_sun2.X
Meshes/Meshes.cpp
Meshes/Meshes.dsp
Meshes/Meshes.dsw
Meshes/Meshes.ncb
Meshes/Meshes.opt
Meshes/Meshes.plg
Meshes/Meshes.sln
Meshes/Meshes.vcproj
Meshes/sureck.X
Meshes/sureck2.X
Meshes/textur.bmp
Meshes/texture.txt
Meshes/Thumbs.db
Meshes/tiger_ori.x
Texture/DirectX.ico
Texture/dxutil.cpp
Texture/dxutil.h
Texture/myface.bmp
Texture/resource.h
Texture/Texture.cpp
Texture/Texture.dsp
Texture/Texture.dsw
Texture/Texture.h
Texture/Texture.ncb
Texture/Texture.opt
Texture/Texture.plg
Texture/Texture.rc
Texture/Thumbs.db
wine_algorithm/algorithm.cpp
wine_algorithm/algorithm.dsp
wine_algorithm/algorithm.dsw
wine_algorithm/algorithm.ncb
wine_algorithm/algorithm.opt
wine_algorithm/algorithm.plg
wine_algorithm/algorithm.xls
hw3_3DWineDrawing/dxutil.cpp
hw3_3DWineDrawing/dxutil.h
hw3_3DWineDrawing/hw3.cpp
hw3_3DWineDrawing/hw3.dsp
hw3_3DWineDrawing/hw3.dsw
hw3_3DWineDrawing/hw3.h
hw3_3DWineDrawing/hw3.ncb
hw3_3DWineDrawing/hw3.opt
hw3_3DWineDrawing/hw3.plg
hw3_3DWineDrawing/Thumbs.db
Meshes/bigface.X
Meshes/black2_sun.X
Meshes/black4.X
Meshes/blackman.X
Meshes/black_sun.X
Meshes/face_sun1.X
Meshes/face_sun2.X
Meshes/Meshes.cpp
Meshes/Meshes.dsp
Meshes/Meshes.dsw
Meshes/Meshes.ncb
Meshes/Meshes.opt
Meshes/Meshes.plg
Meshes/Meshes.sln
Meshes/Meshes.vcproj
Meshes/sureck.X
Meshes/sureck2.X
Meshes/textur.bmp
Meshes/texture.txt
Meshes/Thumbs.db
Meshes/tiger_ori.x
Texture/DirectX.ico
Texture/dxutil.cpp
Texture/dxutil.h
Texture/myface.bmp
Texture/resource.h
Texture/Texture.cpp
Texture/Texture.dsp
Texture/Texture.dsw
Texture/Texture.h
Texture/Texture.ncb
Texture/Texture.opt
Texture/Texture.plg
Texture/Texture.rc
Texture/Thumbs.db
wine_algorithm/algorithm.cpp
wine_algorithm/algorithm.dsp
wine_algorithm/algorithm.dsw
wine_algorithm/algorithm.ncb
wine_algorithm/algorithm.opt
wine_algorithm/algorithm.plg
wine_algorithm/algorithm.xls
참고 자료
IT EXPERT 3D 게임 프로그래밍김용준 지음 / 한빛미디어