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

正文內(nèi)容

計算機圖形學(xué)cgppt課件-wenkub

2023-05-18 07:08:48 本頁面
 

【正文】 物體表面的粗糙不平引起的,它均勻地向各個方向傳播,與視點無關(guān) ? 漫反射光在空間均勻分布,反射光強 I 與入射光的入射角 θ 的余弦成正比,即: 其中, Kd 是漫反射系數(shù)( 0~ 1之間的常數(shù)),與物體表面性質(zhì)有關(guān); Ip 是入射光(光源)的光強; θ是入射光的入射角,即入射光與物體表面法向量之間的夾角 ?c o spdd IKI ?7 簡單光照模型 ? 向量表示的計算 ? 設(shè)物體表面在照射點 P 處的單位法向量為 N, P 到點光源的單位向量為 L, 則上式可表達為如下的向量形式: ????miipdd LNIKI i1)()( LNIKI pdd ??如果有多個光源,則可以把各個光源 的漫反射光照效果進行疊加: 8 簡單光照模型 ? 環(huán)境光與漫反射光結(jié)合 ? 方程: ? 例子: )( NLKIKIIII dpaade ?????9 簡單光照模型 鏡面反射光和馮( Phong)反射模型 ? 高光( high light):光滑物體表面在點光源的照射下形成一塊特別亮的區(qū)域 ? 鏡面反射( Specular Reflection) ? 物體表面對入射光的反射 ? 遵循反射定律 ( 1)反射光與入射光位于表面法向兩側(cè) ( 2)理想反射面而言:入射角=反射角 ? 觀察者在反射方向上看到反射光最強 10 簡單光照模型 ? Phong模型(非理想反射面) nspnsps RVKIKII )(c o s ??? ?計算公式: Ks是物體表面鏡面反射系數(shù),它與入射角和波長有關(guān); α 是視線與反射方向的夾角; n 為鏡面高光系數(shù),用來模擬鏡面反射光在空間中的匯聚程度,它是一個反映物體表面光澤度的常數(shù); 近似地描述了鏡面反射光的空間分布。 ( 2)創(chuàng)建光源 (Light Source) void glLight{if}[v](GLenum light , GLenum pname, TYPE param) ? 創(chuàng)建具有某種特性的光源。 21 簡單光照模型 函數(shù) glLight*()參數(shù) pname及 param說明 22 簡單光照模型 ( 3)啟動光照 ? 在 OpenGL中,必須明確指出光照是否有效或無效。 glEnable(GL_LIGHT0)。 glLightfv(GL_LIGHT0, GL_AMBIENT, light_color)。 glEnable(GL_LIGHT0)。//繪制球體 glFlush()。 if (w = h) glOrtho (, , *(GLfloat)h/(GLfloat)w, *(GLfloat)h/(GLfloat)w, , )。 } 25 簡單光照模型 void main(void) { glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB)。 myinit()。 } 26 簡單光照模型 ( 5)聚光 定位光源可以定義成聚光燈形式,即將光的形狀限制在一個圓錐內(nèi)。 glLightfv(GL_LIGHT0,LIGHT_POSITION, light_position)。 28 簡單光照模型 三、定義聚光方向 聚光方向決定光錐的軸,它齊次坐標定義,其缺省值為 (, ), 即指向 Z負軸。 四、定義聚光指數(shù) 參數(shù) GL_SPOT_EXPONENT控制光的集中 程度,光錐中心的光強最大,越靠邊的光強越小, 缺省時為 0。 GLfloat mat_specular[] = { , , , }。 GLfloat light1_ambient[]= { , , , }。 GLfloat spot_direction[]={ ,}。 glMaterialfv(GL_FRONT, GL_SHININESS, mat_shininess)。 glLightfv(GL_LIGHT1, GL_DIFFUSE, l ight1_diffuse)。 glLightfv(GL_LIGHT1, GL_SPOT_DIRECTION, spot_direction)。 glDepthFunc(GL_LESS)。 glTranslated (, , )。//繪制光源 1 glEnable (GL_LIGHTING)。 } 32 簡單光照模型 void myReshape(GLsizei w, GLsizei h) { glViewport(0, 0, w, h)。 else glOrtho (*(GLfloat)w/(GLfloat)h, *(GLfloat)w/(GLfloat)h, , , , )。 glutInitWindowSize (250, 250)。 glutReshapeFunc (myReshape)。N 相等 ?視點在無窮遠處, H 注意:紋理映射只能在 RGBA方式下執(zhí)行,不能運用于顏色表方式。 54 紋理映射 二、控制濾波; void glTexParameter{if}[v](GLenum target, GLenum pname, TYPE param)。 56 紋理映射 四、激活紋理; glEnable(GL_TEXTURE_2D)。 57 紋理映射 ? 例:簡單紋理映射 include GL/ include define nRows 128 define nCols 128 GLubyte Image[3*nRows*nCols]。 i++) for (int j=0。 Image[count++] = c。 glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_DECAL)。 glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR)。 glEnable(GL_TEXTURE_2D)。 glTexCoord2f(1,1)。 glTexCoord2f(0,0)。 float dc = 2*。 j=nC。 } for(int i=0。} y2=i**h。jnC。 glTexCoord2f(s[j+1],t1)。 glTexCoord2f(s[j],t2)。 float dc = 。 i++) { for (int j=0。 float sx=r*cos(j*dh)。 glTexCoord2f(s,(j+1)*dh/)。 glVertex3f((R+sx1)*sin((i+1)*dc),r*sin(j*dh+dh),(R+sx1)*cos((i+1)*dc))。 } } } 62 紋理映射 void display(void) { glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)。 // drawRect()。 glFlush()。 glLoadIdentity()。 glLoadIdentity()。 glutCreateWindow (“TextureMapping)。 glutMainLoop()。 glutReshapeFunc (myReshape)。 glutInitWindowSize (250, 250)。 else glOrtho (a*Lfloat)w/(float)h,a*(float)w/(float)h, a, a, a, a)。 glViewport(0, 0, w, h)。 // drawTorus(1,2)。 glPushMatrix ()。 glVertex3f((R+sx)*sin((i+1)
點擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1