http://www.crytek.com/cryengine/presentations/secrets-of-cryengine-3-graphics-technology 很多宝贝里面 不止题目那俩 soft alpha test不用msaa的话用后处理 screen space reflection用 ray tracing ******************************************* screen space reflection /real time loc…
1.Cubemap是啥 Cubemap,即立方体纹理,包含6张图像,每张图像对应立方体的一个面,跟二维纹理不同,我们使用三维坐标去对这种纹理进行采样, 在unity中,可以使用Cubemap来实现天空盒子以及环境映射,环境映射可以模拟出场景中周围的环境,使用了环境映射材质的物体可以反射出周围的环境,就像反光镜或者反光金属一样.   2.制作Cubemap 通常,制作Cubemap的方法大概有三种,第一种是提供一种具有特殊布局的纹理,类似全景图,然后将该纹理的Texture Shape设置为Cub…
基本原理与实现 主要使用噪声和透明度测试,从噪声图中读取某个通道的值,然后使用该值进行透明度测试. 主要代码如下: fixed cutout = tex2D(_NoiseTex, i.uvNoiseTex).r; clip(cutout - _Threshold); 完整代码点这里 边缘颜色 如果纯粹这样镂空,则效果太朴素了,因此通常要在镂空边缘上弄点颜色来模拟火化.融化等效果. 1. 纯颜色 第一种实现很简单,首先定义_EdgeLength和_EdgeColor两个属性来决定边缘多长范围要显示…
第四部分讲一下如何在2D屏幕空间步进光线. http://casual-effects.blogspot.com/2014/08/screen-space-ray-tracing.html 中的代码感觉不太好理解,这里的代码是按照我自己的理解去重新实现的简单版,在效率上可能不如这个网址中的代码. 3D空间的光线步进 原本的实现中,我们得到光线后,将其在3D空间中进行步进,再投影到2D空间上.在投影过后,3D空间中均匀的采样点在2D空间中就不是均匀分布的了. (图来自 http://casual-…
traceRay函数 在上一篇中,我们有如下签名的traceRay函数 bool traceRay(float3 start, float3 direction, out float2 hitPixel, out float3 debugCol ) { } 其中的参数意义都很明了.start和direction是相机空间下的光线起点,以及光线方向. traceRay的核心代码并不复杂,如下: #define RAY_LENGTH 2.0 #define STEP_COUNT 64 //maxim…
SSSR进一步调优,对标寒霜级技术水平,实现方式为Direct3D 11+自主实现实时渲染引擎,方法为对比测试.实现已经有段时间了,还是简要更新下吧.以下画面中的SSSR效果全部采用1:4 resolves.如下4个图,全1080p,分别是:"全屏tracing+全屏resolve"(2个图) v.s. "1/4全屏trace+1/4全屏resolve" (2个图).为便于对比测试,特地没对反射效果加双边滤波.你觉得哪个效果棒?如果不看对比的话,你会接受1/4分辨率…
一个玻璃效果主要分为两个部分,一部分是折射效果的计算,另一部分则是反射.下面分类进行讨论: 折射: 1.利用Grass Pass对当前屏幕的渲染图像进行采样 2.得到法线贴图对折射的影响 3.对采集的屏幕图像进行关于法线方向上的扭曲和偏移,以模拟折射效果 反射: 主要利用环境贴图产生反射的残影,并和主贴图采样结果混合 得到反射和折射的结果后,以一个插值变量控制最终效果(类似于玻璃的透光率): 脚本如下: // Upgrade NOTE: replaced '_Object2World' with…
效果 原理: 开启摄像机的深度模式,将深度保存到一张名为_CameraDepthTexture(Unity5.0之后才有)内置的纹理中. 如果深度在焦点范围内就用原图,否则就用模糊图. Shader: Shader "DepthOfFiled" { Properties { _MainTex ("Texture", 2D) = "white" {} _BlurSize ("Blur Size", Float) = 0.1 }…
广告牌效果指的是,一个二维平面的法线方向始终与视线(摄像机的观察方向)相同.广泛运用于渲染烟雾,云朵,闪光等. 它的本质在于构建旋转矩阵,此时我们可以选择三个基向量来构建此矩阵. 指向→的方向(X轴) 指向↑的方向(Y轴) 平面的法线方向(Z轴) 计算方法通常是: 1.根据当前摄像机的方向确定法线方向(广告牌效果的本质),并归一化 normal=normalize(viewDir); 2.根据得到的法线方向和初始的向上方向(在本地空间中即为float3(0,1,0))计算向右的方向,并归一化 r…
本篇文章我会介绍一下我自己在Unity中实现的SSR效果 出发点是理解SSR效果的原理,因此最终效果不是非常完美的(代码都是够用就行),但是从学习的角度来说足以学习到SSR中的核心算法. 如果对核心算法没有兴趣,可以直接使用Unity官方的PostProcessing库,其中包含了一个SSR效果.(其实现来自于casual effects) 参考资料: https://github.com/Unity-Technologies/PostProcessing http://www.kode80.c…