zoukankan      html  css  js  c++  java
  • 光照

    虚拟图形的真实感是通过其表面的颜色和明暗来表现的。

    一个物体表面呈现的颜色,是由面向视线方向辐射的光能决定。

    图形学中用一个同时包含光能大小和方向的物理量,即光亮度(luminance)光强(intensity of light),来描述物体表面的辐射光Emitted(max中的自发光),

    最终呈现的颜色是使用该物理量在光照模型中经过计算得到的。

    光照模型要考虑的问题包括:

        1)物体表面的反射光

        2)周围环境的光对物体表面的影响。例如:光滑物体反射出的环境光;透明物体透出其背后的物体。

    除此外,体现材质可使用纹理贴图,即纹理映射(texture mapping)

        3)将纹理图案一并计算

    光照到物体表面之后,会分成三部分1)反射;2)透射;3)被吸收为热。

    反射光分为三个分量:1)环境反射Ambient 2)漫反射Diffuse 3)镜面反射Specular (涉及Highlight区域) 

    加上辐射光Emitted构成了OpenGL 的简单光照模型。

    辐射光:从物体发出,并且不受任何光源影响;

    环境光:由光源发出经环境多次散射而无法确定方向的光。

    漫射光:来自同一个方向,垂直于物体时更明亮。照射到物体后,从多个方向发散出去。无论视点在哪儿都一样亮。

    镜面光:来自特定方向,并从另一方向发射。  

    明暗处理

    光滑曲面常用细分的多边形逼近,每个小多边形轮廓/内部用单一的颜色或许多不同的颜色来勾画。如果用单一颜色来勾画,就是平面明暗处理Flat shading;用许多颜色处理就称光滑明暗处理Smooth Shading,也称Gourand Shading。设置明暗模式的函数glShadeModel(GLenum mode)

    材质 

    OpenGL用材料对光的红、绿、蓝的反射率来定义近似材料颜色。和光源一样,材料颜色也分成环境、漫反射和镜面反射。也就是环境的红绿蓝反射率、漫反射的红绿蓝反射率和镜面的红绿蓝反射率。除了三种反射光外,材质还有一个GL_SHININESS属性,表示镜面反射的高光值。

  • 相关阅读:
    C#函数参数前的修饰符
    C#正则表达式简单案例解析
    C#正则表达式
    C#反射Reflection
    C#事件
    C#委托的使用
    无法解析主机报错
    SparkStreaming对接rabbitMQ
    load文件到hive,并保存
    kafka模式对比
  • 原文地址:https://www.cnblogs.com/mumuliang/p/1893277.html
Copyright © 2011-2022 走看看