标签:shader unity ray-march 新技术 cg-hlsl
1.其实自从看了http://www.shadertoy.com(inigo quilez为其主创始人)上的shader后,让我感到很高兴
2.更重要的是自从我接触了一个叫 inigo quilez 的shader技术后,让我觉得shader情感更深的浓厚了
3.http://www.iquilezles.org/ 哈哈,当然给大家一个崇拜的机会吧,你一定会学到你想学到的技术和秘密
哈哈,邪恶的专栏地址放送,一戳秒进哦
http://blog.csdn.net/column/details/shader-style.html
好吧,本人由于热爱shader技术,有许多的误解之处和错误的地方,就救救俺吧……….
为什么我的代码猥琐
你看这儿吧,相当的猥琐,我都不好意思留名了,
这是代码的地址:http://www.glslsandbox.com/e#24033.0
这是我试着去写一款3D效果的shader 代码,我当时写啊写啊,各种调试各种修改,就做了这么个3D线条的效果,最后我不敢直视,我没有敢留名,一般的我会留by (834,834144,834144373,834144373zhu)的字样。
如今我回头一看,都快看不懂自己的每句代码的意思了,当然我还能感觉到那时写的时候思维是多么的通常,可惜方法不适用于任何3D写法。
代码没有明确的思维
一坨又一坨,层次结构不清晰,囫囵吞枣,经验水平不高,过于强求效果。
比如这儿:
http://www.glslsandbox.com/e#24003.1
坐标复用太多,层次很乱,当然给高手看了都会觉得没有可读性。
ray-marching是什么?
ray-tracing可是鲜为人知的,不谈ray-tracing的技术细节,人们都扎下了它的深刻印象,比如unity5.x的加入了GI全局光照后,高通给unity5.x提供的光线追中技术,光照渲染大幅度的提高。还有比如UE4等引擎先进的光线追踪技术
你看UE4的效果,这光线效果:
当然,UE4中update lighting会自动生成光照信息图,这效果不明摆着么?
那那,我的 ray-marching呢?
那那,我的 ray-marching呢?
好吧!就是它罗:
以下是ray-marching的一个效果截图(来源于国外的 Mercury团队制作的time less
,http://mercury.sexy/):
当然这是人家做的64KB demo中的截图……..
1.简单推理手稿 show
哈哈,我记得当时感觉只用到了初中数学,而且我怎得一团翔,,,,,
这只是练练一下实验效果和原理的试手,所以同志们可以自己试试感受一下,,,(我这个就太乱了,一拿出来我又不知所措了,,)
2.试着推实验是否是那个意思
当然,我最后及时的实现了推理的想法:
谁说迷人了?
在http://glslsandbox.com 上的效果
这是我的代码链接http://glslsandbox.com/e#26011.0
如果,你在同一页上看到了3D球….点进去后,你会愤怒的
Sign Distance Field,Find the 物体的表面(surface)
如果,你真的看到上述的手稿,那么我可以接着说说,Sign Distance Field的的主要作用其实就是定义是什么样的物体,比如:
这很明显嘛!!!基本物体模型和这么叼的fractal(奇葩的3D分形物体)。。。。。。
好吧!在加一幅distance function 自己收集的函数和一些自己做的函数
哈哈,你如果不嫌蛋疼,把它们做成一个”收藏库”吧!很明显做成Unity的cginc文件非常到位。。。。。。
ray-marching,sphere-marching,射线步进技术
这幅图很是可以哟
重屏幕出发的射线,一步一个圆的检测surface,在检测到的surface的圆,在加上改圆的半径继续向前检测
不信,你可以看这张我做的效果图:
很明显,的确是一步一步的向前检测的
这儿我亲手写的一个算法截图:
计算物体Surface 的 Normal
采用ray-marching位移法,在物体surface表面做出法线法线法线。。。
你看嘛!!!
其实就是这个样子的,实践出真质
汗水与辛酸的复出,回味可口的果实
献给早先技术实践的人,inigo quilez等人的功劳与技术支持。。
Unity CG 写一个超酷的 ray-marching(shader纯代码写3D)
标签:shader unity ray-march 新技术 cg-hlsl
原文地址:http://blog.csdn.net/baidu_26153715/article/details/46510703