【原创】delphi fmx 3d 编程学习 Cube 和 颜色纹理材质

delphi fmx 3d 立方体  Cube 它比 StrokeCube 多了一个 材质来源(MaterialSource) 属性  

打开控件栏,有一个 Materials 页签 , 拖出  ColorMaterialSource1,TextureMaterialSource1  和  LightMaterialSource1 控件Cube 的 MaterialSource 是可以指定这材质来源,

如上图 :第1个 为未指定,显示默认红色
    第2个指定了 ColorMaterialSource(颜色材质)
    第3个指定了 TextureMaterialSource (纹理材质)
    LightMaterialSource 控件 可认为是光照材质纹理 (前2个的集合)
这3个材质来源没有事件,只有设置属性。  

“”

LightMaterialSource

    Ambient    周围环境光照颜色
    Diffuse    漫反射颜色
    Emissive    自发光颜色,对周围环境照亮
    Specular    高光反射颜色
    Shininess    材质的反光亮度    

最后一点:每一个3d对象都有一个  TwoSided(双面渲染技术)属性。 当我们渲染一个完全封闭的3d对象时,多边形背面都是隐藏的,我们无法看见。
但是如果这个物体有一些空洞,那么一些背面就可以被看见了。然而因为这些多边形的法向量的方向在这个时候不是对的,所以会渲染出错误的结果。
为了合理的渲染这些背面,我们必须反转法向量,然后基于这些反转的法向量来计算光照,这时就要用到这个双面渲染技术属性,设置 TwoSided为True。

 

添加新评论

纯文本

  • 不允许使用HTML标签。
  • 自动断行和分段。
  • 网页和电子邮件地址自动转换为链接。
请输入图片中的字符,不区分大小写