unity shader
熊猫悟道
会做游戏的道长,三山派
展开
-
Unity 内置枚举(Option & Stencil)
最近工作强度有点高,实在没有精力再写文章,每天下班回到家小宝宝都睡着了。今天周末,为大家整理最近再工作中需要暴露给美术自己修改的参数(不过大部分美术还是不会懂,我一般傻瓜式的给美术写好备注,blend用什么,A dditive 什么,毕竟美术也没有逻辑性思维),这个文章主要也是写给程序看的 ,之前写了一般的量子力学的波函数文章还没写完,大家担当点,实在是没精力。直接上代码,看简单注释,可以对应名称查找具体说明。截图留真相,确实有在写,请各位大佬多等等。原创 2024-11-24 12:53:38 · 472 阅读 · 0 评论 -
Unity URP 如何实现遮挡显示 (全流程教程)
第一次: 正常渲染物体,深度测试不通过的情况下不会写入模板测试数据,以此来判断遮挡或者没有遮挡部分。第二次:在后处理之前进行渲染(后处理渲染之后是无法获取模板数据),深度测试不通过,无法渲染相关信息。,熊猫老师又来了 ,这次为大家分享项目中非常实用的一个技术点:遮挡显示。注意:Layer Mask 需要和物件(角色)保持同一个层里面。比较简单,一个Fresnel 效果实现。2:创建边缘光效果shader。2:创建renderFeature。实现原理 :对模型渲染两次。物件原生shader(角色)原创 2024-10-13 14:14:12 · 703 阅读 · 0 评论 -
Unity URP shader ———魔系符文宝石是如何练成的
视角方向的(XY方向)-原点的XY方向,然后再做模型的Tiling运算。最后再计算出模型法线在世界空间中的XY方向。UV计算: 宝石是在不同的视角下观看宝石,会看见 视乎宝石里面的画面与镜子相同,都是无穷大。菲尼尔共公式:Fresnel =(1-dot (v,n))^power;最后去控制强度和颜色,实现我们想要的效果。Unity URP Shader——魔系符文宝石是如何练成的。那么计算机科学也是同样的原理,也是从观察角度去看。1:菲尼尔实现边缘光,3:模拟宝石内部效果。原创 2024-10-13 12:53:03 · 599 阅读 · 0 评论 -
Unity URP无光照下Shadow 制作 <二> 合批处理
能看见我在场景中做了4个材质球且用了不同的贴图,但是 能看见第一个pass对颜色渲染已经合批成一个了(除了地面用了默认的材质球外,忽略)。其次 咱们在第二个Pass “影子渲染pass”里面添加Tags 并对LightMode 复制渲染层为 “XiongMaoWuDao”相信大家在日常工作中发现了一个问题 , urp下虽然可以做到3个Pass 去写我们想要的效果,但是,好家伙,熊猫老师的偏方来了 ,教大家如何在URP渲染管线下做到多pass也能合批,干活满满。我们在Subshader下用。原创 2024-08-18 13:00:41 · 730 阅读 · 0 评论 -
URP 无光模式实现平面阴影
闲谈:最近项目中我发现程序找了个影子插件PlaneShaodw 还挺好用的,效率也高,之后我就将所有项目中新优化制作的shader 全部采用插件的影子方案,结果不出所料,上周测试项目的时候 ,发现影子不能合批(SRP),更邻人费解的是插件自己写了个库文件,里面算法非常深(做了宏处理,分了好了些变体)。所以周末准备自己搞一波搞效果影子。大多数网上找的影子大家是不是遇到这样的问题:几乎无解在研究的过程中(重点研究了王者荣耀,欸,又下载下来玩了一会儿,给自己打酱油找借口,HAHA~~!原创 2024-08-15 13:40:28 · 939 阅读 · 0 评论 -
CGPROGRRAM &(URP) HLSLPROGRAM (各种)坐标系转化(重点重点非常重点)
整理这篇文章的原因是,前段时间项目主要用的是CG语言,最近项目用的是HLSL语言。为什么图形这块会转HLSL语言呢?其实是CG语言已经很久不更新了,且垮平台压力比较大;HLSL是微软DX着色器汇编语言(当然也不完全一样),HLSL其实并不能与OpenGL兼容,但这也难不倒Unity(咱们可以编译,哈哈 )。言归正传,咱们线看一张图:空间坐标系转换原理 :注意:一个顶点坐标从模型到最终渲染到屏幕中需要经过顶点变换(顶点要经过多个坐标空间的转化常能映射到屏幕上)。原创 2024-07-13 12:49:51 · 1029 阅读 · 0 评论 -
Shader最全 属性面板(UI显示)
大家学习一定要多记录,方便以后遗忘了好翻出来看(熊猫老师就是这样的,很多东西记不住就翻出来再看看)。枚举,最多可指定7个名称,自定义枚举,可以通过KeyWrod来控制。因为记不住,所以咱们都要学会做记录并做好注释,记得配合用法。原创 2024-06-30 12:38:40 · 530 阅读 · 0 评论 -
模仿 点点互娱《无尽冬日》并作出 优化方案 H5端高效率运行
最近再体验点点互娱游戏 《无尽冬日》,一款范用户的SLG游戏,上线很快就冲上榜单,无论是UI,还是3D都做 的非常不错,再微信端也很 流畅的运行。缺点:法线需要精度高,开销大 ,即使做平铺也是需要相对大显存空间。优点:制作 难度 小 ,比较常规,只需要重新计算光照角度。获取灰度图 做开始和结束的深度(视觉高度计算)表达的可能不对,即开始到结束的值;方案一:采用 法线贴图试限凹凸,并 采用 兰伯特光照或半兰伯特 光照实现;):采用灰度图和模型法线切线空间交叉 计算,实现 视觉上的起伏变化;原创 2024-05-15 12:30:51 · 4871 阅读 · 0 评论 -
UnityShader UV动画深入探讨(栅格化,棋盘格等效果实现)
中,step()函数用于计算两个值之间的步长。它接受两个参数:第一个参数是阈值,第二个参数是切变方向。如果x大于edge,则step()函数返回1.0;如果x小于等于edge,则返回0.0。中常用于纹理映射、渐变和边缘检测等领域。其中,edge是阈值,x是切变方向。用途:一般用来做边缘检测。UV=平面坐标,u=X轴。原创 2024-05-08 20:53:02 · 847 阅读 · 1 评论 -
UnityShaderUV动画讲解六:旋涡效果实现
咱们前面一片文章学会了UV缩放,那么我们如何在缩放的基础上做UV扭曲实现旋涡效果呢?原创 2024-04-18 09:51:31 · 751 阅读 · 1 评论 -
UnityShaderUV动画讲解一:移动端UV简单偏移
变体的使用有一篇参考文献写的非常好,我这里就不展开讲解了,各位技术大佬注意一点的是变体数量不能超过255个。今天开始给大家讲解动态效果第一弹:UV动画, 常见于特效使用,背景移动,贴图滚动效果等等。_Time是用来驱动shader内部的动画的变量,用来计算时间变量。_Time的4个分量分别是(t/20, t, t*2, t*3)其原理就是通过时间去修改UV坐标上的X值和Y值从而改变每个像素在模型表面的位置。原创 2024-04-14 18:19:29 · 2221 阅读 · 1 评论 -
玻璃效果实现三:移动端高性能Matcap实现玻璃材质
所有的顶点坐标运算我都采用的是float4, 因为此shader专门为移动端开发,移动端项目比较复杂, 例如:跑酷赛车等游戏高矩阵运算位置同步坐标,half4精度 在不够的情况下,可能会出现抖动,大家可以视项目而修改。原创 2024-04-12 19:17:59 · 721 阅读 · 0 评论 -
Unity Shader逐像素着色器,每行都有注释
逐像素着色器效果最好,但是性能开销较大,目前运用的也比较多,包括移动端,下一篇讲解逐顶点着色器,效果相对较差(PS:其实diffuse贴图做好)效果也不怎么看的出来差距,但是性能开销较小,更适合移动端甚至移动端性能低下的产品。注意,此shader是标准的逐像素着色器,光照是在片源里面实现的,所以大家只要会了这个shader,基本上blinn,blinn-phong,PBL,PBR等shader 都能扩展写出来。原创 2024-04-02 09:53:15 · 343 阅读 · 0 评论 -
Unity Shader逐顶点着色器实现,每行都有注释
逐顶点着色器效果对比逐像素较差,但是性能大幅度提升,其优点事在顶点着色器里面做光照计算,顶点数越多,效果越好,顶点数越低效果越差, 所以更适合移动端游戏开发,原创 2024-04-02 09:56:52 · 374 阅读 · 3 评论 -
表面着色器实战
half // 16位浮点数, 精度: 小数点后3位, 数值范围为[-60000,+60000],适用: 模型坐标、纹理uv坐标,方向向量,HDR颜色等等。float // 32位浮点数, 精度: 小数点后6位, 适用: 模型坐标、纹理uv坐标,复杂函数计算,如:三角函数,幂运算等等;fixed // 12位浮点数, 精度: 1/256, 数值范围为[-2,+2],适用: 光照计算、颜色。sampler2D_half(中精度2D纹理)sampler3D_half(中精度3D纹理)原创 2024-04-05 00:34:11 · 439 阅读 · 2 评论 -
玻璃效果实现二:移动端高性能实现
其原理借助菲尼尔实现边缘+cubmap实现边缘扰乱效果,效果虽然不如GrabPass,但是性能大幅度提升,移动端显示妥妥的优秀。原创 2024-04-10 22:05:28 · 414 阅读 · 1 评论 -
玻璃效果实现一:GrabPass
YY一下:为什么这篇文章我这么就才写,是因为大家都用GrabPass取做玻璃效果,其实原理就是多一个特俗pass去渲染。可想而知,其开销也是巨大的,所以我在准备GrabPass的教程的时候,我也准备了另一个制作方式。完整代码如下,只是标准,大家可以自由扩展,(再次提示:GrabPass其实开销并不小,使用一定要注意场景应用)因为是抓拍图片渲染贴在玻璃上面,所以我很容易处理扰动效果实现毛玻璃效果;原创 2024-04-10 21:59:17 · 357 阅读 · 1 评论 -
Unity Shader兰伯特 silmpleLambert
兰伯特和半兰伯特基础实现。原创 2024-04-01 13:52:03 · 381 阅读 · 0 评论