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

正文內(nèi)容

計(jì)算機(jī)圖形學(xué)cgppt課件(完整版)

2025-06-08 07:08上一頁面

下一頁面
  

【正文】 為 Ia ? 反射系數(shù):與物體表面性質(zhì)有關(guān),決定物體表面呈現(xiàn)的亮度,記為 Ka ? 光照模型方程 Ie = Ka Ia Ie為物體表面呈現(xiàn)的亮度 Ka = Ka = 6 簡單光照模型 漫反射( Diffuse Reflection) ? 點(diǎn)光源:向周圍所有方向發(fā)射等強(qiáng)度的光 ? 漫反射光是由物體表面的粗糙不平引起的,它均勻地向各個(gè)方向傳播,與視點(diǎn)無關(guān) ? 漫反射光在空間均勻分布,反射光強(qiáng) I 與入射光的入射角 θ 的余弦成正比,即: 其中, Kd 是漫反射系數(shù)( 0~ 1之間的常數(shù)),與物體表面性質(zhì)有關(guān); Ip 是入射光(光源)的光強(qiáng); θ是入射光的入射角,即入射光與物體表面法向量之間的夾角 ?c o spdd IKI ?7 簡單光照模型 ? 向量表示的計(jì)算 ? 設(shè)物體表面在照射點(diǎn) P 處的單位法向量為 N, P 到點(diǎn)光源的單位向量為 L, 則上式可表達(dá)為如下的向量形式: ????miipdd LNIKI i1)()( LNIKI pdd ??如果有多個(gè)光源,則可以把各個(gè)光源 的漫反射光照效果進(jìn)行疊加: 8 簡單光照模型 ? 環(huán)境光與漫反射光結(jié)合 ? 方程: ? 例子: )( NLKIKIIII dpaade ?????9 簡單光照模型 鏡面反射光和馮( Phong)反射模型 ? 高光( high light):光滑物體表面在點(diǎn)光源的照射下形成一塊特別亮的區(qū)域 ? 鏡面反射( Specular Reflection) ? 物體表面對入射光的反射 ? 遵循反射定律 ( 1)反射光與入射光位于表面法向兩側(cè) ( 2)理想反射面而言:入射角=反射角 ? 觀察者在反射方向上看到反射光最強(qiáng) 10 簡單光照模型 ? Phong模型(非理想反射面) nspnsps RVKIKII )(c o s ??? ?計(jì)算公式: Ks是物體表面鏡面反射系數(shù),它與入射角和波長有關(guān); α 是視線與反射方向的夾角; n 為鏡面高光系數(shù),用來模擬鏡面反射光在空間中的匯聚程度,它是一個(gè)反映物體表面光澤度的常數(shù); 近似地描述了鏡面反射光的空間分布。 21 簡單光照模型 函數(shù) glLight*()參數(shù) pname及 param說明 22 簡單光照模型 ( 3)啟動(dòng)光照 ? 在 OpenGL中,必須明確指出光照是否有效或無效。 glLightfv(GL_LIGHT0, GL_AMBIENT, light_color)。//繪制球體 glFlush()。 } 25 簡單光照模型 void main(void) { glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB)。 } 26 簡單光照模型 ( 5)聚光 定位光源可以定義成聚光燈形式,即將光的形狀限制在一個(gè)圓錐內(nèi)。 28 簡單光照模型 三、定義聚光方向 聚光方向決定光錐的軸,它齊次坐標(biāo)定義,其缺省值為 (, ), 即指向 Z負(fù)軸。 GLfloat mat_specular[] = { , , , }。 GLfloat spot_direction[]={ ,}。 glLightfv(GL_LIGHT1, GL_DIFFUSE, l ight1_diffuse)。 glDepthFunc(GL_LESS)。//繪制光源 1 glEnable (GL_LIGHTING)。 else glOrtho (*(GLfloat)w/(GLfloat)h, *(GLfloat)w/(GLfloat)h, , , , )。 glutReshapeFunc (myReshape)。 注意:紋理映射只能在 RGBA方式下執(zhí)行,不能運(yùn)用于顏色表方式。 56 紋理映射 四、激活紋理; glEnable(GL_TEXTURE_2D)。 i++) for (int j=0。 glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_DECAL)。 glEnable(GL_TEXTURE_2D)。 glTexCoord2f(0,0)。 j=nC。} y2=i**h。 glTexCoord2f(s[j+1],t1)。 float dc = 。 float sx=r*cos(j*dh)。 glVertex3f((R+sx1)*sin((i+1)*dc),r*sin(j*dh+dh),(R+sx1)*cos((i+1)*dc))。 // drawRect()。 glLoadIdentity()。 glutCreateWindow (“TextureMapping)。 glutReshapeFunc (myReshape)。 else glOrtho (a*Lfloat)w/(float)h,a*(float)w/(float)h, a, a, a, a)。 // drawTorus(1,2)。 glVertex3f((R+sx)*sin((i+1)*dc),r*sin(j*dh),(R+sx)*cos((i+1)*dc))。 glTexCoord2f(s,j*dh/)。 for(int i=0。 glTexCoord2f(s[j+1],t2)。 if (i==0) continue。 z[j]=r*cos(j*dc)。 glEnd()。 glTexCoord2f(1,0)。//GL_REPEAT glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP)。 j++) { GLubyte c=(((i/8)+(j/8))%2) * 255。 ? void glTexCoord{1234}{sifd}[v](TYPE coords)。 ? target是常數(shù) GL_TEXTURE_2D ; level表示多級分辨率的紋理圖像的級數(shù),若只有一種分辨率,則 level設(shè)為 0; ? ponents是一個(gè)從 1到 4的整數(shù),指出選擇了 R、 G、 B、A中的哪些分量用于調(diào)整和混合, 1表示選擇了 R分量, 2表示選擇了 R和 A兩個(gè)分量, 3表示選擇了 R、 G、 B三個(gè)分量,4表示選擇了 R、 G、 B、 A四個(gè)分量; 53 紋理映射 ? width和 height給出了紋理圖像的長度和寬度; border為紋理邊界寬度,它通常為 0, width和 height必須是 2m+2b,這里 m是整數(shù),長和寬可以有不同的值, b是 border的值。 glutMainLoop()。 glLoadIdentity()。 auxSolidSphere()。 } 31 簡單光照模型 void display(void) { glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)。 glLightfv(GL_LIGHT1, GL_POSITION,light1_position)。 glMaterialfv(GL_FRONT, GL_DIFFUSE, mat_diffuse)。 GLfloat light0_diffuse[]= { , , , }。 定義如下: GLfloat spot_direction[]={, , , 1}。 因?yàn)榫酃庠匆彩嵌ㄏ蚬庠矗? 所以他的位置同一般定向光一樣。 glutInitWindowPosition (300, 300)。 glMatrixMode(GL_PROJECTION)。 glLightfv(GL_LIGHT0, GL_SPECULAR, light_color)。 若使光照無效,則調(diào)用 gDisable(GL_LIGH
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1