纹理灯光材质关系
来源:互联网 发布:bilibili定时关闭软件 编辑:程序博客网 时间:2024/04/29 08:53
-------------------------------西昌.何雨锋 纹理灯光材质关系
材质(Material)是物体表面的粗糙程度、反光度、透明度等因素组合。
纹理(Texture)是物体表面的花纹、纹路等
灯光纹理(LightMaterial)是物体表面是否接受周围的灯光照射。
在mesh中有一个函数:LoadXFile("xfilename",bool loadtexture,bool lightmaterial)就说明了这个问题。
当材质读取关闭时,读出来的东西将没有任何花纹,但是如果这时候灯光材质是打开的,那么它将接受灯光。
当材质读取打开时而灯光纹理关闭时,那么就出现物体虽然显示材质,但是在任何灯光环境下都保持不变。
当材质读取打开,同时灯光纹理也打开时,那么没在光照耀下的将变成黑色,但是一进入灯光环境中,不但纹理显示了,而且也受灯光影响了,这才是最真实的。
同样的其他物体的函数为:ACTOR2->load("mdlfile","name",灯光材质允许,纹理读取允许)
land的灯光材质纹理选项似乎没有找到,而land本身是自允许灯光材质的。
在无光照情况下
一般的材质为:SetAmbient (r,g,b,a) 周围材质 环境材质,颜色将合成出来,在无灯光下显示原来的材质,但是似乎RGB在负值时才有效。
Setdiffuse (r,g,b,透明度) 中部 这个材质透明度如果不是1的话,就会变得透明,记得要把渲染放在后面,否则透明就不真实了,其他几个参数对有纹理的物体完全无效。
SetEmissive(r,g,b,a) 吸收 反光度,前者为颜色,最后一个参数为强度
Setpower(float power) 强度 当强度很强时,就可以抵消很大程度的环境光,但是最后一个值超过1以后就不会有任何变化
Specular 反射 作用不明
再调节出了这些材质之后,怎样才能让这些材质与表面的纹理发生混合,产生出既有纹理又有材质的效果呢?
mesh->SetAdvancedBlending函数不知道有没有这作用。
mesh1->SetAdvancedBlending(tvtrue,(enum TrueVision3D::CONST_D3DBLEND) D3DBLEND_SRCALPHA,(enum TrueVision3D::CONST_D3DBLEND) D3DBLEND_INVSRCALPHA,-1,1);
好象没啥作用 混合模式
mesh1->SetBlendingMode(CONST_TV_BLENDINGMODE)
极有用处,记得读出的那些火光啊树啊为什么老有边缘吗?就是因为没用混合模式,如果使用参数TV_BLEND_ADD,那么将边缘全无!!
- 纹理灯光材质关系
- 光照、材质、纹理的关系
- 光照、材质、纹理的关系
- 材质纹理
- d3d灯光 材质
- DX灯光与材质
- D3D 材质和灯光
- 3D 顶点颜色 纹理 材质之间的关系
- d3d设置材质与灯光
- [OPENGL]纹理,材质,光照
- [OPENGL]纹理,材质,光照
- [OPENGL]纹理,材质,光照
- 纹理与材质
- 纹理 贴图 材质
- osg纹理材质设置
- DX中灯光和材质续
- XNA入门(三)灯光和材质
- 3DS MAX材质与灯光
- 鼠标抓取
- 水
- 特效
- 天空盒陆地行动
- Ubuntu10.04中手动安装最新jdk
- 纹理灯光材质关系
- LINUX学习之初学GCC
- 起雾
- 写文字
- 修改MDL模型
- eclipse 注释规范设置
- 详解ASP.NET页面生命周期
- 求公共字符串的经典源码
- [zz]linux系统中apt-get命令大全