ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

着色(Shading)

2022-01-01 17:34:12  阅读:176  来源: 互联网

标签:漫反射 光线 point 物体 着色 shading Shading


着色(Shading),有些地方亮些,有些地方暗些,有些地方有颜色,有些地方没颜色。我们给它的定义是给不同物体应用不同材质的过程。

最简单的着色模型:Blinn-Phong 反射模型。

下图分别表示镜面高光、漫反射和环境照明(间接光照)。

我们现在考虑光照是考虑任何一个点上,即 shading point 这个点它的着色结果是多少。定义观察方向 v、法线 n、光照方向 l。既然定义的都是方向,那么这些向量都是单位向量。

着色跟阴影没关系,我们不考虑这个点是不是在阴影内,我们只看这个点跟光照和观察角度的关系,不考虑其他物体的存在,是局部发生的事情。

漫反射:一束光线打到一个物体表面某一点,光线会被均匀地反射到各个不同的方向。

之前的图像也可以看到,同样的光以不同的角度照上去,得到的明暗是不一样的。这是为什么呢?

假如光是离散的,我可以用一根根光线来表示照射,每一根光线代表了固定的能量。第一幅图物体表面与光线垂直,可以接收到所有的 6 根光线,而第二幅图转动了 60° 就只能接收到 3 根光线了,也就是说,这时候物体表面就应该暗一点。推广到任意角度就得到右边的方程,Lambert 余弦定律。

也可以联想到我们地球上为什么有四季之分,也是因为阳光的直射的角度不同,当南半球是夏天的时候北半球是冬天。

点光源光照的衰减。当距离点光源距离是 1 的时候,定义光的强度为 I,当它传播到距离是 r 的时候,光强为 I / r2

假设我们知道了一个点光源,然后我们又知道 shading point 离点光源有多远,那我们就知道有多少的光传播到 shading point 附近。我们又知道有多少的光会被 shading point 吸收,那我们结合起来,就知道最后漫反射(Diffuse)能看到多少明暗了。

为什么有个 max(0, n*l),因为两个向量点乘如果小于零,我们就认为没有什么物理意义,光线穿过物体表面,打到下面的材质,这里也没有折射的什么事,所以直接令其为 0。

系数 kd 表示有多少光线被物体表面给吸收了,即反射率,如果 kd=0,光线打到物体表面所有光线都被吸收了,没有能量反射出去,那就是黑色了。

在漫反射下,与观测的方向 v 完全没有关系,你从任何角度上看这个着色点都是一样的明暗,从右边的式子上也是如此。

 

标签:漫反射,光线,point,物体,着色,shading,Shading
来源: https://www.cnblogs.com/hanselhuang/p/15755635.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有