NicoIer's Blog
  • 首页
  • 归档
  • 分类
  • 标签
  • 关于
  • 工具
    中国宏观经济
  • Itch

JoltPhysics

JoltPhysics JoltPhysics 是一个高性能的物理引擎,专为游戏和实时应用设计。它提供了丰富的功能,包括碰撞检测、刚体动力学、约束系统等。JoltPhysics 的设计目标是提供高效且易于使用的物理模拟解决方案。 特点 高性能:JoltPhysics 经过优化,能够处理大量物体的物理模拟,适用于大型场景和复杂交互。 确定性:引擎提供确定性的物理模拟,确保在相同的输入下每次都能得到相
2025-08-07
编程
#游戏开发 #物理引擎 #JoltPhysics

离屏渲染

离屏渲染Offscreen Rendering(离屏渲染)是一种在不直接显示到屏幕上的缓冲区中进行图形渲染的技术。 也就是说,RenderTarget 不是屏幕,而是一个纹理或者缓冲区。 常见用途离屏渲染在游戏里非常常见,比如: 小地图 角色头像 后处理 UI 中显示 3D 模型 阴影贴图 反射贴图 Portal 或监控屏效果 需要多次混合的复杂 UI 本质上就是先把某个结果画到一张纹理里,
2025-08-07
图形学
#渲染 #图形学

为什么会产生锯齿

在计算机图形学中,锯齿现象通常是由于分辨率限制和采样不足引起的。当我们在屏幕上渲染图像时,图像是由离散的像素组成的,而不是连续的。这种离散性导致了边缘处的阶梯状效果,即锯齿。 锯齿现象的主要原因包括: 分辨率限制:当图像的分辨率较低时,细节无法被充分表达,导致边缘看起来不平滑。 采样不足:在渲染过程中,如果对图像进行的采样次数不足,尤其是在边缘区域,可能会导致锯齿现象更加明显。 几何形状的离散化
2025-08-07
图形学
#图形学 #锯齿

Unity 通过 AlphaClipDepth 与 ZTest Equal 优化 Alpha Clip

将 Alpha Clip 搬到轻量深度预写 Pass,再让主光照 Pass 使用 ZTest Equal,以减少高 OverDraw 场景中的昂贵片元着色。
2025-08-07
Unity
#Unity #性能优化 #Shader #URP #AlphaClip #Early-Z

Unity-LightProbe导致的性能异常问题

使用LightProbe烘焙间接光时,主要是有一些LightProbe的点出现了穿插,导致在运行时计算插值时出现了大量的计算开销,从而导致性能异常。 解决方案是让Probe不要出现穿插,避免计算时因为两个点之间存在Mesh导致计算开销过大以及错误结果 原因LightProbe 本质上是用空间中的 Probe 点来近似间接光。 运行时物体需要根据当前位置,在周围的 Probe 之间做插值,得到当前点
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 #阴影

CSharp结构体中引用类型初始化问题

初始化struct/class里的List时,第二种写法会报nullref 123456789101112131415161718192021222324public struct MyStruct{ public List<int> MyList1; public MyStruct() { }}static v
2025-07-29
编程
#CSharp #IL

Unity场景Lightmap是否存在

Unity场景Lightmap是否存在判断当前激活的场景是否存在Lightmap,可以通过以下代码实现: 123456789var dataAsset = Lightmapping.lightDataAsset;if(dataAsset != null && dataAsset.lightmaps != null && dataAsset.lightmaps.Len
2025-07-22
Unity
#Unity #游戏开发 #Lightmap
123456

搜索

Nicoier
总访问量 次 总访客数 人