IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 游戏开发 -> Unity Shader入门精要学习笔记——15章 15.3 雾效 -> 正文阅读

[游戏开发]Unity Shader入门精要学习笔记——15章 15.3 雾效

要点

在片元着色器通过逆矩阵来重建世界坐标,性能消耗非常大。需要快速从深度纹理中重建世界坐标

目标效果

  1. 基于高度的雾效
  2. 不均匀雾效

准备

  1. 噪声纹理

过程

重建世界坐标

利用 近裁面的四个方向向量,插值后在片元着色器中,乘以深度值得到,点对于摄像机的偏移,再加上摄像机的位置得到。

float4 worldPos = _worldSpaceCameraPos + linearDepth * interpolatedRay
_worldSpaceCameraPos:摄像机在世界空间下的位置
linearDepth:由深度纹理得到的线性深度值
interpolatedRay:由顶点着色器输出(近裁剪面中心到四个角的向量)并插值后得到的射线,不仅包含了该像素到摄像机的方向,也包含了距离信息。
PS:
因为后处理本身处理的是一个quad,所以可以这么插值interpolatedRay

雾计算

在unity内置的雾效中有三种计算方式:
在这里插入图片描述
得到fogDensity 后,再乘一下直接调雾浓度的参数,最后用来插值

float fogDensity = (_FogEnd - worldPos.y) / (_FogEnd - _FogStart); 
fogDensity = saturate(fogDensity * _FogDensity);

fixed4 finalColor = tex2D(_MainTex, i.uv);
finalColor.rgb = lerp(finalColor.rgb, _FogColor.rgb, fogDensity);

不均匀雾

加入噪音的偏移

float2 speed = _Time.y * float2(_FogXSpeed, _FogYSpeed);
float noise = (tex2D(_NoiseTex, i.uv + speed).r - 0.5) * _NoiseAmount;
			
float fogDensity = (_FogEnd - worldPos.y) / (_FogEnd - _FogStart); 
fogDensity = saturate(fogDensity * _FogDensity * (1 + noise));

总结

想起来重建像素的世界坐标这个方法,可以用于自己软渲染管线的shadowmap实现,可以节省好多矩阵运算。

  游戏开发 最新文章
6、英飞凌-AURIX-TC3XX: PWM实验之使用 GT
泛型自动装箱
CubeMax添加Rtthread操作系统 组件STM32F10
python多线程编程:如何优雅地关闭线程
数据类型隐式转换导致的阻塞
WebAPi实现多文件上传,并附带参数
from origin ‘null‘ has been blocked by
UE4 蓝图调用C++函数(附带项目工程)
Unity学习笔记(一)结构体的简单理解与应用
【Memory As a Programming Concept in C a
上一篇文章      下一篇文章      查看所有文章
加:2021-09-20 16:04:04  更:2021-09-20 16:04:10 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/28 4:43:11-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码