自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 收藏
  • 关注

原创 GPU PRO 5 - 2.1 Physically Based Area Lights 笔记

抽离的关键在于将粗糙度g'和着色点p的关系解绑,也就我在渲染着色点p的时候,我需要将当前着色点p的粗糙度g也作为查表的一个坐标。Li的值是可以通过离线预计算处理,在要用的时候通过查询一个三维表来获得,该表的三个维度坐标分别是光源空间中Pd的xy坐标和着色点与Pd之间的距离r。目前为止考虑的光源都是均匀光源,真实情况的光源可能是非均匀发光,因此需要对光源做一些处理,论文中提示用预积分的对整个光源变化进行预积分,再按照光源面积进行归一化。对于两个面积的求交,文章考虑了两种情况,一个是圆盘光源,一个是矩形光源。

2026-05-17 17:17:12 273

原创 Unity基于自定义管线实现风格化水

本文在Catlike Coding 实现的基础上参考多方文章编写的风格化水的渲染。

2026-05-14 15:54:26 481

原创 GPU PRO 5 - 1.4 Simple Rasterization-Based Liquids 笔记

文章表示液体模拟是逐个计算粒子与粒子之间的相互作用力实现的,主打一个力大飞转。这种模拟方式需要对粒子做空间排序以方便查找周边粒子,而这篇文章则将每个粒子的属性投射到网格上,通过在网格上求解粒子间的动力学来简单模拟液体,因此免去了排序步骤也不需要去寻找邻接粒子。文章的背景是为了解决弱不可压缩模型下光滑粒子流体动力学(SPH)里模拟粒子行为时需要查找旁边粒子来计算作用力这个形式。这里的核心想法是:不是直接从网格上计算出新的值赋值给粒子,而是计算一个变化量给粒子。3,将计算好的结果反馈回粒子上调整粒子。

2026-04-22 21:51:43 197

原创 GPU PRO 5 - 1.3 Particle-Based Simulation of Material Aging 笔记

在粒子和表面的材质传输有两种类型,一种是从粒子里的材质更新到物体表面(PS_SurfaceUpdate),一种是从物体表面更新到粒子里(GS_GammatonUpdate)。代码上看就是将当前表面数据和粒子里面的材质数据进行混合,但有些不明白CUDA编程中是不是可以对物体材质数据进行读写的,因为在Unity渲染中贴图一般是在CPU中进行读写的,这里的CUDA流程应该是类似的。以上便是粒子模拟的大概流程,思路其实很简单,就是用CUDA每帧更新物体表面和粒子的材质数据,模拟粒子本质上也只是迭代更新数据。

2026-04-08 21:33:21 373

原创 GPU PRO 5 - 1.2 Reducing Texture Memory Usage by 2-Channel Color Encoding 笔记

RGB颜色空间可以表示为一个三维表示的立方体,一张纹理的所有颜色都分布在这个立方体之内,但是普通的纹理他所有像素在这个立方体中存在一定的空间关联性,具体来说在三维空间中可以找到一个平面,他与这张纹理的所有像素点都相对较近。这个颜色平面在RGB颜色空间中与边界交叉可以获得几个顶点,一个顶点是(0,0,0),与顶点相邻的两个顶点(bc1,bc2)则定义为该颜色平面的基色。文章主要的思想其实还是如何用一个颜色平面拟合一张在RGB空间下的纹理,这个平面才是能够双通道存储的核心,这里用的是最小二乘法进行的拟合。

2026-03-22 16:59:06 388

原创 Unity基于自定义管线实现贴花效果

本文在Catlike Coding 实现的基础上参考知乎文章实现相关功能。

2026-03-18 14:16:42 440

原创 GPU PRO 5 - 1.1 Per-Pixel Lists for Single Pass A-Buffer 笔记

当要把手上的盒子放到队列里的时候,我们先和队列里第一个盒子比较,如果位置上的盒子里的值比手上的盒子值小的时候,我将手上的盒子和当前位置的盒子交换,并且根据两个盒子的内容决定我下一次要去找哪个位置的盒子去比较。在PRE-SORT 中,插入排序需要在全局内存中完成,这样的操作会比较慢,但这个排序方法支持对不可见的片元提前剔除。在传统光栅化渲染半透明物体时,往往渲染的顺序十分重要,一般渲染半透明物体的时候都是从距离相机比较远的物体开始渲染,靠近相机的后渲染,从后往前叠加颜色来得到最终效果。

2026-03-07 15:58:01 486

原创 GPU PRO 4 - 6.2 Real-Time JPEG Compression Using DirectCompute 笔记

本笔记仅为个人的理解,如果有误欢迎指出。Real-Time JPEG Compression Using DirectCompute 使用DirectCompute实时JPEG压缩本文基于C++ 和 Direct3D 11.0 ,利用DirectCompute 对RGB数据进行JPEG压缩。整个文章分为两个部位:1,JPEG的主要流程以及原理2,DX11实现实例。

2026-02-12 18:30:18 578

原创 Unity基于自定义管线实现视差贴图

本文基于CustomSRP2.5.0框架,在Unity 2022.3.18f1环境下实现了视差贴图效果。

2026-02-10 10:59:23 664

原创 Unity基于自定义管线实现经典经验光照模型

SRP管线的好处就是任何渲染效果都可以自己去实现,坏处就是任何渲染效果都要自己去实现。本文在Catlike Coding 实现的基础上给出几个经典光照模型的Shader实现,Catlike Coding在这教程中使用的是PBR光照模型,网上常见的实现范例都是基于Unity预设的管线,这边给出这个教程框架下的实现。

2026-02-06 15:48:05 683

原创 GPU PRO 4 - 6.1 Bit-Trail Traversal for Stackless LBVH on DirectCompute 笔记

本笔记仅为个人的理解,如果有误欢迎指出。层次包围结构:这是一种树形的数据结构,一般常用于碰撞检测,游戏引擎中将场景的物体进行划分的时候就会将物体都划分成一个一个包围盒,由此生成了一个树形结构线性的层次包围结构:LBVH是一种使用了Morton Code(位交错编码/莫顿码)线性构建的BVH结构,一般LBVH的使用对象是网格上的三角形,LBVH用每个三角形的三个顶点坐标计算出三角形的重心坐标,再将三角形重心坐标通过Morton Code映射成一串编码,再根据每个三角形编码的相似性进行包围层次包围结构的划分。

2026-02-03 01:51:53 575

原创 Unity 实现一个简单的构建机

这只是一个简单的技术实现,很多技术细节还相当毛糙,不少地方都是硬编码,但只要流程都跑通了后续功能都可以自行添加。

2026-01-28 21:16:36 431

原创 GPU PRO 4 - 5.3 A Pipeline for Authored Structural Damage 笔记

本笔记仅为个人的理解,如果有误欢迎指出A Pipeline for Authored Structural Damage 一个可人工设计的结构破坏管线Authored Structural Damage :人工的结构破坏,指的是美工手工制作的被破坏结构的细节,比如断肢的残面,建筑被破坏后暴露的钢筋之类的。为了表现角色和建筑的破坏效果,传统的方式是使用贴花(decal)技术,比如弹痕。但是这种技术表现不了结构变化类型的破坏,比如断肢,身体的孔洞,建筑被轰炸后造成的孔洞之类的。

2026-01-24 11:32:38 599

原创 GPU PRO 4 - 5.2 Kinect Programming with Direct3D 11 笔记

本笔记仅为个人的理解,如果有误欢迎指出Kinect Programming with Direct3D 11 用DX11在Kinect编程这篇文章,比起技术性文档,更像是一篇Kinect的说明文,价值不高。

2026-01-19 22:23:34 376

原创 GPU PRO 4 - 5.1 An Aspect-Based Engine Architecture 笔记

本文更像是讲述的一种在数据高度集中的情况下如何将各个功能在引擎层面中封装成模块,这种引擎的特点就是数据被管理到引擎核心中,功能模块化后对于引擎的修改会更加方便,因为只需要关注当前模块的功能即可。这边文章个人觉得理解难度不高,涉及的技术难点也不多。【什么是面向切面编程AOP?- 欲眼熊猫的回答 - 知乎】【在Unity中简单使用AOP为方法添加自定义属性】【DOTS 技术深度解析】

2026-01-18 18:21:50 1259 1

原创 GPU PRO 4 - 4.1 Real-Time Deep Shadow Maps 笔记

本笔记仅为个人的理解,如果有误欢迎指出Real-Time Deep Shadow Maps 实时深度阴影贴图在离线渲染中渲染半透明物体的时候会使用到一种深度阴影贴图的东西辅助渲染,例如头发以及烟雾的阴影渲染,本篇文章提供了一种在实时渲染中生成并应用深度阴影贴图的方法,依赖DX11 的API。一张阴影贴图是光源点为视角,观察不透明物体时生成的深度图,但这张贴图一般是不会考虑半透明物体的,深度阴影贴图中则是专门考量半透明物体对阴影影响,具体影响数值由下面这个公式得出。

2026-01-11 18:42:59 1026

原创 Unity 一个简单的红点模块

红点模块主要通过树结构完成,先使用一个普通的树结构实现。

2026-01-06 15:38:09 348

原创 GPU PRO 4 - 3.5 Coherence-Enhancing Filtering on the GPU 笔记

流程从一张灰度图或者颜色图输入开始,每次迭代的时候进行流引导平滑和冲击过滤锐化,并在执行前进行一次局部方向估计,锐化后会进行一次边缘平滑再输出图像,用来展现每次迭代的效果。算法的核心是局部方向估计 (Local Orientation Estimation),用来获取当前像素位置的方向信息,他由平滑后的结构张量的特征值分析得到。b, Shock Filter 冲击过滤 一种锐化过滤方法,能把纹理插值平滑地变换成陡峭的变换。本文讲述的是一种图像处理办法,能够将图像处理成类似梵高或爱德华·蒙克的绘画风格。

2025-12-29 21:51:29 131

原创 GPU PRO 4 - 3.4 Practical Framebuffer Compression 笔记

结合后文理解,通过同时采样四周围的点来计算当前点的颜色从而近似复原出原图,T 代表阈值 Li 代表每个采样点通道中的Y,从而计算出每个采样点对当前点混合比例wi,进而混合出当前点的【Y Co Cg】信息,再通过颜色转换公式计算出【R G B】信息。颜色转换公式中,RGB -> YCoCg 是线性转换的,那么混合也可以是线性的,但需要留意的是转换后的YCoCg的值范围是[-0.5 , 0.5] 保存到缓冲里面的时候加了0.5 映射到[0,1] ,混合的时候需要留意。本笔记仅为个人的理解,如果有误欢迎指出。

2025-12-20 16:26:34 169

原创 Unity基于自定义管线实现屏幕空间反射(SSR)

本文在Catlike Coding 实现的基础上参考了知乎文章增加了屏幕空间反射(SSR)功能,并给出相关步骤。

2025-12-12 17:50:28 1199

原创 GPU PRO 4 - 3.3 Second-Depth Antialiasing 笔记

可以看到,在这个情况中两个边缘并没有交点,褶皱边的计算方式无法生效,这个时候,通过记录浅蓝色边的深度,计算得到交点A,在用A点的位置作为参考决定如何去做混合颜色的比例。而浅蓝色边的深度,主要通过shader渲染中反向利用剔除物体背后这个机制来获取。也就是说第二层深度纹理指的是面向摄像机的物体的背面的深度。褶皱边这种情况,通过两个边交点A ,与距离B、C两点的比例作为权值,来混合两边的颜色。本文讲述的是一种在后期处理的时候通过另一层深度纹理优化轮廓边的抗锯齿效果。本笔记仅为个人的理解,如果有误欢迎指出。

2025-12-09 21:59:06 184

原创 Unity基于自定义管线实现风格化草

本文基于Unity 2022.3.18f1和CustomSRP2.5.0管线,参考Roystan的GrassShader实现风格化草地渲染。

2025-11-11 16:55:29 979 2

原创 Unity基于自定义管线实现体积云—光线步进(RayMarch)算法

本文在Catlike Coding 实现的基础上参考了知乎文章实现了体积云渲染,并给出相关步骤。

2025-10-20 11:33:27 1056

原创 Unity 一个简单的多线程日志系统

可配置日志文件大小,并且可以清除旧日志,防止日志太多占用空间。:使用锁和双队列确保多线程安全以及读写分离。:批量处理日志条目,提高性能。:支持不同级别的日志过滤。

2025-10-12 18:09:45 240

原创 Unity基于自定义管线实现体积雾—光线步进(RayMarch)算法

本文在Catlike Coding 实现的基础上参考了知乎文章实现了体积雾渲染,并给出相关步骤。

2025-09-09 10:09:52 1591

原创 Unity基于自定义管线实现体积光—光线步进(RayMarch)算法

本文在Catlike Coding 实现的基础上参考了知乎文章增加了后期处理体积光功能,并给出相关步骤。

2025-08-18 15:29:52 1010

原创 Unity基于自定义管线实现屏幕空间环境光遮蔽(SSAO)

本文在Catlike Coding 实现的基础上参考了知乎文章【Unity URP实现SSAO】增加了屏幕空间环境光遮蔽(SSAO)功能,并给出相关步骤。

2025-07-29 11:22:43 1332

原创 Unity 基于UIToolKit编写的一个proto协议编写界面

基于UIToolKit编写的一个proto协议编写界面

2025-03-26 10:55:27 482

原创 Unity 调用Windows保存对话窗口崩溃

这里有问题,原本怀疑是【openFileName.maxFile】 给的太小,后面给了256,512,10000依旧会有闪退。这里面new了一个新的string不会闪退,怀疑是不是c++里面引用到了一个空指针对象导致的崩溃,然后尝试了这种代码。然后问题来了,测试那边反馈,调用这个保存框多几次后程序会发生崩溃。到这里还没什么问题,功能能够正常实现,测试那边也没有问题。折磨啊,折腾了好一会后,我搞出了这种代码。网上找了一番后参考了这个代码实现了功能。运行了一下,功能正常便直接交给测试了。

2024-09-27 11:08:42 606 2

原创 一些unity开发过程中奇怪的问题解决方案记录

这个问题是因为Unity2022 有BUG,在适配安卓旧机型上有问题,该问题在2022.3.18f1 版本中被修复。

2024-02-01 10:31:49 1090 1

原创 用C#实现企业微信机器人定时下班提醒服务

用C#建立一个企业微信定时提醒下班的功能

2023-11-15 16:15:41 1270 2

原创 [Unity3D] Unity3D连接安卓设备调试unity程序

通过unity3d以及VS对安卓设备上自己打包的unity程序进行调试

2022-08-02 18:47:38 22969 9

空空如也

空空如也

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

TA关注的人

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