HDTH_ đồ họa máy tính
description
Transcript of HDTH_ đồ họa máy tính
-
5/28/2018 HDTH_ h a m y t nh
1/3
Mn: ha my tnh Lp 06CK1/06CK2
GVHDTH: 1
L ThHong Ngn, Quch KhGia
Bi hng dn thc hnh tun 1
Lm quen vi OpenGL
Phn 1: Ci t th vin
Trong phn ny chng ta sci t th vin OpenGL v cc thlin quan c thbin dch v
chy mt chng trnh sdng th vin OpenGL n gin nht. Mc nh, OpenGL c ci
t cng vi cc phin bn ca HH Windows. Tuy nhin, th vin GLUT li khng c ci
t sn nn chng ta sci t th vin ny.
Cc thao tc sau thc hin cho Visual Studio 6.0
1. Kim tra stn ti ca OpenGL trong my tnh bng cch vo th mc C:\ProgramFiles\Microsoft Visual Studio\VC98\Include\GL\ Trong y c cc tp tin GL.H,
GLAUX.Hv GLU.H
2. Sau vo th mc C:\Program Files\Microsoft Visual Studio\VC98\Lib\ kim tra stn ti ca cc tp tin th vin OPENGL32.LIB, GLAUX.LIBv GLU32.LIB
3. Ti th vin GLUT phin bn 3.7.6 ttrang webhttp://reality.sgi.com/opengl/glut3/glut3.htmlhoc ly vttrang web mn hc
4. Sau khi gii nn, th vin gm 3 tp tin sauglut.h,glut32.dllvglut32.lib. Thc hinnhng cng vic sau:
Chpglut32.dllvo th mc C:\WINDOWS\SYSTEM Chpglut32.libvo th mc C:\Program Files\Microsoft Visual Studio\VC98\Lib\ Chpglut.hvo th mc C:\Program Files\Microsoft Visual
Studio\VC98\Include\GL\
Cch thc hin tng tkhi sdng Visual Studio 2005, thay ng dn
C:\Program Files\Microsoft Visual Studio\VC98\ trn bng C:\Program Files\Microsoft Visual
Studio 8\VC\Platform SDK\
http://reality.sgi.com/opengl/glut3/glut3.htmlhttp://reality.sgi.com/opengl/glut3/glut3.html -
5/28/2018 HDTH_ h a m y t nh
2/3
Mn: ha my tnh Lp 06CK1/06CK2
GVHDTH: 2
L ThHong Ngn, Quch KhGia
Phn 2: Bin dch v chy thmt chng trnh n gin
Ta bt u vit chng trnh n gin sdng OpenGL. Chng trnh sdng GLUT hin th
mt hnh vung chnh gia ca s.
#include
voidRenderScene(void){
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(1.0, 1.0, 1.0);
glOrtho(-1.0, 1.0, -1.0, 1.0, -1.0, 1.0);
glBegin(GL_POLYGON);
glVertex2f(-0.5, -0.5);glVertex2f(0.5, -0.5);glVertex2f(0.5, 0.5);glVertex2f(-0.5, 0.5);
glEnd();
glFlush();}voidSetupRC(void){
glClearColor(0.5f, 0.5f, 0.5f, 1.0f);}
intmain(intargc, char* argv []){
glutInit(&argc, argv);glutInitDisplayMode(GLUT_SINGLE| GLUT_RGBA);glutCreateWindow("Hello OpenGL");
glutDisplayFunc(RenderScene);SetupRC();glutMainLoop();
return0;}
Vi cch lm phn 1, chng ta chcu hnh mt ln v sau khng cn quan tm n vic
ny na. Tuy nhin, nu khng mun tc ng vo cc th mc h thng, ng thi to cho
chng trnh tnh dmang chuyn n chy trn cc my khc, ngi ta cn c mt cch cu
-
5/28/2018 HDTH_ h a m y t nh
3/3
Mn: ha my tnh Lp 06CK1/06CK2
GVHDTH: 3
L ThHong Ngn, Quch KhGia
hnh khc. Cthnh sau (hng dn ny p dng cho Visual Studio 2005. Trng hp VS 6.0
cng tng t):
1. MVisual Studio 2005, to project mi Win32 Console Application,t tn, chng hnlMyFirstOpenGL, ghi nhvtr ca project trn my.
2. Chp ba tp tinglut.h,glut32.dllvglut32.libva ti vvo th mc\MyFirstOpenGL\MyFirstOpenGL.
3. Trong VS 2005 chn MenuProjectProperties(hoc nhn thp phmAlt + F7)4. MConfiguration(mc thhai bn tri)C/C++Linker. Trong trngAdditional
Dependencies, g voglut32.lib.
5. Chnh m ngun dng #include thnh #include glut.h.6. Bin dch chng trnh v xem kt qu.
Phn Mrng:Thc hin nhng thay i sau trong m ngun, bin dch li v gii thch hin tng:1. Bmt trong bn dng m dng hnh. iu g sxy ra?2. o trt tbn dng m dng hnh. Hnh vung c cn c bo ton hay khng? Rt ra
c qui lut g?3. Bn c thi mu hnh vung ny thnh mu tm khng?