天行健 君子当自强而不息

光照与材质

光照与材质(5)      摘要: 在示例程序MultiLights中一共使用了三个光源,分别是漫反射方向光光源、漫反射点光源、镜面反射方向光光源,而且可以控制分别使用三个光源和同时使用三个光源的显示效果。为了测试不同光源的光照效果,在示例程序中通过键盘上的数字键来控制3个光源的启用。  
 
光照与材质(4)      摘要: 在程序中可以根据需要按以下步骤添加光照效果:

(1)激活光照运算。

(2)设置物体表面材质。材质属性是针对整个图形系统的,如果场景中的物体具有不同的材质属性,在渲染物体前要分别设置其材质属性。

(3)设置光源。Direct3D在一个场景中最多支持8个光源,对每个设置好的光源还要设置是否启用。 
 
光照与材质(3)      摘要: 在Direct3D的一个场景中,最多可设置8个光源,设置光源由IDirect3DDevice9::SetLight()函数完成。

函数IDirect3DDevice9::SetLight()只是设置光源,在默认情况下,设置的任何光源都还不起作用,具体使用哪些光源,由函数IDirect3DDevice9::LightEnable()确定。 
 
光照与材质(2)      摘要: 光照计算模型说明图形系统以什么样的方法计算灯光照射在物体上的颜色值,它是一种计算方法,而不是具体的灯光。光源则定义了三维场景中具体的灯光,包括位置、方向、强度等信息。相同的光源可以根据物体表面材质的不同,通过不同的光照模型显示。比如,在卧室中的一盏台灯,照射在布质床单上时,应使用漫反射模型;而照射在玻璃表面的桌子上时,则应使用镜面反射模型计算光照效果。 
 
光照与材质(1)      摘要: 在三维图形程序中使用光照效果能够有效地增强场景的真实感。在Direct3D中,通过计算场景中的光线和物体表面材质反射光线颜色的数学交互,可使光线模型接近于真实世界的照明系统。

在真实世界中,光线在到达眼睛之前经过了物体表面的多次反射,每次反射时,物体表面都会吸收一些光,有些被随机反射扩散出去,其余的到达下一个物体的表面或眼睛。真实世界中光线反射的效果就是光线跟踪算法需要模拟实现的。尽管光线跟踪算法能够创建非常逼真的与自然界中观察到极为相似的景象,但是还没有实时程序能够完成这些运算。考虑到实时渲染的需要,Direct3D使用更简单的方法进行光照计算。Direct3D光照计算模型包括4种:环境光、漫反射光、镜面反射光和自发光。它们的结合能灵活高效地解决三维图形程序中的光照问题。  

posted on 2008-05-05 09:32 lovedday 阅读(1897) 评论(0)  编辑 收藏 引用 所属分类: ■ DirectX 9 Program


只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


公告

导航

统计

常用链接

随笔分类(178)

3D游戏编程相关链接

搜索

最新评论