热浪扭曲
• 每个人都对自然界中的这种大气效果很熟悉
• 光线在穿过不同密度的介质时会弯曲
热微光
• 热空气密度比冷空气小
• 密度影响介质的折射率
• 热空气上升的同时会被冷空气替代, 这会改变光射入眼睛的路线
• 渲染场景到RGBA离屏缓存(可渲染的纹理)
• 颜色写入RGB值
• 扭曲度写入Alpha通道
• 绘制全屏长方形到后备缓冲区
• 对离屏缓冲采样以获得扭曲度
• 用扰动贴图来确定扰动向量, 用扭曲度放缩后偏移原始纹理坐标
• 基于扰动纹理坐标的可增长泊松分布(根据扭曲度来进行偏移)
扭曲度
• 逐像素判断当前像素被扭曲的程度
• 当光线穿过更多的气体时, 折射程度也相应增加
• 扭曲随场景深度增加
– 开始时把渲染目标的Alpha通道清为1.0,表示最大深度
– Pixel shader把每个像素的深度写入alpha通道
• 深度提供了一个很好的全局扭曲方案, 但是你的美工们希望局部控制
• 热浪几何体可以用来定义扭曲范围, 如热空气出口和喷气发动机尾
• 热浪纹理可以使热浪几何本上的扭曲动起来
热度几何体 & 热度纹理
• 像素扭曲度来源来热度纹理
• 扭曲度被深度放大
• 用高度进一步放大 (纹理坐标)并且 N.V 来避免生硬的边缘
• 扭曲度被写入Alpha通道
全屏矩形
• 全屏矩形用离屏缓存(可渲染的纹理)来绘制并且用扰动贴图作为纹理
扰动贴图
• 一个2D向量储存在红色和绿色通道内
• 在全屏矩形两个方向上卷动贴图并采样两次
• 平均两次采样并把值变换到 [-1.0, 1.0] 的范围内
• 用扭曲度放缩向量
• 结果就是扭曲向量
扭曲向量
• 扭曲向量用于偏移原始纹理坐标
• 向量的大小取决于扭曲度
• 这个新的扰动纹理用于读入离屏缓存
可增长泊松分布
• 模糊中心在扰动纹理坐标的中间
• 偏移基于扭曲度
扭曲 Shader
float4 main (PsInput i) : COLOR
{
// fetch from perturbation map with scrolling texture coords
float3 vPerturb0 = tex2D (tPerturbationMap, i.texCoord1);
float3 vPerturb1 = tex2D (tPerturbationMap, i.texCoord2);
// scale and bias: (color - 0.5f)*2.0f
vPerturb0 = SiConvertColorToVector(vPerturb0);
vPerturb1 = SiConvertColorToVector(vPerturb1);
// average perturbation vectors
float2 offset = (vPerturb0.xy + vPerturb1.xy) * 0.5f;
// get distortion weight from renderable texture (stored in alpha)
float4 cDistWeight = tex2D (tRBFullRes, i.texCoord0);
// square distortion weight
cDistWeight.a *= cDistWeight.a;
// compute distorted texture coords
offset.xy = ((offset.xy * cDistWeight.a) * fPerturbScale) + i.texCoord0;
// fetch the distorted color
float4 o;
o.rgb = SiPoissonDisc13RGB(tRBFullRes, offset, 1.0f/screenRes.xy, cDistWeight.a);
o.a = 1.0f;
return o;
}
|
可增长泊松分布 Shader
float3 SiGrowablePoissonDisc13FilterRGB
(sampler tSource, float2 texCoord, float2 pixelSize, float discRadius)
{
float3 cOut;
float2 poisson[12] = {float2(-0.326212f, -0.40581f),
float2(-0.840144f, -0.07358f),
float2(-0.695914f, 0.457137f),
float2(-0.203345f, 0.620716f),
float2(0.96234f, -0.194983f),
float2(0.473434f, -0.480026f),
float2(0.519456f, 0.767022f),
float2(0.185461f, -0.893124f),
float2(0.507431f, 0.064425f),
float2(0.89642f, 0.412458f),
float2(-0.32194f, -0.932615f),
float2(-0.791559f, -0.59771f)};
// Center tap
cOut = tex2D (tSource, texCoord);
for (int tap = 0; tap < 12; tap++)
{
float2 coord = texCoord.xy + (pixelSize * poisson[tap] * discRadius);
// Sample pixel
cOut += tex2D (tSource, coord);
}
return (cOut / 13.0f);
}
|
分享到:
相关推荐
插件Heat Distortion 插件操作非常简单,可以模拟真实的热浪和失真效果,具有高级先进的噪波选项功能、风和以及更多功能,支持模糊,扭曲,错乱,形态等属性操作,值得一提的是插件直接支持MASK操作,操 作比较简单...
Unity URP 做热空气扭曲的Demo项目,兼容扭曲半透明,并处理与PostProcessing的Bloom冲突问题。
heat distortion是一款ak最新发布的ae插件,又叫做热浪变形紊乱插件,通过该插件可以简单快速的就能搞定波形紊乱效果。软件操作比较简单,支持模糊,扭曲,错乱,形态等属性操作,值得一提的是插件直接支持MASK操作...
Heat Distortion,可以模拟真实的热浪和失真效果,具有高级先进的噪波选项功能、风和以及更多功能,支持模糊,扭曲,错乱,形态等属性操作,值得一提的是插件直接支持MASK操作,操作比较简单,可以模拟真实的热浪和...
插件Heat Distortion 插件操作非常简单,可以模拟真实的热浪和失真效果,具有高级先进的噪波选项功能、风和以及更多功能,支持模糊,扭曲,错乱,形态等属性操作,值得一提的是插件直接支持MASK操作,操 作比较简单...
热浪对人体健康的影响及应对措施,杨晓峰,郑有飞,热浪通常指持续几天或几周的高温高湿酷热天气,热浪会导致较高的患病率和死亡率,对有心血管或呼吸系统疾病患者和老年人更为明显
支持关键字,热销榜,行业类型的商品下载,比官方提供的工具更方便,细致,快捷!
南京高温热浪时空分布数据集(2013.8.7-13).rar
热浪论坛(ReLang BBS) v3.11.29 源代码
全面提升你的论坛速度, 此版本比热浪之前的版本运行速度都要快。
海洋热浪(MHW)是海洋中长时间的高温极端事件,可对海洋生物造成毁灭性影响,进而对气候系统和社会经济产生严重影响。根据美国国家海洋和大气管理局(NOAA)2-1年全球遥感最佳插值(OI)SST V4高分辨率(2015/2018...
海洋热浪(MHW)是海洋中长时间的高温极端事件,可对海洋生物造成毁灭性影响,进而对气候系统和社会经济产生严重影响。根据美国国家海洋和大气管理局(NOAA)2-1年全球遥感最佳插值(OI)SST V4高分辨率(2019/2020...
一道闪电滑过,Heat Distortion(热浪变形紊乱插件)插件在 Video Copilot 横空出世,这个插件就是为上面的烦恼而生的,释放你的手指,简单快速的就能搞定波形紊乱效果, Heat Distortion 插件操作比较简单,支持...
启明创投甘剑平:互联网创业热浪呈现三趋势.docx
电信设备-具有排水槽的隔热浪板.zip
户用光伏热浪来袭-光伏行业深度报告.pdf
全面提升你的论坛速度,此版本比热浪之前的版本运行速度都要快。
这是我在ALOHA上找到的检查表,上传上来供大家参考
HTML5 canvas实现地面火热的热浪蒸腾动画特效源码.zip
算法-热浪(信息学奥赛一本通-T1379).rar