在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ Android/ OpenGL 光照模型
繪制線(xiàn)段 Line Segment
投影變換 Projection
繪制迷你太陽(yáng)系
繪制一個(gè)球體
繪制三角形 Triangle
OpenGL 光照模型
三維坐標(biāo)系及坐標(biāo)變換初步
定義 3D 模型的前面和后面
繪制一個(gè) 20 面體
顏色 Color
Depth Buffer
材質(zhì)及光照示例
基本幾何圖形定義
關(guān)于EGL
導(dǎo)言
Viewing 和 Modeling(MODELVIEW) 變換
FrameBuffer
設(shè)置光照效果 Set Lighting
Viewport 變換
階段小結(jié)
繪制點(diǎn) Point
OpenGL ES API 命名習(xí)慣
通用的矩陣變換指令
關(guān)于 OpenGL ES
創(chuàng)建實(shí)例應(yīng)用 OpenGLDemos 程序框架
OpenGL ES 管道(Pipeline)
GLSurfaceView

OpenGL 光照模型

前面繪制球體時(shí) Android OpenGL ES 開(kāi)發(fā)教程(22):繪制一個(gè)球體 ,為了能看出3D效果,給場(chǎng)景中添加光源。如果沒(méi)有光照,繪出的球看上去和一個(gè)二維平面上圓沒(méi)什么差別,如下圖,左邊為有光照效果的球體,右邊為同一個(gè)球體但沒(méi)有設(shè)置光源,看上去就沒(méi)有立體效果,因此 OpenGL 光照效果對(duì)顯示3D效果非常明顯。

http://wiki.jikexueyuan.com/project/opengl-es-guide/images/94.png" alt="" />

在 OpenGL 光照模型中光源和光照效果可以細(xì)分為紅,綠,藍(lán)三個(gè)部分,光源由紅,綠,藍(lán)強(qiáng)度來(lái)定義,而物體表面材料由其反射紅,綠,藍(lán)的程度和方向來(lái)定義。OpenGL 光照模型使用的計(jì)算公式是對(duì)于現(xiàn)實(shí)世界光照的一個(gè)近似但效果非常好并適合快速計(jì)算。

OpenGL 光照模型中定義的光源可以分別控制,打開(kāi)或關(guān)閉,OpenGL ES支持最多八個(gè)光源。

OpenGL 光照模型中最終的光照效果可以分為四個(gè)組成部分:Emitted(光源), ambient(環(huán)境光),diffuse(漫射光)和specular(鏡面反射光),最終結(jié)果由這四種光疊加而成。

http://wiki.jikexueyuan.com/project/opengl-es-guide/images/95.png" alt="" />

Emitted : 一般只發(fā)光物體或者光源,這種光不受其它光源的影響。

ambient: 指光線(xiàn)經(jīng)過(guò)多次反射后已經(jīng)無(wú)法得知其方向(可以看作來(lái)自所有方向),可以成為環(huán)境光,該光源如果射到某個(gè)平面,其反射方向?yàn)樗蟹较颉?strong>Ambient 不依賴(lài)于光源的方向。

diffuse:當(dāng)一束平行的入射光線(xiàn)射到粗糙的表面時(shí),因面上凹凸不平,所以入射線(xiàn)雖然互相平行,由于各點(diǎn)的法線(xiàn)方向不一致,造成反射光線(xiàn)向不同的方向無(wú)規(guī)則地反射,這種反射稱(chēng)之為“漫反射”或“漫射”。這個(gè)反射的光則稱(chēng)為漫射光。漫射光射到某個(gè)平面時(shí),其反射方向也為所有方向。diffuse 只依賴(lài)于光源的方向和法線(xiàn)的方向。

specular : 一般指物體被光源直射的高亮區(qū)域,也可以成為鏡面反射區(qū),如金屬。specular 依賴(lài)于光源的方向,法線(xiàn)的方向和視角的方向。

盡管光源可能只發(fā)送某一頻率的光線(xiàn),但 ambient,diffuse 和 specular 可能不同。比如使用白光照射一堵紅墻,散射的光線(xiàn)可能為紅色。OpenGL 允許為光源分別設(shè)置紅,綠,藍(lán)三個(gè)元素的值。

最終決定所看到物體的顏色除了光源的顏色和方向外,還取決于物體本身的顏色,比如紅色的光照在紅色的物體和藍(lán)色的物體,最終看到的物體一個(gè)還是紅色,一個(gè)為黑色。OpenGL 中對(duì)物體材料(Material)的顏色是通過(guò)其反射紅,綠,藍(lán)的比例來(lái)定義的。 和光源一樣,物體的顏色也可以有不同的 ambient,diffuse 和 specular,表現(xiàn)為反射這些光的比例。ambient,diffuse 反射通常為同樣的顏色,而 specular 常常表現(xiàn)為白色或灰色光,如使用白光照射一個(gè)紅色的球,球的大部分區(qū)域顯示為紅色,而高亮區(qū)域?yàn)榘咨?/p>