位置: 编程技术 - 正文
推荐整理分享Unity CG 写一个超酷的 ray-marching(shader纯代码写3D)(unity做cg),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:unity如何用,unity如何编程,unity cginc,unity做cg,unity做cg,unity如何编程,unity-chan,unity cginc,内容如对您有帮助,希望把文章链接给更多的朋友!
1.其实自从看了 quilez为其主创始人)上的shader后,让我感到很高兴 2.更重要的是自从我接触了一个叫 inigo quilez 的shader技术后,让我觉得shader情感更深的浓厚了 3. 哈哈,当然给大家一个崇拜的机会吧,你一定会学到你想学到的技术和秘密
哈哈,邪恶的专栏地址放送,一戳秒进哦 好吧,本人由于热爱shader技术,有许多的误解之处和错误的地方,就救救俺吧……….
我那猥琐的代码为什么我的代码猥琐 你看这儿吧,相当的猥琐,我都不好意思留名了, 这是代码的地址:
这是我试着去写一款3D效果的shader 代码,我当时写啊写啊,各种调试各种修改,就做了这么个3D线条的效果,最后我不敢直视,我没有敢留名,一般的我会留by (,,,zhu)的字样。
如今我回头一看,都快看不懂自己的每句代码的意思了,当然我还能感觉到那时写的时候思维是多么的通常,可惜方法不适用于任何3D写法。
代码没有明确的思维 一坨又一坨,层次结构不清晰,囫囵吞枣,经验水平不高,过于强求效果。 比如这儿: 坐标复用太多,层次很乱,当然给高手看了都会觉得没有可读性。
How about the ray-marching?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 , 当然这是人家做的KB demo中的截图……..
实现一个小的推理,画一个简单的圆1.简单推理手稿 show 哈哈,我记得当时感觉只用到了初中数学,而且我怎得一团翔,,,,, 这只是练练一下实验效果和原理的试手,所以同志们可以自己试试感受一下,,,(我这个就太乱了,一拿出来我又不知所措了,,)
2.试着推实验是否是那个意思 当然,我最后及时的实现了推理的想法:
我那简直迷人的ray-marching效果欣赏谁说迷人了?
在 上的效果 这是我的代码链接 如果,你在同一页上看到了3D球….点进去后,你会愤怒的
形状还可以改,随机应变嘛,啊哈…………. 实现ray-marching的技术细节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等人的功劳与技术支持。。
左手linux+gdb,右手unity+vs,一个bit一个bit地去调试是种什么体验 做协议传输的时候,服务器发到客户端的数据协议解析的时候有部分内容丢失了,只好一个bit一个bit地去调试,想试试这是种什么苦的体验么~~·蛋疼,
【Unity】UGUI 如何使用CustomFont(自定义字体) 说在前面这是我的第一篇博客,之后慢慢试水搬一些自己曾用到的博客,还有一些自己尝试出来的东西。我深知自己还远远不够,若是有人看到了我的
当摄像机被墙挡住后,墙消失,相反则出现(三维坐标到二维坐标的转换实例Camera.main.WorldToScreenPoint) //首先,不好意思,可能标题的描述并不是很清楚//我们现在的场景是这样的,一个摄像机在高处,场景中间有一面高墙,墙的后面有一个球形物体//高
标签: unity做cg
本文链接地址:https://www.jiuchutong.com/biancheng/369249.html 转载请保留说明!友情链接: 武汉网站建设