• 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的材质会反射所有入射的绿光。具有多重反射系数值(译注:漫反射、镜面反射、等等)的材质可以创建不同类型的效果,更多信息,请参阅材质属性

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

  • 相关阅读:
    DevNet网站上线
    .net 开发框架(一)[数据通用层]
    发布.NET 开发工具 DevNet4.0.2 开发框架 Maper 映射
    .net 开发框架(二) [实体层与ScriptQuery类]
    SpringDataJPA中使用EntityManager操作返回多表连接结果集
    S3 Bucket object copy
    【Spring】RestTemplateが投げる例外クラスまとめ
    【MySQL】Geometry型を使って地点間の距離を求める
    about mvn license
    springboot配置MappingJackson2HttpMessageConverter最佳实践
  • 原文地址:https://www.cnblogs.com/FWFC/p/8998876.html
Copyright © 2020-2023  润新知