如何入门渲染 涵盖的知识领域太多了,学习路线非常陡峭 先说结论不要一开始就试图把所有东西都学完。 渲染入门比较合适的方式是先把一条最小管线跑通,然后再逐步补数学、图形 API、Shader、光照、阴影、后处理这些内容。 如果一开始就从 PBR、GI、Path Tracing 这种东西切进去,很容易陷入概念很多但什么都写不出来的状态。 最小学习路线可以按这个顺序来: 先理解 CPU 提交数据,GPU 执行 Sh 2025-08-13 图形学
JoltPhysics JoltPhysics JoltPhysics 是一个高性能的物理引擎,专为游戏和实时应用设计。它提供了丰富的功能,包括碰撞检测、刚体动力学、约束系统等。JoltPhysics 的设计目标是提供高效且易于使用的物理模拟解决方案。 特点 高性能:JoltPhysics 经过优化,能够处理大量物体的物理模拟,适用于大型场景和复杂交互。 确定性:引擎提供确定性的物理模拟,确保在相同的输入下每次都能得到相 2025-08-07 编程 #游戏开发 #物理引擎 #JoltPhysics
离屏渲染 离屏渲染Offscreen Rendering(离屏渲染)是一种在不直接显示到屏幕上的缓冲区中进行图形渲染的技术。 说白了就是RenderTarget不是屏幕,而是一个纹理或者一个缓冲区。 常见用途离屏渲染在游戏里非常常见,比如: 小地图 角色头像 后处理 UI 中显示 3D 模型 阴影贴图 反射贴图 Portal 或监控屏效果 需要多次混合的复杂 UI 本质上就是先把某个结果画到一张纹理里 2025-08-07 图形学 #渲染 #图形学
为什么会产生锯齿 在计算机图形学中,锯齿现象通常是由于分辨率限制和采样不足引起的。当我们在屏幕上渲染图像时,图像是由离散的像素组成的,而不是连续的。这种离散性导致了边缘处的阶梯状效果,即锯齿。 锯齿现象的主要原因包括: 分辨率限制:当图像的分辨率较低时,细节无法被充分表达,导致边缘看起来不平滑。 采样不足:在渲染过程中,如果对图像进行的采样次数不足,尤其是在边缘区域,可能会导致锯齿现象更加明显。 几何形状的离散化 2025-08-07 图形学 #图形学 #锯齿
通过Pre-Z减少AlphaClip绘制的开销 手机上AlphaClip为什么会很卡本质上是由于 OverDraw (过度绘制)引起的。AlphaClip 会丢弃像素,但这些像素在片元着色器阶段之前已经被处理过了,因此仍然会消耗 GPU 资源。尤其是在移动设备上,GPU 资源有限,过度绘制会导致性能下降。 Pre-Z优化方案 再Opaque绘制之前,先绘制一遍AlphaClip的物体,只进行深度写入 在AlphaClip绘制时,开启深度测试 2025-08-07 Unity #Unity #游戏开发 #Shader #Pre-Z #AlphaClip
Unity-LightProbe导致的性能异常问题 使用LightProbe烘焙间接光时,主要是有一些LightProbe的点出现了穿插,导致在运行时计算插值时出现了大量的计算开销,从而导致性能异常。 解决方案是让Probe不要出现穿插,避免计算时因为两个点之间存在Mesh导致计算开销过大以及错误结果 问题现象场景里启用 LightProbe 后,运行时会出现异常的 CPU 开销。 这个开销不一定稳定复现,有时候只在某些位置、某些镜头角度、某些角色 2025-08-07 Unity #Unity #游戏开发 #LightProbe
图形学中的坐标变换 在图形学中,坐标变换是一个核心概念,它涉及将点或对象从一个坐标系转换到另一个坐标系。常见的坐标系包括局部坐标系、世界坐标系和视图坐标系。 对于一个模型,我们通常会定义它在局部坐标系中的位置和方向。通过应用一系列变换矩阵(如平移、旋转和缩放),我们可以将模型从局部坐标系转换到世界坐标系。这些变换矩阵通常以4x4矩阵的形式表示,以便处理齐次坐标。 例如,假设我们有一个点P在局部坐标系中的位置为(1, 2025-08-07 图形学 #图形学 #坐标变换
通过CommandBuffer绘制小地图 最近在做小地图的优化方案, 原先的方案很常见: 为目标物体在场景内很远的位置生成一个SpriteRenderer代理,使用一个小地图相机在对应位置拍摄, 小地图相机的渲染目标是一张正方形的RT,RT会作为UI上一个RawImage的纹理。 通过Camera->RT->RawImage的方式,最终在UI上显示小地图。 这样的做法有几个问题: 需要额外一个Camera,需要完整走Cam 2025-08-07 Unity #Unity #游戏开发 #Shader #CommandBuffer #小地图 #Mask
Unity-ShadowDistance问题 ShadowMap精度先说结论: Unity中的阴影距离实际上是 near plane + shadow distance 观察下面两种ShadowMap 左边: neap plane = 0.01 , shadow distance = 4.39 右边: neap plane = 2.36 , shadow distance = 4.39 可以明显看出 2025-08-01 Unity #Unity #游戏开发 #Shader #阴影