소개글
다음과 같은 조건 및 +@를 만족하여 10점 만점에 11점 받은 과제이며해당 학기 A+ 받았습니다.
openGL 및 openAL, 빌보드, 모델링 파일의 로드, 카메라 시점변환, 텍스쳐 및 블랜딩에 관해서
도움이 될 것이라 생각합니다.
openAL 및 텍스쳐 내용이 빠져있는 것은 두번째 자료를 참고하시면 될 것 같습니다
( http://www.happycampus.com/doc/12139460 )
1. 본인이 제작한 Hierarchical Transformation 구조를 가진 놀이기구에 텍스쳐와 알파 블렌딩을 넣어준다. (30점)
-물체에 OpenGL texture mapping을 추가한다. 이때 적어도 2개 이상의 texture image을 사용한다.
-전체 장면에 OpenGL의 alpha blending을 사용하여 물체 중에 적어도 하나는 semi-transparent하게 만든다. 예를 들어, 사각형에 알파 블랜딩을 적용하여 나무 텍스쳐를 매핑한다. 그리고 사각형 두개를 직각으로 교차시키고 각 사각형에 대해서 동일한 텍스쳐를 매핑시켜서 나무를 그리면 보다 입체적인 모습의 표현이 가능하다.
2. 놀이동산을 돌아다니는 모드와 본인이 제작한 놀이기구를 탔을 때의 시점이 변환하는 Camera Control을 추가한다. (20점)
-'1' KEY를 눌렀을 때, 1인칭 시점(camera viewpoint)으로 변하고 전후좌우(UP/DOWN/LEFT/RIGHT)로 움직일 수 있다. 카메라의 기본 위치는 놀이동산의 정중앙에서 바깥쪽을 바라보는 방향을 향한다.
-‘2’ KEY를 눌렀을 때, 시점이 본인이 제작한 놀이기구를 타고있는 시점으로 변환한다.
3. 전체 놀이공원으로 장면을 꾸며주기 위하여, 2개 이상의 3차원 모델을 로딩하여 그려준다. (10점)
-obj/3ds model loader를 사용하여 본인이 3DMAX나 MAYA로 (텍스쳐가 있는) 제작한 모델 2개 이상을 전체 장면에 넣어준다. (단, 본인이 직접 제작하지 않고 가져왔을 시 그 출처를 밝힐 것)
4. 사운드 클래스 (OpenAL 라이브러리)를 사용하여 배경음악과 이벤트 사운드 추가한다. (10점)
5. 놀이동산을 돌아다니다가 본인이 제작한 놀이기구 근처에 갔을 때 놀이기구를 타는 듯 한 카메라 시점 변환을 추가할 시 추가 점수 (extra 10점)
힌트: sphere와 point 충돌검사를 사용한 후 카메라 모드 변환 적용
6. 창의성, 소스코드 주석처리, 리포트 (30점)
컴파일 실행환경
Microsoft Visual Studio, openGL, openAL, Maya압축파일 내 파일목록
3ds.cpp
3ds.h
aldlist.cpp
aldlist.h
balloon.h
blending.cpp
blending.h
camera.cpp
camera.h
color.cpp
color.h
cube.cpp
cube.h
CWaves.cpp
CWaves.h
data/image/balloon.png
data/image/basket.png
data/image/earth.jpg
data/image/glass.jpg
data/image/glass_mini.jpg
data/image/lake.jpg
data/image/main.jpg
data/image/moon.jpg
data/image/pipe.png
data/image/rainbow.png
data/image/sky.jpg
data/image/sun.jpg
data/image/sunmain.jpg
data/image/Thumbs.db
data/image/tonk.png
data/image/tree_1.png
data/image/tree_2.png
data/image/tree_3.png
data/image/viewcar_door.png
data/image/viewcar_name.png
data/image/wiewcar_window.png
data/model/beachbug.jpg
data/model/boots.jpg
data/model/brush.jpg
data/model/car_m.mtl
data/model/car_m.obj
data/model/chipmunk.mtl
data/model/chipmunk.obj
data/model/cow.mtl
data/model/cow.obj
data/model/COWSKIN.JPG
data/model/crocodile.mtl
data/model/crocodile.obj
data/model/down_bump.jpg
data/model/down_Diffuse.jpg
data/model/eyeimg.jpg
data/model/glass.jpg
data/model/glass_img2.jpg
data/model/glass_mini.jpg
data/model/grid.jpg
data/model/grid.mtl
data/model/grid.obj
data/model/human.mtl
data/model/human.obj
data/model/j1a-eg01019-2.bmp
data/model/lake.jpg
data/model/line.mtl
data/model/line.obj
data/model/Miro.mtl
data/model/miro.obj
data/model/sal.jpg
data/model/step.jpg
data/model/test.obj
data/model/thumbnails.jpg
data/model/Thumbs.db
data/model/tree_2.mtl
data/model/tree_2.obj
data/model/tree_img.jpg
data/model/tree_reaf2_img.jpg
data/model/tree_reaf_img.jpg
data/model/tree_root2_img.jpg
data/model/tree_root_img.jpg
data/model/tree_s.mtl
data/model/tree_s.obj
data/model/wall_bump.jpg
data/model/wall_diffuse.jpg
data/model/work.jpg
data/model/x5.mtl
data/model/x5.obj
data/model/x5_body copy.png
data/model/x5_body.jpg
data/model/x5_tire_map.jpg
data/model/ZEBBODY.JPG
data/model/ZEBRA.mtl
data/model/ZEBRA.obj
data/sound/back1.mp3
data/sound/back2.mp3
data/sound/back3.mp3
data/sound/click.wav
data/sound/explode.wav
data/sound/shot.wav
data/sound/stereo.wav
Debug/aldlist.obj
Debug/blending.obj
Debug/BuildLog.htm
Debug/camera.obj
Debug/color.obj
Debug/cube.obj
Debug/CWaves.obj
Debug/font.obj
Debug/Framework.obj
Debug/geometry.obj
Debug/light.obj
Debug/LoadOAL.obj
Debug/material.obj
Debug/matrix4x4.obj
Debug/matrixtransform.obj
Debug/mt.dep
Debug/node.obj
Debug/obj.obj
Debug/objnode.obj
Debug/oglclass.exe
Debug/oglclass.exe.embed.manifest
Debug/oglclass.exe.embed.manifest.res
Debug/oglclass.exe.intermediate.manifest
Debug/oglclass.ilk
Debug/oglclass.pdb
Debug/oglclass.suo
Debug/orthoCamera.obj
Debug/perspCamera.obj
Debug/plane.obj
Debug/pointmass.obj
Debug/quad.obj
Debug/quaternion.obj
Debug/solar-oglclass-texture.obj
Debug/sound.obj
Debug/spring.obj
Debug/text.obj
Debug/texture.obj
Debug/texture1D.obj
Debug/texture2D.obj
Debug/transform.obj
Debug/vc90.idb
Debug/vc90.pdb
Debug/vector3.obj
Debug/vector4.obj
Debug/weed.obj
font.cpp
font.h
Framework.cpp
Framework.h
geometry.cpp
geometry.h
glut32.dll
icecreamshop.h
include/al.h
include/alc.h
include/efx-creative.h
include/EFX-Util.h
include/efx.h
include/GL/glext.h
include/GL/glut.h
include/jconfig.h
include/jerror.h
include/jmorecfg.h
include/jpeglib.h
include/png.h
include/pngconf.h
include/simage.h
include/xram.h
include/zconf.h
include/zlib.h
lib/debug/EFX-Util.lib
lib/debug/glut32.lib
lib/debug/libjpeg.lib
lib/debug/libjpegd.lib
lib/debug/libpng.lib
lib/debug/libpng13.lib
lib/debug/libpng13d.lib
lib/debug/libpngd.lib
lib/debug/OpenAL32.lib
lib/debug/simage1.lib
lib/debug/simage1d.lib
lib/debug/zlib.lib
lib/release/EFX-Util.lib
lib/release/glut32.lib
lib/release/libjpeg.lib
lib/release/libpng.lib
lib/release/libpng13.lib
lib/release/OpenAL32.lib
lib/release/simage1.lib
lib/release/zlib.lib
libpng13.dll
libpng13d.dll
light.cpp
light.h
LoadOAL.cpp
LoadOAL.h
material.cpp
material.h
matrix4x4.cpp
matrix4x4.h
matrixtransform.cpp
matrixtransform.h
node.cpp
node.h
obj.cpp
obj.h
objnode.cpp
objnode.h
oglclass.h
oglclass.ncb
oglclass.sln
oglclass.suo
oglclass.vcproj
oglclass.vcproj.삼뇽이놋북.삼뇽이.user
oglclass_starter.suo
orthoCamera.cpp
orthoCamera.h
perspCamera.cpp
perspCamera.h
plane.cpp
plane.h
pointmass.cpp
pointmass.h
quad.cpp
quad.h
quaternion.cpp
quaternion.h
simage1.dll
solar-oglclass-texture.cpp
sound.cpp
sound.h
spring.cpp
spring.h
text.cpp
text.h
texture.cpp
texture.h
texture1D.cpp
texture1D.h
texture2D.cpp
texture2D.h
transform.cpp
transform.h
vector3.cpp
vector3.h
vector4.cpp
vector4.h
viewcar.h
weed.cpp
weed.h
zlib1.dll
zlib1d.dll
그래픽스레포트_100603.hwp
3ds.h
aldlist.cpp
aldlist.h
balloon.h
blending.cpp
blending.h
camera.cpp
camera.h
color.cpp
color.h
cube.cpp
cube.h
CWaves.cpp
CWaves.h
data/image/balloon.png
data/image/basket.png
data/image/earth.jpg
data/image/glass.jpg
data/image/glass_mini.jpg
data/image/lake.jpg
data/image/main.jpg
data/image/moon.jpg
data/image/pipe.png
data/image/rainbow.png
data/image/sky.jpg
data/image/sun.jpg
data/image/sunmain.jpg
data/image/Thumbs.db
data/image/tonk.png
data/image/tree_1.png
data/image/tree_2.png
data/image/tree_3.png
data/image/viewcar_door.png
data/image/viewcar_name.png
data/image/wiewcar_window.png
data/model/beachbug.jpg
data/model/boots.jpg
data/model/brush.jpg
data/model/car_m.mtl
data/model/car_m.obj
data/model/chipmunk.mtl
data/model/chipmunk.obj
data/model/cow.mtl
data/model/cow.obj
data/model/COWSKIN.JPG
data/model/crocodile.mtl
data/model/crocodile.obj
data/model/down_bump.jpg
data/model/down_Diffuse.jpg
data/model/eyeimg.jpg
data/model/glass.jpg
data/model/glass_img2.jpg
data/model/glass_mini.jpg
data/model/grid.jpg
data/model/grid.mtl
data/model/grid.obj
data/model/human.mtl
data/model/human.obj
data/model/j1a-eg01019-2.bmp
data/model/lake.jpg
data/model/line.mtl
data/model/line.obj
data/model/Miro.mtl
data/model/miro.obj
data/model/sal.jpg
data/model/step.jpg
data/model/test.obj
data/model/thumbnails.jpg
data/model/Thumbs.db
data/model/tree_2.mtl
data/model/tree_2.obj
data/model/tree_img.jpg
data/model/tree_reaf2_img.jpg
data/model/tree_reaf_img.jpg
data/model/tree_root2_img.jpg
data/model/tree_root_img.jpg
data/model/tree_s.mtl
data/model/tree_s.obj
data/model/wall_bump.jpg
data/model/wall_diffuse.jpg
data/model/work.jpg
data/model/x5.mtl
data/model/x5.obj
data/model/x5_body copy.png
data/model/x5_body.jpg
data/model/x5_tire_map.jpg
data/model/ZEBBODY.JPG
data/model/ZEBRA.mtl
data/model/ZEBRA.obj
data/sound/back1.mp3
data/sound/back2.mp3
data/sound/back3.mp3
data/sound/click.wav
data/sound/explode.wav
data/sound/shot.wav
data/sound/stereo.wav
Debug/aldlist.obj
Debug/blending.obj
Debug/BuildLog.htm
Debug/camera.obj
Debug/color.obj
Debug/cube.obj
Debug/CWaves.obj
Debug/font.obj
Debug/Framework.obj
Debug/geometry.obj
Debug/light.obj
Debug/LoadOAL.obj
Debug/material.obj
Debug/matrix4x4.obj
Debug/matrixtransform.obj
Debug/mt.dep
Debug/node.obj
Debug/obj.obj
Debug/objnode.obj
Debug/oglclass.exe
Debug/oglclass.exe.embed.manifest
Debug/oglclass.exe.embed.manifest.res
Debug/oglclass.exe.intermediate.manifest
Debug/oglclass.ilk
Debug/oglclass.pdb
Debug/oglclass.suo
Debug/orthoCamera.obj
Debug/perspCamera.obj
Debug/plane.obj
Debug/pointmass.obj
Debug/quad.obj
Debug/quaternion.obj
Debug/solar-oglclass-texture.obj
Debug/sound.obj
Debug/spring.obj
Debug/text.obj
Debug/texture.obj
Debug/texture1D.obj
Debug/texture2D.obj
Debug/transform.obj
Debug/vc90.idb
Debug/vc90.pdb
Debug/vector3.obj
Debug/vector4.obj
Debug/weed.obj
font.cpp
font.h
Framework.cpp
Framework.h
geometry.cpp
geometry.h
glut32.dll
icecreamshop.h
include/al.h
include/alc.h
include/efx-creative.h
include/EFX-Util.h
include/efx.h
include/GL/glext.h
include/GL/glut.h
include/jconfig.h
include/jerror.h
include/jmorecfg.h
include/jpeglib.h
include/png.h
include/pngconf.h
include/simage.h
include/xram.h
include/zconf.h
include/zlib.h
lib/debug/EFX-Util.lib
lib/debug/glut32.lib
lib/debug/libjpeg.lib
lib/debug/libjpegd.lib
lib/debug/libpng.lib
lib/debug/libpng13.lib
lib/debug/libpng13d.lib
lib/debug/libpngd.lib
lib/debug/OpenAL32.lib
lib/debug/simage1.lib
lib/debug/simage1d.lib
lib/debug/zlib.lib
lib/release/EFX-Util.lib
lib/release/glut32.lib
lib/release/libjpeg.lib
lib/release/libpng.lib
lib/release/libpng13.lib
lib/release/OpenAL32.lib
lib/release/simage1.lib
lib/release/zlib.lib
libpng13.dll
libpng13d.dll
light.cpp
light.h
LoadOAL.cpp
LoadOAL.h
material.cpp
material.h
matrix4x4.cpp
matrix4x4.h
matrixtransform.cpp
matrixtransform.h
node.cpp
node.h
obj.cpp
obj.h
objnode.cpp
objnode.h
oglclass.h
oglclass.ncb
oglclass.sln
oglclass.suo
oglclass.vcproj
oglclass.vcproj.삼뇽이놋북.삼뇽이.user
oglclass_starter.suo
orthoCamera.cpp
orthoCamera.h
perspCamera.cpp
perspCamera.h
plane.cpp
plane.h
pointmass.cpp
pointmass.h
quad.cpp
quad.h
quaternion.cpp
quaternion.h
simage1.dll
solar-oglclass-texture.cpp
sound.cpp
sound.h
spring.cpp
spring.h
text.cpp
text.h
texture.cpp
texture.h
texture1D.cpp
texture1D.h
texture2D.cpp
texture2D.h
transform.cpp
transform.h
vector3.cpp
vector3.h
vector4.cpp
vector4.h
viewcar.h
weed.cpp
weed.h
zlib1.dll
zlib1d.dll
그래픽스레포트_100603.hwp