自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(79)
  • 资源 (3)
  • 收藏
  • 关注

原创 computer shader学习

恭喜你!粒子系统是 Compute Shader 最经典、最有成就感的入门项目之一,能跑到这里说明你已经跨过了最难的门槛(Buffer 对齐、kernel 绑定、Dispatch 参数、unity_InstanceID、间接绘制、结构体布局、写回与渲染分离……)。接下来给你一个,按难度和实用性排序,适合 2025–2026 年 Unity 2022.3 / 6000.x URP/HDRP 环境。

2026-03-07 00:39:10 243

原创 URP Shader编程之自定义后处理多pass渲染RenderStateBlock 整体配置(URP 14.x)

基于您提供的代码片段,这是 Unity URP 中配置渲染状态块(RenderStateBlock)的关键代码,用于实现遮挡轮廓效果。

2026-01-27 01:52:42 351

原创 URP高级自定义后处理详解

我先给你一个完整能力版图Level 1:纯全屏后处理- Blit- Bloom- DoFLevel 2:带辅助纹理的后处理Level 3:Selective Rendering(你现在在这)- 指定 Layer- 指定 RenderQueue- 指定 Shader Pass- 多 RT Ping-Pong- MIP 链Level 5:半管线级后处理- 自定义 Light / Shadow- 自定义 GBuffer- 屏幕空间 GI / AO你这个问题,正好是。

2026-01-20 14:38:44 620

原创 URP Shader编程之自定义后处理渲染

内置后处理Volume有固定的执行点,但自定义后处理可以通过设置不同的渲染事件来控制是在Volume之前还是之后执行。当自定义后处理处于After RenderingPostProcessing阶段时,会被volume覆盖,自定义后处理会无效,建议放在这之前,如果非要放在这边,可以在摄像机取消掉PostProcessing的勾选。• ✅ 顺序影响最终效果:在前执行会被Volume处理,在后执行会覆盖Volume效果。// 在URP Asset中关闭内置后处理,然后配置自定义效果在相应位置执行。

2026-01-20 05:39:32 603

原创 URP的渲染流程

在游戏开发和实时渲染领域,理解渲染管线的每个阶段对于优化性能和实现复杂视觉效果至关重要。本文基于Unity URP 14.0架构,结合官方文档提供的多RTHandle Blit操作技术,深入解析从CPU到GPU再到后处理的完整渲染流程,特别重点探讨自定义后处理的实现机制以及Unity内置后处理Volume的执行位置。中间纹理1 → 模糊/扭曲Pass → 中间纹理2 → 色彩调整Pass → 中间纹理3。• 渲染队列排序:基于材质的RenderQueue值。• 背面剔除:根据顶点顺序剔除背对相机的三角形。

2026-01-20 05:22:33 552

原创 URP Shader编程之自定义后处理单pass渲染(URP 14.x)

❌ 不要在里拿✅ 只在里拿RendererFeature 生命周期RTHandle 设计Blitter 的真实语义Shader 输入来源。

2026-01-14 00:25:59 536

原创 URP Shader编程之自定义后处理单pass渲染(URP 12.x)

字段作用m_Shader后处理使用的 Shader给 Shader 传递的参数m_MaterialShader 的实例自定义渲染 Pass没调用Shader 采样不到 Camera ColorURP 所有自定义后处理的“最小正确模型”增加 RTHandle拆成多个 Pass引入 Blur / Threshold就可以一步步进化到Bloom / 水波折射 / 电影级效果。

2026-01-13 12:40:04 518

原创 URP Shader编程之SRP Batcher实现

/ ✅ 必须包含的核心库// 这个库定义了:// 1. 坐标变换函数 (TransformObjectToWorld等)// 2. 基本数据类型 (half, float等)// 3. 常用宏 (TRANSFORM_TEX等)// 4. 平台兼容性处理// TRANSFORM_TEX 的实际定义// 使用示例// 展开为:不减少Draw Call,但让每个Draw Call更快材质数据常驻GPU,减少CPU到GPU传输适合不同材质的物体,相同Shader即可。

2026-01-04 22:27:28 307

原创 URP Shader编程规则之Properties之自定义关联属性全局与局部

避免全局关键字限制:不占用256个全局槽位模块化开发:每个Shader有独立的关键字空间更好的兼容性:不同Shader可以使用相同的关键字名简化团队协作:无需协调全局关键字使用关键区别全局关键字:整个项目共享,有256个限制局部关键字:每个Shader独立,无数量限制现代Unity项目推荐使用处理材质特定功能使用处理渲染管线设置在URP/HDRP中遵循这个模式局部关键字是现代Shader开发的推荐做法,特别是对于大型项目或需要大量自定义Shader的情况。

2026-01-04 22:17:54 946

原创 URP Shader编程之GPU Instancing实现

/ 实例化自定义顶点数据// 获取实例自定义数据// 应用实例数据添加编译指令声明实例ID:在结构体中使用设置实例ID:在着色器开头使用传递实例ID:在顶点着色器使用定义属性:使用访问属性:通过。

2026-01-04 18:23:06 1002

原创 URP Shader编程规则之Properties

你可以放心用。说明。

2026-01-02 02:02:21 859

原创 Unity优化篇之SRP Batching 之 SetPass深度刨析

在 SRP Batcher 中,材质属性的修改不会导致偏移改变。Unity 会在 GPU 参数池中,原地更新该材质对应 Slot 的数据,后续 Draw 仍然通过相同的偏移地址读取更新后的参数。

2025-12-30 02:37:55 1003

原创 Unity优化篇之SRP Batching 之 SetPass介绍

将每个材质使用的属性缓存在 GPU 的统一结构中,同一 Shader Variant 的材质只切换缓存偏移。

2025-12-30 02:28:45 710

原创 SRP Batcher与GPU Instancing的抉择

SRP Batcher:适合“杂乱但不重复”的场景GPU Instancing:适合“海量重复”的场景两者解决的都是 CPU 问题,但方式完全不同真正的高手不是“全开优化”,而是选对优化。

2025-12-29 00:56:06 968

原创 Unity优化篇之SRP Batching

是 Unity 在 URP 和 HDRP 渲染管线中提供的一种批处理优化机制。它的目标是:✅减少 CPU 与 GPU 之间频繁的材质状态(Shader 常量)设置,从而降低 SetPass Call 数量,提升渲染效率。优点描述✅ 极大减少 SetPass Calls同一 Variant 的材质只上传一次结构描述✅ 保留每个材质独立参数不需要合并网格、材质等✅ 和 GPU Instancing 可并用双重优化,性能爆发✅ 无需修改场景结构比 Static Batching 灵活、安全。

2025-06-08 06:03:49 2033

原创 Unity优化篇之GPU Instance(1)

GPU Instancing 是 Unity 引擎中用于优化绘制大量相同物体的渲染技术,它可以只发出一次 Draw Call,就让 GPU 同时绘制多个相同 Mesh 和材质的对象。大量相同模型仅需 1 次 Draw Call(通常是减少 CPU 到 GPU 的绘制命令传输压力支持每个实例自定义属性(如颜色、缩放、偏移)GPU Instancing 是 Unity 提供的一项重要性能优化技术,特别适用于重复渲染大量对象的场景。

2025-06-08 02:11:20 2879

原创 Unity优化篇之DrawCall

在 Unity 中,每渲染一个物体,CPU 就会向 GPU 发送一个 Draw Call(绘制调用)。Draw Call 多意味着 CPU 压力大,可能引起帧率下降,特别是在移动端和 WebGL 平台。Unity 为了优化性能,会尝试自动将多个渲染调用合并为一次 Draw Call,这就是“合批(Batching)”。项目静态合批动态合批触发方式构建时运行时是否勾选 Static✅ 必须❌ 不需要Mesh 顶点限制❌ 无限制✅ ≤ 300运行时性能开销极低较高(每帧打包)

2025-06-07 00:10:07 1318

原创 【Unity Shader编程】之让画面动起来

最终用于由于uv.y是负值,这意味着超出了纹理坐标范围Clamp:超出部分会重复边界值(边缘拉伸)。Repeat:会根据小数部分循环(模 1 处理)。Mirror:镜像重复。广告牌Shader通过法线→向上→右向数值稳定性:智能选择避免零向量正交性保证:两次叉乘确保坐标系正交视角自适应:始终面向摄像机这是实现广告牌效果的标准数学流程,广泛应用于粒子系统、特效渲染等领域。再模型空间下进行的空间动画,批处理往往会破坏这种动画效果。

2025-06-06 19:44:50 1051

原创 Unity Shader编程】之高级纹理

在unity中有一种特殊的pass,GrabPass,定义后,unity会把当前屏幕的图像绘制在一张纹理中。文件本身就会保存在你的项目里,可以直接拖入 Shader 中的 Cubemap 属性上。转换为 Cubemap 使用,适用于天空盒、环境反射等。这样 Unity 就会自动将它作为 Cubemap 处理。在 Unity 中创建和保存一个。将六张图拖入 Unity 的。你可以通过 Shader 中。获取它,或绑定到材质里。Unity 也支持将。

2025-06-03 21:44:21 1282

原创 Unity接入SDK之修改Unity启动页面

本文介绍了如何在Unity项目中通过Android Studio修改启动页面的方法。首先,在Android Studio中新建一个项目,并创建一个Android Library类型的模块。将Unity的classes.jar文件复制到lib文件夹,并在Android Studio中将其加入Library。接着,在com.unity.player包下新建MainActivity.java文件,继承UnityPlayerActivity,并在AndroidManifest.xml中设置启动页面为MainActi

2025-05-11 05:22:44 798

原创 Unity打包Android APK详解

问题原因解决方法Unity 报找不到缺少通过 Android Studio 或手动方式安装安装了还是不识别Unity 指向 SDK 路径错误检查 Unity Preferences 中的 SDK 路径SDK 目录结构错误没有创建正确结构并手动复制工具包打包的时候遇到SDKPlatform tools version 0.0<32.0.0.提示,这是说明Command-line Tools版本过低或不符合条件这边选择对应版本进行安装,然后。

2025-05-01 05:04:56 2430

原创 关于Android Studio的Gradle各项配置2

希望这些解释对你理解这些文件有所帮助!中非常重要的一部分,它们各自有不同的作用,涉及项目的构建配置、Gradle 环境、系统配置等方面。接下来我会为你详细解释每个文件的作用,并提供具体的例子和注释。是一个重要的功能,它允许你在没有全局安装 Gradle 的情况下构建项目。它用于定义一些全局的属性和设置,这些设置可以影响到 Gradle 构建过程中的各种行为,如性能、依赖项、Gradle 守护进程等。这将确保你使用的是项目中指定的 Gradle 版本,而不依赖于系统中全局安装的 Gradle。

2025-04-27 22:55:00 1445

原创 关于Android Studio的AndroidManifest.xml的详解

通过。

2025-04-27 05:42:58 2279

原创 关于Android Studio的Gradle各项配置

配置插件仓库和插件获取策略。配置项目的依赖解析方式,确保依赖从官方仓库获取,避免本地仓库问题。设置了项目名称。表示项目包含一个名为app的子模块,适用于多模块项目。在国内可能会遇到的问题,就是网络问题,导致我们没法正常下载到所需的插件和以来,因而我们通常会添加镜像源google() // Google仓库,主要用于 Android 相关的插件mavenCentral() // Maven 中央仓库gradlePluginPortal() // Gradle 官方插件仓库。

2025-04-26 10:26:18 12605

原创 Unity Shader编程】之FallBack

回退到Unity标准PBR Shader,适用于希望保持物理渲染效果但主Shader失效的情况(需兼容Built-in管线)。在不同渲染管线(如Built-in、URP、HDRP)中,某些Shader可能失效。支持漫反射+高光反射(Blinn-Phong模型),适用于金属、塑料等需镜面反射的材质。支持透明度测试(Alpha Test),适用于树叶、镂空贴图等需硬边缘裁剪的物体。针对移动端优化的漫反射Shader,去除非必要计算(如动态阴影)。仅支持漫反射光照,适用于无高光需求的材质(如布料、纸张)。

2025-03-27 21:33:05 762

原创 Unity Shader编程】之复杂光照

在Unity Shader的LightMode标签中,除了前向渲染和延迟渲染外,还支持多种渲染模式设置。以下是主要分类及用途:一、核心渲染路径模式前向渲染相关ForwardAdd延迟渲染相关Deferred二、辅助功能模式3. 阴影处理三、特殊用途模式5. 无条件渲染AlwaysVertexVertexLM四、选择建议DeferredForwardAdd。

2025-03-24 20:56:17 1204

原创 【Unity Shader编程】之透明物体渲染

unity shader的透明物体渲染,主要是要控制好渲染队列以及是否开启深度写入,当遇到透明渲染队列需要关闭深度写入,以防半透明或者透明物体写入的时候,导致后面的不透明物体因为深度写入的判断杯丢弃,并且半透明或者透明物体,需要在不透明物体之后渲染,而半透明物体渲染,需要渲染前后两面,因而,需要两个pass,一个先渲染背面,另外一个再渲染正面,达到双面渲染的状态。第一个 Pass 的深度写入为第二个 Pass 提供了逐像素的深度基准,而第二个 Pass 仅依赖此基准进行混合(不修改深度缓冲)。

2025-03-24 01:38:58 773

原创 Unity Shader 的编程流程和结构

渲染顺序:在不透明物体之后渲染(光照模式:处理主光源和环境光(投影器影响:不受 Projector 影响(渲染类型:标记为透明物体(这种组合非常适合需要透明效果的 Shader,例如玻璃、粒子或水面。Unity Shader Tags 是控制渲染行为的核心工具。通过合理设置 Tags,你可以调整物体的渲染顺序、光照处理方式以及其他特性。希望这个回答能帮到你!如果有更具体的问题,请告诉我,我会进一步解答。Pass:每个 Pass 定义一次渲染过程,包含顶点着色器和片段着色器。

2025-03-21 23:56:04 1434

原创 Unity Shader编程】之透明物体渲染

查看 Pass:通过 Shader 代码或 Frame Debugger 分析。多个 Pass 影响:增加 Draw Call 和复杂性,需优化。Pass 含义:一次渲染操作,可实现多阶段效果。渲染流程:初始化 → 剔除 → 排序 → 渲染 → 输出。多物体处理:通过 Tags 和 Queue 控制顺序,结合 Alpha 混合/裁剪优化效果。

2025-03-21 23:51:31 1326

原创 Unity Shader编程】之渲染流程之深度及pass详解

手动不通过深度测试的方式可以通过禁用深度测试、控制深度写入、在片段着色器中使用discard,或者手动修改深度值等方法来实现。你可以根据具体需要选择其中一种或多种方式来控制渲染的行为。你有什么具体的应用场景或效果需要实现吗?我可以帮你提供更详细的实现建议。在物体通过测试之后才会进行深度写入玻璃在墙前面时,通过深度测试的像素会被绘制。绘制时,玻璃的颜色与背景颜色通过混合,而不是简单相加。混合公式是加权和,权重由玻璃的 Alpha 值决定,确保透明效果自然且符合视觉预期。

2025-03-19 16:26:45 1938

原创 Unity Shader编程】之基础纹理

‌切线空间特性‌:切线空间由顶点‌切线(T)‌、‌副切线(B)‌、‌法线(N)‌构成,法线贴图存储的是该空间下的法线偏移‌。在此空间下,法线方向‌无需依赖模型姿态‌,仅需将光照方向、视角方向等外部向量转换到切线空间,即可直接参与计算‌13。

2025-03-08 01:09:49 1176

原创 【Unity Shader编程】之常见函数及变量总结

以上列表涵盖了 Unity Shader 中最常用的函数和变量,以及基础运算函数。这些工具广泛应用于光照计算(如dotreflect)、纹理采样(如tex2D)、矩阵变换(如mul)和动画效果(如_Time掌握这些函数和变量,可以帮助你高效实现各种视觉效果。

2025-03-06 13:43:37 1281

原创 向量详细解释

向量意义表示方向,例如从A指向B,得到方法,从B的坐标减去A,就得到了A指向B的向量表示长度。

2025-03-05 00:29:33 2161

原创 【Unity Shader编程】之光照模型

高光反射,主要是利用,摄像机和反射角的夹角来判断,但夹角越小,说明名高光反射越强,所以利用点乘来计算,假设一下,你看着镜子,反射光直照射你的眼睛,是不是代表着反射强度越大,所以第一种phone模型一种是先求出光线反射角,然后计算光线反射角与摄像机视角的点积,但可能因夹角超过 90° 导致高光断层。漫反射光强 = S_diff * m_diff * max(dot(n, l), 0)基于菲涅尔效应:rim=pow(1.0-dot(N,V),_RimPower)S_diff:光源漫反射颜色(含强度)3。

2025-03-04 22:16:41 1154

原创 【Unity Shader编程】之图元装配与光栅化

示例:gl.drawArrays(gl.TRIANGLES, 0, 3)自动生成三角形。会自动自动裁剪超出屏幕范围(NDC空间外)的三角形,仅保留可见部分。顶点坐标存入装配区 → 按绘制模式连接顶点 → 生成完整几何图元。

2025-02-18 17:00:20 439

原创 【Unity Shader编程】之顶点着色器

在shader编程中,定义的结构体,有些是会被自动赋值,有些是必须要手动赋值的,这就涉及到了例如结构体里面定义的两个变量 vertex和uv,后面加了POSITION和TEXCORD0两个语义,就赋予了他们不同的特殊功能,他们会被自动赋值,而vertex2就是一个普通的变量了。下面是语义表**

2025-02-13 18:21:51 492

原创 【Unity Shader编程】之GPU编程前言

之前一直不懂,为什么写一个shader代码,然后整个模型就会动,因为之前都是cpu编程思路,比如说cpu控制一个人物行走,就是控制一个人物,要控制10个人物,就要循环10次,分别控制他们,但是在gpu不一样,因为gpu编程是并行性,你写完gpu的编程,写完shader,是直接挂在单一物体上,这个时候,我们控制的是这个物体,但是控制的是这个物体的什么呢?1,顶点。

2025-02-13 17:27:07 432

原创 《大规模动画优化(一):GPU 顶点动画的生成》

步骤代码操作作用获取角色网格选择要烘焙的角色启动动画模式让 Unity 进入动画编辑模式逐帧采样动画让角色停留在特定动画帧获取顶点数据采集当前帧的蒙皮网格数据存储到纹理SetPixel()将动画帧存入 Texture2D保存文件导出动画数据纹理✅ 烘焙后的动画纹理可以直接用于 GPU 渲染,实现海量动画角色的高效渲染!附上完整代码/// GPU 顶点动画烘焙窗口public class 角色动画烘焙窗口类 : EditorWindow。

2025-02-07 16:01:31 1400

原创 (框架搭建一)之代码和主工程分离

框架搭建

2025-01-12 01:34:55 833

原创 查找项目中丢失脚本的物体

可以一键查找出来丢失的脚本物体列表,也可以一键清除脚本物体列表。"工具/丢失脚本的物体列表"

2024-08-09 14:09:04 275

7000汉字加所有特殊符号.txt

日常常用7000汉字加所有特殊符号,加上自己补缺的几个汉字,日常基本没有错漏了。 日常常用7000汉字加所有特殊符号,加上自己补缺的几个汉字,日常基本没有错漏了。 日常常用7000汉字加所有特殊符号,加上自己补缺的几个汉字,日常基本没有错漏了。 日常常用7000汉字加所有特殊符号,加上自己补缺的几个汉字,日常基本没有错漏了。

2019-12-30

testtt.json

复杂的json数据复杂的json数据复杂的json数据

2021-08-27

UVAnimation.zip

UV动画的例子,

2019-12-12

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除