HDTH_ đồ họa máy tính

Embed Size (px)

DESCRIPTION

đồ họa máy tính

Citation preview

  • 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?