计算边缘光照

简介: 原理简单说一下,主要是用来计算边缘光照的,首先通过视线与法线的夹角来找到模型的边缘,然后再根据距离的远近来控制发射光的强度。   [cpp] view plain copy   half rim = 1.0 - saturate(dot (normalize(IN.viewDir), IN.worldNormal));   o.Emission = _RimColor.rgb * pow (rim, _RimPower);     IN.viewDir是当前视角向量,IN.worldNormal是物体的法线。

原理简单说一下,主要是用来计算边缘光照的,首先通过视线与法线的夹角来找到模型的边缘,然后再根据距离的远近来控制发射光的强度。

 

[cpp]  view plain  copy
 
  1. half rim = 1.0 - saturate(dot (normalize(IN.viewDir), IN.worldNormal));  
  2. o.Emission = _RimColor.rgb * pow (rim, _RimPower);  



 

IN.viewDir是当前视角向量,IN.worldNormal是物体的法线。dot是计算视角和法线的点积,等于视角和法线夹角的cos值,Cos的值域是1-0,1-cos就成了0-1,在夹角90度时达到最大值,正好用来模拟侧光的强度(与视角成90度的部分光线最强,就是边缘光了)
把这个值的变化率用一个pow函数(rim的_rimPower次方)进行放大,就能强化边缘发亮的效果。

 

 

http://blog.csdn.net/silangquan/article/details/39580631

相关文章
|
4月前
[贴装专题] 基于halcon的最小二乘法计算吸嘴或机械轴旋转中心
[贴装专题] 基于halcon的最小二乘法计算吸嘴或机械轴旋转中心
55 0
|
4月前
|
算法
[贴装专题] 基于halcon的拟合矩形边缘验证贴装精度
[贴装专题] 基于halcon的拟合矩形边缘验证贴装精度
29 0
|
4月前
[Halcon&拟合] 拟合直线边缘并计算距离
[Halcon&拟合] 拟合直线边缘并计算距离
67 0
|
9月前
|
传感器
使用校准相机测量平面物体
使用校准相机测量平面物体。
82 0
|
9月前
|
存储 数据可视化 索引
校正图像亮度不均匀问题并分析前景对象
校正图像亮度不均匀问题并分析前景对象
62 0
JM
|
存储 编解码 算法
3D 实时全局光照技术(二)——直接光照
前言游戏引擎中的直接光照一般分为两大类:光源和环境光。光源一般有:平行光、点光源、聚光源、面光源等,而作为直接光照的环境光一般是指基于图片的光照(IBL-Image Based Lighting),这里的环境光要跟环境光遮蔽(AO-Ambient Occlusion) 中的环境光区分一下,AO 概念中的环境光一般指的是间接光照,更多差异可以看看这个知乎问答:Environment Light 和 
JM
299 0
3D 实时全局光照技术(二)——直接光照
|
PyTorch 算法框架/工具
【pytorch实现】用卷积核检测图中对角方向边缘(小练习)
【pytorch实现】用卷积核检测图中对角方向边缘(小练习)
|
人工智能 开发者 Python
边缘分布 | 学习笔记
快速学习边缘分布
206 0
边缘分布 | 学习笔记
|
算法 数据挖掘 计算机视觉
基于多目标视频图像边缘特征的核相关滤波跟踪算法
基于多目标视频图像边缘特征的核相关滤波跟踪算法
153 0
基于多目标视频图像边缘特征的核相关滤波跟踪算法
|
算法 Java Android开发
基于边缘保留滤波实现人脸磨皮的算法
基于边缘保留滤波实现人脸磨皮的算法
148 0
基于边缘保留滤波实现人脸磨皮的算法