zoukankan      html  css  js  c++  java
  • Direct3D光与材质的颜色值

    一直搞不清光如何作用于材质的,他们颜色又是如何结合的。今天看到一篇文章,终于弄懂啦:

    http://www.cppblog.com/liangairan/articles/94103.html

    主要部分复制到下面吧:

    Microsoft® Direct3D®用四个成员——红、绿、蓝和阿尔法——描述颜色,并将它们合成,产生最终颜色。Direct3D为C++程序定义了D3DCOLORVALUE结构,该结构包含了所有成员,每个成员是一个浮点数,一般在0.0到1.0范围内,闭区间。虽然光照和材质使用相同的结构描述颜色,但对结构中的值的使用略有不同。

    光源的颜色值表示它发出的某种光成分的数量。因为光不包含阿尔法成员,所以只有颜色的红、绿和蓝成员是有用的。可以把三种成员想象成投影电视的红、绿、蓝镜头。每个镜头可能被关掉(相应成员的值为0.0),或是位于范围内的某个值。镜头中照射出的颜色组合成光的最终颜色。如R: 1.0, G: 1.0, B: 1.0组合成白光,而R: 0.0, G: 0.0, B: 0.0则完全不发光。也可以产生只发出某个成员颜色的光,这样可以得到纯红、纯绿或纯蓝光,或者也可以将它们组合,得到黄色或紫色。甚至可以将颜色的成员设为负值,这样就产生了实际上将光从场景中移除的“暗光(dark light)”,得到场景变暗的效果。或者,也可以将成员设为大于1.0的值,产生特别亮的光。

    另一方面,材质的颜色值表示用该材质渲染的表面对某种光成分的反射度。颜色成员为R: 1.0, G: 1.0, B: 1.0, A: 1.0的材质会反射所有的入射光。同样,成员为R: 0.0, G: 1.0, B: 0.0, A: 1.0的材质会反射所有入射的绿光。具有多重反射系数值(译注:漫反射、镜面反射、等等)的材质可以创建不同类型的效果,更多信息,请参阅材质属性

    环境光的颜色值和用于直射光的光源及材质的颜色值是不一样的。更多信息,请参阅直射光与环境光的比较

  • 相关阅读:
    从零开始webpack4.x(五) js处理
    从零开始webpack4.x(四)样式loader
    从零开始webpack4.x(三)html插件
    从零开始webpack4.x(二)基础
    从零开始webpack4.x(一)介绍
    【转】react和vue渲染流程对比
    css3相关
    html5相关
    this指向
    整数划分问题(递归)
  • 原文地址:https://www.cnblogs.com/FWFC/p/8998876.html
Copyright © 2011-2022 走看看