freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

《計算機(jī)圖形學(xué)cg》ppt課件-文庫吧

2025-04-18 07:08 本頁面


【正文】 ) void glLight{if}[v](GLenum light , GLenum pname, TYPE param) ? 創(chuàng)建具有某種特性的光源。其中第一個參數(shù) light指定所創(chuàng)建的光源號,如 GL_LIGHT0、 GL_LIGHT ...、GL_LIGHT7。第二個參數(shù) pname指定光源特性,這個參數(shù)的輔助信息見表 11171所示。最后一個參數(shù)設(shè)置相應(yīng)的光源特性值。 21 簡單光照模型 函數(shù) glLight*()參數(shù) pname及 param說明 22 簡單光照模型 ( 3)啟動光照 ? 在 OpenGL中,必須明確指出光照是否有效或無效。如果光照無效,則只是簡單地將當(dāng)前顏色映射到當(dāng)前頂點上去,不進(jìn)行法向、光源等復(fù)雜計算,那么顯示的圖形就沒有真實感 ? 要使光照有效,首先得啟動光照,即: glEnable(GL_LIGHTING)。 若使光照無效,則調(diào)用 gDisable(GL_LIGHTING) 可關(guān)閉當(dāng)前光照。 ? 然后,必須使所定義的每個光源有效。 glEnable(GL_LIGHT0)。 其它光源類似,只是光源號不同而已 23 簡單光照模型 ( 4)例:簡單光照 include gl/ include GL/ pragma ment (lib,) void myinit(void) { GLfloat light_position[] = { , , , }。 GLfloat light_color[] = { , , , }。 glLightfv(GL_LIGHT0, GL_POSITION, light_position)。 glLightfv(GL_LIGHT0, GL_AMBIENT, light_color)。 glLightfv(GL_LIGHT0, GL_DIFFUSE, light_color)。 glLightfv(GL_LIGHT0, GL_SPECULAR, light_color)。 glEnable(GL_LIGHTING)。 glEnable(GL_LIGHT0)。 glEnable(GL_DEPTH_TEST)。 } void display(void) { glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)。 auxSolidSphere()。//繪制球體 glFlush()。 } 24 簡單光照模型 void myReshape(int w, int h) { glViewport(0, 0, w, h)。 glMatrixMode(GL_PROJECTION)。 glLoadIdentity()。 if (w = h) glOrtho (, , *(GLfloat)h/(GLfloat)w, *(GLfloat)h/(GLfloat)w, , )。 else glOrtho (*(GLfloat)w/(GLfloat)h, *(GLfloat)w/(GLfloat)h, , , , )。 glMatrixMode(GL_MODELVIEW)。 glLoadIdentity()。 } 25 簡單光照模型 void main(void) { glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB)。 glutInitWindowSize (250, 250)。 glutInitWindowPosition (300, 300)。 glutCreateWindow (Simple Lighting)。 myinit()。 glutReshapeFunc (myReshape)。 glutDisplayFunc(display)。 glutMainLoop()。 } 26 簡單光照模型 ( 5)聚光 定位光源可以定義成聚光燈形式,即將光的形狀限制在一個圓錐內(nèi)。 一、定義聚光源位置。 因為聚光源也是定向光源, 所以他的位置同一般定向光一樣。 如: GLfloat light_position[]={,}。 glLightfv(GL_LIGHT0,LIGHT_POSITION, light_position)。 27 簡單光照模型 二、定義聚光截止角 參數(shù) GL_SPOT_CUTOFF給定光錐的軸與中 心線的夾角,也可 說成是光錐頂角的一半。 缺省時,這個參數(shù)為 ,即頂角為 360度, 光向所有的方向發(fā)射,因此聚光關(guān)閉。 一般在聚光啟動情況下,聚光截止角限制在 [,] 之間,如下面一行代碼設(shè)置截止角為 45度: glLightf(GL_LIGHT0,GL_SPOT_CUTOFF,)。 28 簡單光照模型 三、定義聚光方向 聚光方向決定光錐的軸,它齊次坐標(biāo)定義,其缺省值為 (, ), 即指向 Z負(fù)軸。聚光方向也要進(jìn)行幾何變換,其結(jié)果保存在視點坐標(biāo)中。 定義如下: GLfloat spot_direction[]={, , , 1}。 glLightfv(GL_LIGHT0,GL_SPOT_DIRECTION, spot_direction)。 四、定義聚光指數(shù) 參數(shù) GL_SPOT_EXPONENT控制光的集中 程度,光錐中心的光強(qiáng)最大,越靠邊的光強(qiáng)越小, 缺省時為 0。如: glLightf(GL_LIGHT0,GL_SPOT_EXPONENT,)。 29 簡單光照模型 ( 6)例:多光源 include GL/ include GL/ pragma ment (lib,) /* 初始化光源、材質(zhì)等 */ void myinit(void) { GLfloat mat_ambient[]= { , , , }。 GLfloat mat_diffuse[]= { , , , }。 GLfloat mat_specular[] = { , , , }。 GLfloat mat_shininess[] = { }。 GLfloat light0_diffuse[]= { , , , }。 GLfloat light0_position[] = { , , , }。 GLfloat light1_ambient[]= { , , , }。 GLfloat light1_diffuse[]= { , , , }。 GLfloat light1_specular[] = { , , , }。 GLfloat light1_position[] = { , , , }。 GLfloat spot_direction[]={ ,}。 glMaterialfv(GL_FRONT, GL_AMBIENT, mat_ambient)。 glMaterialfv(GL_FRONT, GL_DIFFUSE, mat_diffuse)。 glMaterialfv(GL_FRONT, GL_SPECULAR, mat_specular)。 glMaterialfv(GL_FRONT, GL_SHININESS, mat_shininess)。 // 轉(zhuǎn)下頁 30 簡單光照模型 //接上頁 glLightfv(GL_LIGHT0, GL_DIFFUSE, light0_diffuse)。 glLightfv(GL_LIGHT0, GL_POSITION,light0_position)。 glLightfv(GL_LIGHT1, GL_AMBIENT, light1_ambient)。 glLightfv(GL_LIGHT1, GL_DIFFUSE, l ight1_diffuse)。 glLightfv(GL_LIGHT1, GL_SPECUL
點擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1