
unity-shader
文章平均质量分 82
Unity Shader Lab 学习记录
Jave.Lin
积跬步至千里
展开
-
Unity Shader - sahder变体剔除
已经能确定的是,这个问题,100% 必现。从上周就出现,到现在,就是比我不再使用 XSDN。打开优快云首页里面的连接,是秒开的,到底怎么回事,看来准备博客搬家。等了差不多 30S~60S,就出现: 操作超时请重试。接口实现中,我们要对 shader 的。,编辑后,无法保存,一直提示:操作超时。然后这个 shader 变体是否需要剔除。注意尾部我们增加了一些。原创 2024-02-26 12:28:54 · 1134 阅读 · 0 评论 -
Unity - gamma space下还原linear space效果
还有头发之后的 (头发没有处理完整,因为使用 ASE 连连看练出来的,使用 surface shader,虽然可以生成一下 vert, frag 的方式在修改,但是我懒得去修改了,这样就是 PBR 的 BRDF 里面的部分曲线是不一样的,所以可以看到头发有一些差异)其实上面的代码判断 是否有分量 > 1.0f 的方式来判断是否 HDR 是不太合理的,因为不同的贴图格式的编码方式不同。还有比较隐蔽的一些颜色相关的常量值 (比如PBR中的 绝缘体的 F0 常量值,等等)原创 2024-01-24 19:22:15 · 2064 阅读 · 2 评论 -
Unity - 各向异性 - 丝绸材质
参考的是: PBR Filament 里面的 anisotropy 效果: https://google.github.io/filament/Filament.html#lighting/imagebasedlights/anisotropy。那么下面是将 unity builtin rendering pipeline (内置管线) 的 standard 金属流中,添加 PBR Anisotropy 的效果。这个是丝绸衣服光泽,这个简单的试验DEMO如下。然后我们再增加一个张细节法线。原创 2023-11-12 16:04:49 · 3574 阅读 · 8 评论 -
Unity - Normal mapping - Reoriented normal mapping - 重定向法线、混合法线
【代码】Unity - Normal mapping - Reoriented normal mapping - 重定向法线、混合法线。原创 2023-10-12 20:57:44 · 718 阅读 · 0 评论 -
Unity - Shader Compiled Log
这样的话,就可以真机上查看编译情况,每个以 Compiled Log 都是对应 Shader.CreateGPUProgram,因此如果要做: 变体优化,变体预热,都是一个比较好的调试Log。如果要做变体优化,或是 Shader.CreateGPUProgram 的 CPU 卡顿优化。先说一下,最近几天前,纷纷看到 unity install fee 的天才收费方案。顺便编写简单的 shader,创建 material,创建 prefab。设置 AB 信息,build AB。"实用工具/BuildAB"原创 2023-09-15 11:02:22 · 1263 阅读 · 0 评论 -
Unity Shader - if 和 keyword 的指令比较
下面是 shaderlab 和 arm mobile studio 中的 graphics analyzer 的 glsl 代码。下面是 shaderlab 和 glsl。VS: 和上面的一样,就不复制上来的。原创 2023-07-27 11:45:53 · 2899 阅读 · 0 评论 -
Unity Shader - SV_POSITION 和 TEXCOORD[N] 的varying 在 fragment shader 中输出的区别
因另一个TA同学问了一个问题我抱着怀疑的心态,测试了一下发现 varying 中的 sv_position 和 texcoord 的值再 fragment shader 阶段还真的不一样而且 sv_position 还不是简单的的操作因此我自己做了一个试验:结果还是不一样的。原创 2023-07-14 14:29:23 · 1459 阅读 · 0 评论 -
Unity Shader PBR vs BlinnPhong - ARM Mobile Studio - Graphics Analyzer & Mali Offline Compiler 分析
这个 blinn_phong 的 vs, fs 都是带有 mattalic, glossness,ao 的计算,如果相比 pbr 只是优化了 BRDF 部分的内容。注意这里只能分析 fragment shader 的 id,如果是 vertex shader 就使用 fragment shader id - 1即可。比如,下面 Fragment Shader 14,那么 Vertex Shader 的 ID 为 : 13。可以看到,比较严重的是 A 和 LS,T 没那么严重。原创 2023-07-11 19:58:44 · 1126 阅读 · 0 评论 -
Unity - 从RG中解压法线贴图
之前使用 GPA 还原一些效果的时候,发现 法线贴图的 Y 通道数值不对,感觉被 翻转了。不用判断 DX 或是 GL,反正我们自己限制好使用 GL 的规格,即可。如果是要是需要你也可以整一个参数控制 normal flipping。我们在 BRP 管线中,可以看到类似的 解释方式。因此我们自己的想就可以按自己的方式来处理。这样法线贴图只使用到两个通道,然后。比方说,下面是 GPA 中的法线。具体我们打开 PS 来查看差异。通道还可以放其他的数据。原创 2023-06-06 17:51:37 · 2554 阅读 · 0 评论 -
Unity - 记录解决 部分手机设备上 浮点精度 不足 导致 UV 采样断层严重的 BUG
这个 shader 是 网上的一位TA大佬 (听说是叫: 猫大 的TA大佬 写的,下面的 shader 可以看到是使用 ASE 连连看 生成的代码)这种优化方式也有局限性的,因为我们的 sampler 的 filer mode 是 repeat,所以 uv 值域可以控制再。手机显卡芯片的浮点解析进度上的效果(其实不用手机上,PC 上将 uv * scale 一个巨大的值也会出现的)手机显卡芯片的浮点解析进度上的效果(其实不用手机上,PC 上将 uv * scale 一个巨大的值也会出现的)原创 2023-06-02 22:25:00 · 2358 阅读 · 0 评论 -
Unity - 记一次非正规变体优化带来的兼容性导致部分手机卡死的问题
在 2023.4.6 我们的 角色展示界面 就遇到了 华为手机,red mi note 11 的测试手机上的。后 2023.5.24 再次遇到类似的问题,但是这次重现的地方很多,不单止 角色展示界面 遇到。来处理 (但是变体会多一些,真机上发现一个 shader 会比之前大 2M 左右的。,但是那时候还没做 PBR shader 变体拆分。回想我之前 2023.4.6 的截图:也是。后来多次排查,发现是 PBR 所有的。的文件导致阴影部分导致的卡死的问题。这部分不用拆分,直接使用。原创 2023-05-25 11:26:14 · 1991 阅读 · 0 评论 -
Unity - 搬砖日志 - Texture.mipmapBias 无效的解决方法
发现是 unity 纹理一个 mipmapBias 的 import 属性,但结果设置了一样木有效果。而我们项目 Graphics API 刚刚好是 OpenGL ES 所以没有效果。因为美术发现有些贴图太糊,但是经过研究发现,mipmap0就是完全够精度的。因此对纹理的 mipmapBias import 属性设置是没有用的。但是不可能还要提升贴图的尺寸,因为经过多方咨询(咨询TA大佬)最后TA大佬说,试试 shader 修改。只能在材质面板中添加一个。原创 2023-03-10 21:39:08 · 2255 阅读 · 0 评论 -
Unity - Shader Graph 中的 Flipbook 节点算法BUG - Unity_Flipbook_float
flipidx : 10 (其实是编号,不是索引)到时结果采样到的是:20 的位置。应该是采样到是 10 的位置。原创 2023-03-10 21:21:32 · 1501 阅读 · 0 评论 -
Unity Shader - Curved World - 类似 地铁跑酷,动物森友会 的世界扭曲效果 - 球形透视
我发现莉莉丝的《神觉者》在战斗中也有使用到这个效果,视觉效果提升还是很大的比如,球形投影前的效果球形投影后的效果。原创 2023-02-01 11:05:13 · 3226 阅读 · 0 评论 -
Unity - Shader - Projector 高空云层底下透明阴影 - semitransparent shadow
这种方式我最早是在 cat like coding 博主的文章看到的,这种方式我自己亲自测试过缺点:会有阴影抖动严重的现象)如下GIF就算我故意将 精度拉低(将距离边缘,那么 shadow map 的应用精度就会低一些)然后抖动的闪烁一样要不得。原创 2022-11-24 11:55:16 · 3464 阅读 · 5 评论 -
Unity - 手动创建 dithering tex 3d
最近工作忙成狗一直没有时间充电后续制作半透明阴影时,可以用到 dithering 来 clip shadow caster + soft shadow 来实现所以提前搞一下 dithering tex 3d 的创建原创 2022-11-02 22:21:29 · 1539 阅读 · 0 评论 -
Unity Shader - 曲线2
这个曲线相比之前CG cosh, exp, sinh, smoothstep, tanh, perlin_easeCurve1/2 曲线的其他曲线消耗小一些而且非常适合定义域和值域都在 :[0~1] 范围的曲线来使用。原创 2022-10-06 16:37:58 · 1547 阅读 · 0 评论 -
Unity Shader - SSS皮肤
其中看到 SSS 在采样时,还做了 normal 的插值平滑,让 SSS 背面光 更加柔和。(可谓五花八门,不论原理对不对,只要想过好看,就是对的,这也是图形学的 铁原则)然后美术去玩了:《CFDG》,美术觉得里面的皮肤效果制作得相当好。过程中,发现代码中看到很多各种各样的处理。以下 素材 是 “合理参考” 得到的。如果有侵权,请告诉我,我马上删除掉~但是这种方法应用在实际项目中表现不佳。仅当学习、参考用,也不可能公开。来处理,让材质可控制更高一些。更多的市面上的效果都使用。原创 2022-09-30 21:36:55 · 4810 阅读 · 0 评论 -
Unity - 踩坑日志 - 低版本线性颜色空间渲染异常的 “BUG”
今天发现我自己新建的一个试验工程,PBR 线性工作流是没有问题的然后在公司中会有问题诊断了一整天,最后发现这个项目的代码有使用到 builtin shader 源代码下载了 对应 unity 版本的 builtin shader 覆盖后,终于是修复了原创 2022-09-19 21:10:10 · 1261 阅读 · 2 评论 -
Unity & PS Linear Workflow - Unity 和 PS 的线性工作流实践 - 简单配置示例
因为 新的 Unity 项目人物走写实PBR风格所以铁定基于 Linear Workflow 比基于 Gamma Workflow 的渲染效果更好但是 Linear Workflow 下对 美术工作流不太友好,下面就实验并总结一些方案的优缺点供大家选取原创 2022-09-04 00:00:11 · 3185 阅读 · 1 评论 -
Unity Shader - “快速“ 次散射 (Fast SSS : Fast Subsurface Scattering)
---# 目的备份,备忘---# 思路一般次散射效果都是使用 光线追踪 来渲染的话,还原度会很高(也不是100精准,都是模拟,毕竟物质内的如何让光子偏移方向散射出来,这不是现代计算机,现代渲染架构能支撑得起的)所以这个 假 次散射,相对 实时渲染效果的价值还是有的具体思路:- 导出模型的厚度图- 将片段(像素)中的 观察位置方向 和 光源入射方向 做 dot- 然后控制 dot 后的 pow, scale 来控制边缘,和 整体亮度- 叠加到之前的颜色着色上即可..........原创 2022-07-09 20:04:55 · 4900 阅读 · 1 评论 -
DXBC2HLSL Tool
DXBC 可读性肯定没有 HLSL 强,而且我们在 Unity 中平常写的 Shader 多以 HLSL 的语法为主由于之前有尝试将 DXBC 还原恢复到 HLSL在此过程中,发现巨多的机械化的活:**每一个 ASM API 都要去转为对应的 HLSL 代码**然后联合上下文的指令逻辑,猜测出 HLSL 的逻辑代码我们写工具将 DXBC2HLSL 的最大目的就是减少上面说的:巨量的机械化的活...............原创 2022-07-08 10:59:41 · 6512 阅读 · 15 评论 -
Unity Shader - PBR 渲染 SP 导出的素材
---# 目的SP 与 Unity 的简单使用备忘(资源不公开,都可以去下载,或是从 unity 中拿到的,自己稍微修改即可)---# 环境Unity : 2018.2.11f1Pipeline : BRP(同样在 URP 也是很简单,不做处理)原创 2022-07-06 22:00:00 · 1894 阅读 · 0 评论 -
Unity Shader - 踩坑 - BRP 管线中的 depth texture 的精度问题(暂无解决方案,推荐换 URP)
部分移动设备的 GPU 精度比较低,会导致精度表现不佳的异常显示比如:- 软粒子与 opaque 内容 fade 过度异常- 水体与 opaque 内容的 深度 fade 过度异常原创 2022-06-29 15:55:39 · 1850 阅读 · 0 评论 -
DX 的 HLSL 和 GL 的 GLSL的 矩阵构建的行列区别
最近在做一些 DXBC to HLSL 的工作,其中遇到一些 DX HLSL 中的 `mul(pos, matrix)` 和 GL GLSL 中的 `mul(matrix, pos)` 的差异为了更加方便做 shader 逆向,所以多记录一下 DX, GL 中的一些区别原创 2022-06-23 15:21:37 · 1046 阅读 · 2 评论 -
Unity Shader - 入门级 - 火烧 2D 旗帜 的溶解效果
unity shader - 实现入门级 2D 图片火烧溶解效果原创 2022-06-01 15:55:29 · 1986 阅读 · 3 评论 -
Unity Shader - 类似七龙珠的人物气焰效果
文章目录环境效果思路passespass - 气焰Project环境Unity : 2018.3.11f1Pipeline : BRP效果该效果是自己摸索的(也是自己再国外社区逛的少,等后续将 小说 看完了,再开始刷效果。。。)制作思路不复杂,做过 shell 描边(法线方向外扩)的同学都已经知道怎么回事麻烦的是调整参数,需要花些时间来调整到心意的效果思路passespass 0 - toon shadingpass 1 - toon outlinepass 2 -原创 2022-05-24 21:22:41 · 2671 阅读 · 6 评论 -
Photosohp - 实现 2D MetaBall、MetaFont
文章目录效果MetaFontMetaBall原理Photoshop 步骤原图模糊调整色阶原理转换到 Shader实时模糊预先模糊ShaderReferences效果MetaFontMetaBall原理将原来的图像模糊然后调整色阶就两步,非常简单,但是效果非常出众Photoshop 步骤原图模糊调整色阶原理转换到 Shader先不着急写 Shader上面都是 Photoshop 的一些步骤里面的一些黑箱操作,可能不了解的同学,会一脸懵逼那么下面我原创 2022-05-21 10:58:56 · 409 阅读 · 0 评论 -
Unity - Shader - 搬砖日志 - Shader Graph 快速出原型,然后手撸 shader 还原,转换到 BRP/URP 使用
文章目录效果实现优化 SG 布局还原手撸 Shader需要和 ParticleSystem 有蒙版交互考虑自适应问题References首先,美术同学在网上找了一些效果: ShaderGraph第09节_血球但是美术同学,始终无法得到最终想要的效果,于是乎,让我帮忙还原 Shader Graph 效果效果实现为了方便参考视频的实现方式(实现方式有多种多样,为了快速让美术用上想要的效果,我就快速的喵了一下视频),就按照视频中大概的意思思路来实现,并且视频使用的是u3d 2018 版本,所以我也使用原创 2022-05-19 10:43:09 · 2987 阅读 · 1 评论 -
Unity Shader - 踩坑记录 - 修复模拟器模型中不显示,或显示异常,但是PC、手机上显示没问题 - uniform 变量多下划线开头,比如:__MainTex, __MainText_ST
在之前的一篇文章中:unity shader - 圣斗士星矢 人物 shader 还原 - GPA 抓帧提取资源、shader,ROOT权限、救砖、ro.debuggable=1(最终还是RenderDoc无法抓帧)我尝试了抓帧分析,并还原 圣斗士渲染效果但是发现在以下部分平台的显示是不正常的:模拟器上 - 不正常unity Editor - 正常PC - 正常Mobile - 正常就唯独:模拟器上不正常经过经 shader lab 中的逐行排查(废了半天时间)发现 shader la原创 2022-05-16 18:31:35 · 2691 阅读 · 0 评论 -
DCC - Photoshop - Nvidia NormalMapFilter - 法线生成工具 - 顺便测试 Unity URP 12.1 中的 Decal System
文章目录NVIDIA Texture Tools Exporter 下载、安装法线生成素材图扣干净无用像素使用 NVIDIA Normal Map Filter 生成贴图配置好 unity shader graph添加 URP Decal Projector 组件配置好 URP Decal Projector 参数最终效果今天研究使用:URP 12.1 中的 Decal System然后尝试了一下 在 Decal 中修改原来 GBuffer 的 Normal 的效果但是没有法线图,我就随便那一张之前原创 2022-04-29 19:44:49 · 7009 阅读 · 4 评论 -
Unity Shader - URP - 抄作业 - Deep Crack - 裂痕深坑 - SRP Batch优化
文章目录环境思路建模Houdini设置好Geometry + Curve + Extrude3ds max设置好参考背景图使用:创建/图形/线,来勾勒刨面封口刨面转为可编辑多边形导出用于仅仅写入深度的面片挤出裂痕深度导出带挤出裂痕模型最终效果优化再次优化优缺点其他的裂痕方案完整的 Shader深坑部分裂痕表面部分Project环境Unity : 2020.3.18f1Pipeline : URP之前看了一下公司里有位同学买了 taecg 老师的课程里面有讲到 裂痕深坑 的制作方式(做法有多种,原创 2022-04-28 18:14:43 · 2788 阅读 · 0 评论 -
Unity Shader Graph - 软粒子 Fade 值,Screen Position.w 分量是啥
一般我们直接撸 shader 代码的话,直接拿:深度缓存/纹理的值 减去 片段的值来做过度 即可,这部分代码,以前在做水体、软粒子的shader 也有使用到:Unity Shader - BRP - Soft Particle - 软粒子Unity Shader - 实现简单水体 - 浅水到深水颜色控制核心的计算 fade 值在这float fade = saturate(_InvFade * (LinearEyeDepth (SAMPLE_DEPTH_TEXTURE_PROJ(_CameraD原创 2022-04-27 15:09:41 · 2562 阅读 · 0 评论 -
unity shader - 圣斗士星矢 人物 shader 还原 - GPA 抓帧提取资源、shader,ROOT权限、救砖、ro.debuggable=1(最终还是RenderDoc无法抓帧)
环境unity : 2018.2.11f1pipeline : BRP使用工具Intel GPA + 模拟器理论上,只要能在模拟器运行的所有程序的 graphics event / API 都可以抓取jave.lin : 个人经验:如果有 GPA 抓取无数据的情况,可以尝试更改:graphics api 为:dx / ogl 之间切换,再尝试GPA 步骤:Graphics MonitorSettings->Auto-detect launch application设置好.原创 2022-03-26 13:19:32 · 11741 阅读 · 16 评论 -
Unity Shader - What is MatCap - 什么是 MatCap - ShaderLab 中实现
文章目录什么是 MatCap?Unity ShaderLab 实现 MatCap然后自己撸一个References什么是 MatCap?MatCapsMatcap stands for “material capture” and is an image that is used as an image texture to fake a whole material including lighting and reflections in 3D applications. The most co原创 2022-03-23 15:08:30 · 3816 阅读 · 0 评论 -
Unity Shader - BRP - Soft Particle - 软粒子
文章目录SoftParticleCommon.cgAlpha blendAdditive blendUniformSetSoftParticleThreshold.csCustomGraphicsSettings.cs查看 SetGlobalKWSoftParticleToggle.csTalk is Cheap, Show me the CODE!SoftParticleCommon.cg#ifndef __SOFT_PARTICLE_COMMON_H__#define __SOFT_PAR原创 2022-03-03 09:26:42 · 5940 阅读 · 0 评论 -
Unity Shader - 搬砖日志 - URP PBR (抄作业篇,持续更新~)
PBR 主要渲染方程Lo(p,wo)=∫Ω(kdcπ+ksDGF4(wo⋅n)(wi⋅n))Li(p,wi)(wi⋅n)dwiL_o(p,w_o)=\int_{\Omega}(k_d \frac{c}{\pi} + k_s \frac {D G F}{4(w_o \cdot n)(w_i \cdot n)}) L_i(p,w_i)(w_i \cdot n) dw_iLo(p,wo)=∫Ω(kdπc+ks4(wo⋅n)(wi⋅n)DGF)Li(p,wi)(wi⋅n)dwi.原创 2022-02-25 22:10:15 · 6471 阅读 · 1 评论 -
unity - 踩坑记录 - 关于AlphaTest投影烘焙后没有镂空的问题
看了这篇文章就知道:unity黑箱+文档不说明有多恶心:关于AlphaTest阴影烘焙后消失的问题要点:主纹理名称必须是"_MainTex",只有这个名称才会被内部识别到,就像后处理Shader中也需要用到这个名称是一样的道理。Shader中的Queue排序在2450-3999之间,也就是"Queue" = “AlphaTest"或者"Queue” = “Transparent”.RenderType设置为"RenderType" = “Transparent"或者"RenderType” =原创 2022-01-28 10:29:48 · 911 阅读 · 0 评论 -
Unity -搬砖日志 - 替代 卡渲 里面的接受 shadow map 阴影方式
备份,便于后面自己 CTRL+C/V可以看到目前市面上 二次元卡渲染 的手游产品中,人物接受阴影的处理方式都是走整体偏暗的方式而不是 shadow map 处理方式主要原因是因为 receive shadow map shadow 的话,会导致人物美观度大大降低特别是 shadow map 分辨率低的话,头发投影后,脸上接受阴影后,那效果真是令人难以接受毕竟 二次元卡渲染风格 的产品,都是靠卖相的走整体偏暗方式的接受阴影非常简单,基本上都是:Physics.RaycastOnTrigg原创 2022-01-11 17:44:07 · 2882 阅读 · 0 评论 -
Unity Shader - Post Processing 15 - Height Fog (Plus) - 后效 高度雾 改进版 (Parallax)、模拟闪电在云层中SSS
文章目录环境问题Parallax 原理效果ProjectReferences环境Unity : 2018.2.11f1, 2019.4.30f1Pipeline : Built-in RPGraphic API : DX / OpenGL ES之前 使用 后效实现过:深度 + 高度雾 版本的效果,具体可以参考:Unity Shader PostProcessing - 11 - 雾效/深度雾效/高度雾/深度+高度雾问题因为之前写的高度雾会有一个问题:不论我的高度雾设置多高的雾底下的 G原创 2022-01-10 14:14:52 · 3711 阅读 · 4 评论