- 博客(7)
- 收藏
- 关注
原创 [Unreal shader]深度缓冲重建世界坐标
UE中通过深度缓冲重建世界空间坐标原理和Unity shader重建原理基本一致,但是UE中重建世界坐标的实现路径与Unity是不一致的 :• Unity中使用采样的是原始深度值(),是一个范围[0,1]的非线性深度值;UE中SceneDepth节点获取的是真实距离的线性深度(Linearepth),单位是厘米。• Unity和UE的坐标系不同,Unity是左手坐标系,Y轴向上 (Y-Up),Z轴向前;UE是左手坐标系,Z轴向上 (Z-Up),X轴向前。
2026-01-21 18:18:38
1122
原创 [Unreal shader]后处理全屏输出深度纹理
UE中,全屏输出显示出来把深度缓冲(Depth Buffer),最常用且最标准的方法是使用后处理材质 (Post Process Material)。这和Unity的ScriptableRenderPass逻辑类似,在UE中完全可以通过材质编辑器可视化实现。
2025-12-25 15:57:08
617
原创 [Unity shader]相交高亮的原理与实现
相交高亮是一种通过比较当前绘制片元深度与场景背景深度来实现的视觉效果。当渲染物体的表面与背景物体(如墙壁、地面)在空间上非常接近时,通过Shader计算产生高亮边缘,从而消除生硬的几何切割感,增强融合效果。
2025-12-19 17:14:53
1175
原创 [Unity Shader]深度值
深度指视图空间中,顶点/片元坐标的z分量,该分量代表到相机(视图空间原点)的距离z。距离z是线性距离(Unity使用的是OpenGL,相机的观察方向是负z轴,有时会使用 -viewZ 表示到相机的正距离)。View.z经过投影矩阵映射到裁剪空间为Clip.z,范围是[-w,w]。裁剪空间的深度值经过透视除法映射到NDC空间中(Clip.z / Clip.w = NDC.z),范围是[0,1](DirectX NDC.z范围是[0,1],OpenGL NDC.z范围是[-1,1])。
2025-12-11 17:05:51
1169
原创 [Unity Shader]深度缓冲重建世界坐标
像素是屏幕空间中的点,其坐标由 x、y(屏幕位置)以及 z(深度缓冲值)组成。像屏幕后处理(如贴花、SSAO、SSR 等)需要根据像素在三维空间中的相对位置进行采样和计算。然而,屏幕空间本身是二维的,无法直接表示三维位置,因此需要通过深度值和投影矩阵信息,将屏幕空间坐标 (x,y) 与深度 z 虚拟重建为像素在视图空间或世界空间中的三维位置。从深度缓冲(通常是屏幕空间深度)重建三维世界坐标主要有两种核心方法:• 逆矩阵反推法• 视线法。
2025-11-28 11:26:17
1073
原创 [C++] 内存分区基础知识
C++对内存区域划分为:堆区(C语言中被称为自由存储区)、栈区、字符常量区、代码区、全局/静态区对内存空间进行分区的目的:更加高效的管理内存,提升计算机硬件的应用效率。
2023-07-24 11:50:33
210
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅