第四部分讲一下如何在2D屏幕空间步进光线. http://casual-effects.blogspot.com/2014/08/screen-space-ray-tracing.html 中的代码感觉不太好理解,这里的代码是按照我自己的理解去重新实现的简单版,在效率上可能不如这个网址中的代码. 3D空间的光线步进 原本的实现中,我们得到光线后,将其在3D空间中进行步进,再投影到2D空间上.在投影过后,3D空间中均匀的采样点在2D空间中就不是均匀分布的了. (图来自 http://casual-…
本篇文章我会介绍一下我自己在Unity中实现的SSR效果 出发点是理解SSR效果的原理,因此最终效果不是非常完美的(代码都是够用就行),但是从学习的角度来说足以学习到SSR中的核心算法. 如果对核心算法没有兴趣,可以直接使用Unity官方的PostProcessing库,其中包含了一个SSR效果.(其实现来自于casual effects) 参考资料: https://github.com/Unity-Technologies/PostProcessing http://www.kode80.c…
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…
本篇讲一下相交检测的优化.有两个措施. 线段相交检测 之前的检测都是检测光线的终点是否在物体内.我们可以尝试检测光线的线段是否与物体相交. 比如说有一个非常薄的物体,光线差不多垂直于它的表面.如果用普通的方法的话,这个平面可能就会被光线跳过了. 我们将一个像素的厚度看做一维数轴上的一条线段,起点是其深度.同时将光线的起点.终点的深度值也用同样的方法看做一条线段.此时我们去检测这两条线段是否有重合.有的话则证明相交. 用这种方法可以解决薄的物体被跳过的问题. bool intersect(floa…
SSSR进一步调优,对标寒霜级技术水平,实现方式为Direct3D 11+自主实现实时渲染引擎,方法为对比测试.实现已经有段时间了,还是简要更新下吧.以下画面中的SSSR效果全部采用1:4 resolves.如下4个图,全1080p,分别是:"全屏tracing+全屏resolve"(2个图) v.s. "1/4全屏trace+1/4全屏resolve" (2个图).为便于对比测试,特地没对反射效果加双边滤波.你觉得哪个效果棒?如果不看对比的话,你会接受1/4分辨率…
自从CE3首倡SSR以来,发展至今,其质量与当年早已不能同日而语.不仅强调超越性的质量,而且强调超越性的性能.乘着周末有空撸了撸,以下是增强型实时SSR结果图.与我原来的SSR原始实现相比,新的增强型实现采样数量 x 1/8,质量提升8x,在没有特别重度优化的前提下,1080p 1:4 resolve的单帧性能增量均值可控制在4ms上下(原始版本720p需要将近15ms...).…
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…
接着上篇文章,我们实现了SSR效果. 其中的在屏幕空间进行光线追踪的方法是通用的.借此我们再实现一种屏幕空间的效果,即屏幕空间阴影. 文中的图片来自Catlike coding http://catlikecoding.com/unity/tutorials/rendering/part-7/ 完成的工程: https://github.com/yangrc1234/ScreenSpaceShadow 原生阴影 首先我们要了解一下原生的阴影是怎么实现的,这里我们只讨论Directional Li…
参考文章: https://www.imgtec.com/blog/implementing-fast-ray-traced-soft-shadows-in-a-game-engine/ 完成的工程: https://github.com/yangrc1234/ScreenSpaceShadow (一个例子,注意靠近立柱的部分的阴影较为锐利,远离的部分更加模糊) Penumbra 现实生活中,距离遮挡物越近的地方,其阴影会更加锐利:反之则更加模糊.这一片介于被照亮和阴影中间的区域被称为Penum…
一.Game视图的屏幕分辨率可以先自定义添加,供以后选择,以下是手游经常用到的分辨率: 1.1136X640,iPhone5 2.1920X1080,横屏,主流游戏都是这个分辨率 3.1080X1920,竖屏 4.960X640,横屏iPhone4 5.640X960,竖屏iPhone 6.768X1024,ipad 7.800X480 8.480X800 Screen Space(Overlay)模式下的Canvas节点的Rect Transform组件的Width和Height是随着Game…