雾化
来源:互联网 发布:手机指南针软件 编辑:程序博客网 时间:2024/04/30 01:03
雾化原理
雾化效果基于点到相机的距离将场景产生的颜色与雾的颜色进行混合而得到。距离相机近,雾化效果越不明显,距离相机越远雾化效果越强。由此有雾化混合公式:
Color = f * SceneColor + (1 - f) * FogClor,其中Color是混合后的结果颜色,SceneColor是没有雾化时场景的最初颜色,FogColor是雾的颜色,f是混合因子。
雾化混合因子的计算
雾化混合因子在不同的雾化模式中有不同的计算方式:
- 线性雾化:
f = (end - distance)/(end - start)
其中distance是点到相机的距离,很多应用了为了简化计算直接将点在相机空间中的z看成是到相机的距离。
- 指数雾化:
f = 1 / ( exp(density * distance) )
其中density表示雾的浓度。 在unity中计算公式是:exp2( ln(2) / (distance * density) )
- 二次指数雾化:
f = 1 / ( exp(density*density * distance * distance) )
在unity中计算公式是:exp2( ln(2) / (distance * distance * density * density) )
顶点雾化和像素雾化
雾化可以在顶点阶段,也可以在像素阶段进行。
顶点雾化是逐顶点计算的,并且在顶点阶段就根据点到相机的距离计算出雾化因子,在像素阶段进行混合。
像素雾化是逐像素计算的,在顶点阶段计算出点到相机的距离,在像素阶段计算出雾化因子并进行混合。
0 0
- 雾化
- OGL雾化
- 雾化视图
- DirectX示例--顶点雾化
- d3d像素雾化
- Direct3D中的雾化效果
- OGRE雾化效果入门
- 反走样与雾化
- 百度博客 d3d 雾化
- Direct3D中的雾化效果
- Direct3D中的雾化效果
- OpenGL: 雾化效果
- Unity3D雾化效果
- 利巴韦林 雾化配方
- opengles实现雾化效果
- android opengl es 雾化效果
- OpenGL如何实现雾化效果
- Unity5 雾化效果(一)
- SRS产品规划
- poj3481 Double Queue(set模拟or splay)
- 141. Linked List Cycle
- C#复制数组的两种方式,以及效率比较
- Undefined symbols for architecture i386: "_OBJC_CLASS_$_xxxxx", referenced from:
- 雾化
- Effective C++阅读笔记(二):设计与声明
- JAVA学习之创建一个小的命令行程序以及创建一个小的有对话界面的程序
- tableview 编辑状态下,UITableViewCellEditingStyleDelete | UITableViewCellEditingStyleInsert 多选的时候,替换圆圈图片
- 欢迎使用CSDN-markdown编辑器
- nyoj 还是打印菱形
- JAVA实现 百度两点间的距离 getDistance
- 3516a
- js 正则表达式 贪婪与惰性