游戏设计颜色和灯光

游戏设计颜色和灯光

ID:41132930

大小:698.50 KB

页数:25页

时间:2019-08-17

游戏设计颜色和灯光_第1页
游戏设计颜色和灯光_第2页
游戏设计颜色和灯光_第3页
游戏设计颜色和灯光_第4页
游戏设计颜色和灯光_第5页
资源描述:

《游戏设计颜色和灯光》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、MLecture5 Color&Lighting ——颜色和光照ContentsColorRepresentationShadingLightComponentsMaterialsVertexNormalsLightSourcesSampleApplicationsMColorRepresentation在Direct3D中,颜色是使用RGB(Red,Green,Blue)三部分来描述的。这三个分量通过加性混合(additive)决定了最终颜色(可以表示上百万种颜色)两种不同的存储RGB数据的结构:(1)D3DCOLOR:实际上一个

2、DWORD(32位)类型。在D3DCOLOR类型中的这些位按照8-bit被分为4个部分,每一部分存储的是该色的亮度值。每种颜色占用内存的一个字节,各颜色亮度值的取值范围是0-255。这个值越接近0就越暗,越接近255就越亮。MColorRepresentationD3DCOLOR赋值宏D3DCOLOR_ARGB:完成指定每个颜色分量并且把它放到D3DCOLOR中适当位置的任务。宏D3DCOLOR_XRGBMD3DCOLORbrightRed=D3DCOLOR_ARGB(255,255,0,0);D3DCOLORsomeColor=D3D

3、COLOR_ARGB(255,144,87,201);#defineD3DCOLOR_XRGB(r,g,b)D3DCOLOR_ARGB(0xff,r,g,b)ColorRepresentation(2)D3DCOLORVALUE:使用一个浮点数来表示每一部分的亮度值。其取值范围是0-1,0表示没有亮度,1表示最大亮度。Mtypedefstruct_D3DCOLORVALUE{floatr;//theredcomponent,range0.0-1.0floatg;//thegreencomponent,range0.0-1.0floatb

4、;//thebluecomponent,range0.0-1.0floata;//thealphacomponent,range0.0-1.0}D3DCOLORVALUE;可以使用结构D3DXCOLOR替代D3DCOLORVALUE,前者不仅包含与后者相同的数据成员,还提供了一组有用的构造函数和重载运算符,为颜色运算提供了便利。(两种结构可以相互转换)ColorRepresentation顶点颜色图元的颜色是由构成它的顶点的颜色决定的。因此,必须把一个颜色成员加入到我们的顶点数据结构中。注意:D3DCOLORVALUE类型不能用在这里,

5、因为Direct3D希望用一个32位的值来描述顶点的颜色MShading着色处理发生在光栅化和指定图元上的顶点颜色怎样被计算成像素颜色之间。目前使用2种着色模式:平面着色(flatshading)Gouraud着色(Gouraudshading)。平面着色:图元像素的颜色是均匀的,且只指定图元第一个顶点的颜色。因此一旦三角形的第一个顶点被指定成红色,那么它的其他两个顶点也将会是红色而忽略其他顶点颜色。平面着色使物体呈现是斑驳的,因为没有从一个颜色到另一个颜色的平滑过渡。Gouraud着色:平滑着色,图元表面的颜色是由每个顶点通过线性插值

6、来获得。MLightComponents为了提高场景的真实性,我们可以为其加入灯光。灯光也能帮助表现物体的立体感以及物体的体积。当使用灯光时,我们不再自己指定顶点的颜色;Direct3D中每个顶点都通过灯光引擎来计算顶点颜色,该计算是基于定义的灯光资源,材质以及灯光资源关心的表面方向。通过灯光模型计算顶点颜色会得到更真实的场景。MLightComponents在Direct3D灯光模型中,灯光是通过灯光资源的三个成员之一来照射的,即有三种灯光。环境光(AmbientLight)——这种类型的灯光将被其他所有表面反射且被用在照亮整个场景。

7、例如,物体的各部分都被照亮,对于一个角度,甚至穿过不在光源直接照射的地方他们都能被照亮。漫反射(DiffuseReflection)——这种灯光按特殊方向传播。当它照射到一个表面,它将在所有方向上均匀的反射。因为漫射光在所有方向上都均匀的反射,被反射的光线将到达眼睛而与观察点无关,因此我们不必为观察者考虑。因而,漫射光仅仅需要考虑灯光方向和表面的姿态。这种灯光将成为你的资源中照射的普通灯光。MLightComponents镜面反射(SpecularReflection)——这种灯光按照特殊方向传播。当它照射到一个表面时,它严格地按照一个

8、方向反射,这将产生一个明亮的光泽,它能在某角度被看见。因为这种灯光在一个方向反射,所以观察点必须考虑灯光的方向和表面姿态,且必须按照镜面灯光等式来考虑。镜面灯光被用在物体上产生高光的地方,这种光泽只有在灯光

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。