- 博客(154)
- 资源 (10)
- 收藏
- 关注
原创 基于ddgi源码的DirectX 12与Vulkan技术对比
本文对比分析了DirectX12与Vulkan图形API的核心技术实现,重点探讨了两种API在描述符系统、设备创建、同步机制、资源管理和光线追踪加速结构等方面的差异。Vulkan采用显式声明和底层控制的设计理念,通过描述符池、队列族等机制提供精细的硬件抽象;而DirectX12则通过集中查询和直观管理实现高效资源控制。在光线追踪方面,两种API均提供硬件加速的BLAS/TLAS加速结构,相比自定义空间分割算法具有显著性能优势。研究结果表明,理解这些技术差异有助于开发者根据项目需求选择合适API并优化实现方案
2026-01-12 17:03:11
460
原创 RTXGI-DDGI:实时光线追踪全局光照的深度技术解析
本文详细解析了DDGI(动态漫反射全局光照)的渲染流程与架构实现。DDGI通过探针网格动态更新场景光照信息,将渲染管线划分为GBuffer生成、探针更新、间接光照采样和合成后处理四个主要阶段。其中探针更新是核心环节,包含射线追踪、数据更新、重定位、分类和变化性计算等子步骤。文章对比了DDGI与路径追踪模式的技术差异,深入剖析了GBufferRGS、PathTraceRGS等关键着色器的实现细节,并介绍了Bindless资源管理、SER优化等关键技术。该技术通过解耦光照计算与几何处理,在保证视觉效果的同时兼顾
2026-01-09 09:55:13
879
原创 PhysX物理引擎解析
本文深入解析了NVIDIA PhysX 4.1物理引擎的核心架构与技术实现。通过分层模块化设计,PhysX将基础数学运算、碰撞检测、约束求解等核心功能解耦,支持多核并行与GPU加速。重点分析了其碰撞检测系统(广相/窄相/CCD)、基于PGS算法的约束求解器、岛屿并行处理机制等关键技术,并探讨了任务调度、内存优化等性能提升策略。研究表明,PhysX通过持续接触流形、智能休眠等创新设计,在保证物理真实性的同时实现了高效的实时仿真,为游戏开发、虚拟现实等领域提供了强大的物理计算支持。
2025-12-30 16:01:28
978
原创 光子映射技术深度解析:从理论架构到工程实现
本文详细介绍了光子映射技术在计算机图形学渲染中的实现方法。该系统采用模块化分层架构,包含基础数据层、核心算法层和渲染调度层,实现了高效的光子追踪、KD树构建与近邻查询、辐射度估算等功能。文章重点解析了光子图构建、光子追踪、辐射度估算等核心环节,并介绍了材质系统对Lambert漫反射、镜面反射和玻璃材质的精准模拟。通过使用Embree加速结构和OpenMP并行计算,系统显著提升了光线求交和光子追踪的效率。完整的渲染流程结合了直接光照计算和基于光子图的间接光照估算,有效解决了漫反射与焦散等间接光照效果的渲染难题
2025-12-22 17:07:25
996
原创 GLSL PathTracer 项目全面深度解析:架构、原理与核心技术
本文介绍了GLSLPathTracer这一基于OpenGL着色语言的高性能路径追踪渲染器的核心设计与实现。该系统采用"CPU预处理+GPU并行渲染"的模块化架构,通过两级BVH加速结构、纹理驱动的GPU数据传输、双着色器渲染策略等关键技术,实现了高质量的物理渲染。重点阐述了场景处理与加速结构构建、GPU数据传输优化、着色器系统设计、增量式分块渲染策略等核心模块的实现原理。该系统融合了现代离线渲染理论(如Disney材质模型、多重重要性采样)与GPU并行计算实践,在保证物理准确性的同时,通
2025-12-17 11:27:12
1183
原创 SDF在实时图形渲染中的核心原理与架构创新
有向距离场(SDF)作为现代图形引擎的核心技术,通过连续标量场表示几何信息,为实时渲染提供高效基础。其核心优势包括平滑插值特性、高效几何查询和分辨率无关性。GPU并行架构通过跳跃泛洪算法(JFA)等优化实现动态SDF高效计算。SDF在全局光照、软阴影、动态漫反射全局光照(DDGI)等高级渲染中发挥关键作用,并与可微分渲染结合实现3D形状优化。尽管面临内存消耗、计算效率等挑战,通过体素哈希、增量更新等技术优化,SDF正发展为未来"SDF-First"渲染架构的核心数据源,有望统一各类图形效
2025-12-04 17:40:35
792
原创 可变速率着色(VRS)技术深度解析:从理论基础到实践应用
可变速率着色(VRS)技术是实时图形渲染领域的重要突破,它通过差异化着色频率优化性能。该技术基于人类视觉特性,允许对非关键区域(如运动模糊、远景等)降低着色精度,同时保持核心区域的视觉质量。主流图形API(DirectX12和Vulkan)通过分层架构实现VRS:基础层提供绘制调用级别的控制,高级层支持基于屏幕空间图像和图元属性的精细控制。VRS在VR注视点渲染、开放世界游戏和移动平台中展现出显著优势,可提升30%性能或降低25%功耗。未来发展方向包括结合机器学习优化着色分配、与光线追踪技术融合,以及持续硬
2025-11-26 10:20:12
680
原创 Bevy ECS Systems与普通函数的关联机制
Bevy游戏引擎的ECS架构通过SystemParamFunction机制将普通函数转换为可执行系统。开发者编写的参数为SystemParam的函数,会被宏自动实现SystemParamFunction trait,然后通过IntoSystem转换为FunctionSystem。执行时,系统获取参数并调用原始函数,同时正确处理生命周期以保证内存安全。这种设计使开发者能专注于业务逻辑,Bevy自动处理系统转换和执行细节。
2025-11-17 11:19:19
580
原创 LightGraph:用最短路径革命参与介质渲染的预计算引擎
摘要:蒙特利尔大学提出的LightGraph算法通过创新性的预计算技术攻克了4K特效渲染的效率瓶颈。该算法采用分治策略,将单次散射与多重散射分离处理:前者使用传统光线步进,后者通过构建稀疏点云网格(MSG)加速计算。关键技术包括自适应飞镖投掷生成点云、改进Floyd-Warshall算法进行最短路径查找,以及高斯核密度估计实现体积光栅化。实验显示其能将爆炸场景渲染时间缩短至传统方法的1/16(32小时→2小时),同时保持视觉质量。这种以可控偏差换取效率突破的工程范式,为复杂介质渲染提供了新思路。
2025-11-13 10:59:22
911
原创 3D Gaussian Splatting:渲染流程
本文详细介绍了基于3D高斯喷洒(3D Gaussian Splatting)的渲染技术实现过程。系统首先加载预训练的3D高斯参数和相机轨迹数据,包括位置坐标、透明度、球谐函数系数、尺度和旋转参数等。核心算法通过球谐函数实现视点相关着色,使用直流分量表示基础颜色,交流分量捕捉视角变化效果。渲染过程包括点投影筛选、协方差矩阵投影、瓦片划分优化和逐瓦片alpha混合渲染,最终生成高质量图像。该方法通过紧凑的数学表示和高效的计算策略,实现了复杂场景的逼真渲染,特别适合处理视角变化引起的颜色变化效果。
2025-11-06 17:18:49
685
原创 gpu driven:vello新执行流程
本文分析了Vello渲染管线的WGSL实现,主要包括8个核心阶段:1)路径标签归约使用并行前缀和算法压缩路径数据;2)路径扫描构建全局索引;3)曲线展平通过误差控制将贝塞尔曲线转换为线段;4)绘制对象处理解析不同绘制命令;5)分箱使用位图标记对象与瓦片的对应关系;6)瓦片分配采用原子操作管理内存;7)粗栅格化生成每瓦片命令列表;8)细栅格化最终像素渲染,通过缠绕数计算和原子操作实现精确填充。整个管线采用GPU并行计算,结合精巧的算法设计,实现了矢量图形的高效栅格化。
2025-10-27 16:50:38
920
原创 Bevy动画系统
本文深入解析了Bevy游戏引擎的动画系统实现。系统采用基于图的结构组织动画,支持复杂混合、遮罩等高级功能。核心包含动画目标、剪辑、动画图和播放器等组件,通过解析GLTF文件加载动画数据,构建节点路径和动画曲线。系统实现了高效的动画评估机制,包括线程化图遍历、评估器缓存和并行处理等优化技术,支持骨骼动画、蒙皮网格和动画事件,为游戏开发提供了强大而灵活的动画解决方案。
2025-10-27 16:46:07
780
原创 Bevy 渲染系统 Bindless 实现与交互逻辑
本文深入解析Bevy游戏引擎的Bindless渲染技术实现。作为基于Rust的现代引擎,Bevy采用"资源数组+索引表"的准Bindless方案,通过AsBindGroup宏自动生成绑定逻辑,支持传统与Bindless两种布局。文章详细剖析了渲染执行流程、宏工作机制、资源管理策略,以及与传统Bindless的区别,揭示了Bevy在跨平台兼容性与性能之间的平衡设计。该实现虽非完全动态,但为WebGPU环境下的大规模资源管理提供了高效解决方案。
2025-10-20 14:39:18
1138
原创 Bevy渲染引擎核心技术深度解析:架构、体积雾与Meshlet渲染
本文深入解析Bevy游戏引擎的渲染架构,重点探讨其体积雾实现原理、Meshlet渲染技术和PBR系统。Bevy采用基于组件的ECS架构,通过RenderGraph构建渲染管线,实现模块化设计。体积雾系统采用光线步进算法,支持平行光、点光源和聚光灯三类光源处理,并引入相位函数和空间抖动优化技术。Meshlet渲染管线通过双遍剔除系统、自适应光栅化(硬件/软件切换)和多级深度处理链显著提升性能。PBR系统与Meshlet深度集成,实现完整的物理渲染流程。架构设计亮点包括分层剔除系统、GPU特性检测和精确资源控制
2025-08-12 15:40:50
783
原创 Rust实现GPU驱动的2D渲染引擎
Vello是一款基于Rust的GPU驱动2D渲染引擎,通过将路径计算、图元处理等任务完全交由GPU并行处理,突破了传统CPU渲染的性能瓶颈。其核心采用13阶段计算管线、前缀和算法及动态分块渲染技术,实现256工作项的高效并行处理,性能较传统方案提升4倍以上。Vello支持复杂矢量图形、文本渲染和高级填充效果,同时利用Rust的内存安全特性确保稳定性。该引擎适用于地图、UI框架等场景,并计划集成光追加速等前沿技术。
2025-07-29 11:09:15
1115
5
原创 RenderDoc抓帧与重放流程
RenderDoc图形调试工具深度解析:采用Qt界面层与核心注入层双模块架构,通过DLL注入实现API指令拦截(支持Vulkan/D3D11/D3D12/OpenGL)。抓帧过程包括进程注入、API函数拦截和Chunk序列存储,通过Socket进行跨进程通信。重放引擎解析.rdc文件并执行指令重放,实现精准帧分析。核心设计优势包括零性能损耗、精准帧界定和无驱动依赖,通过WriteProcessMemory注入和ReplayLog重放等机制,为开发者提供高效的图形调试解决方案。
2025-07-28 17:18:11
1295
原创 TSR,FSR,DLSS超级分辨率的原理分析
超分辨率与深度学习抗锯齿 (DLAA)帧生成光线重建这些特性分别适用于不同的 GeForce RTX GPU 系列,并且通过不断的技术更新和优化,DLSS 已经成为提升游戏体验的重要工具。DLSS 技术通过超分辨率、抗锯齿、帧生成和光线重建等特性,为游戏玩家提供了前所未有的图像质量和性能提升。随着越来越多的游戏和应用支持 DLSS,玩家可以在更多的游戏中体验到这一革命性技术带来的优势。无论是追求极致画质的玩家,还是希望在高分辨率下享受流畅游戏体验的玩家,DLSS 都是一个不可或缺的工具。
2024-06-05 23:13:15
50223
原创 meshshader中对三角形的组织优化
Mesh Shader是一种新型的图形着色器,结合了传统的顶点着色器和几何着色器的功能,提供了更高的灵活性和性能。它允许开发者以更自由的方式组织和处理顶点数据,从而优化渲染流程。Nanite是Epic Games在Unreal Engine 5中引入的一种虚拟化几何体技术,旨在处理极其复杂的几何体数据。它通过细粒度的细分和动态加载,实现了高效的几何体渲染。
2024-05-24 23:55:32
1001
原创 Unreal基础多线程及渲染多线程
unreal engine(ue)支持多线程执行和渲染,优化了游戏和应用程序的性能。在多线程执行方面,ue允许并行处理多个任务,如物理计算、人工智能逻辑和网络通信,提高cpu使用率和响应速度。对于多线程渲染,ue采用延迟渲染技术,将渲染任务分配到多个核心上同时进行,有效减少画面撕裂和提升帧率,为玩家带来流畅的视觉体验。
2024-05-24 11:00:50
1878
原创 gdc2024:Raytracing in Snowdrop技术实现与性能优化策略
图形渲染技术的快速发展中,光线追踪(Raytracing)技术已成为推动高质量渲染效果的关键力量。特别是在Snowdrop引擎中,光线追踪技术的运用不仅优化了控制台游戏的照明管线,还极大地提升了游戏的视觉体验和沉浸感。本文将深入探讨Snowdrop引擎中光线追踪技术的核心技术和优化细节。
2024-05-22 22:49:16
1274
原创 实时角色控制:基于相位函数神经网络的研究
本文提出了一种基于相位函数神经网络(PFNN)的实时角色控制方法,旨在实现高质量、自然流畅的角色运动,并具有良好的环境适应性。该方法包含三个主要阶段:数据预处理、网络训练和运行时。本文对方法的局限性进行了讨论,并提出了未来的改进方向。总体而言,本文提出了一种有效的实时角色控制方法,具有显著的应用前景
2024-04-17 09:30:26
1370
原创 游戏动画技术:从传统到深度学习
文章详细介绍了传统游戏动画技术的原理,包括骨骼动画、蒙皮技术,以及状态机、动作融合和IK等交互控制方法。同时,深入探讨了Motion Matching技术的优势及其在UE5引擎中的实现和优化。此外,文章还特别介绍了基于深度学习的动画技术,如PFNN、MANN和MotorNerve系统,以及它们在游戏开发中的重要应用和前景。无论您是游戏开发者、动画师,还是对游戏技术感兴趣的读者,这篇专业且详尽的文章都将是您的宝贵资源。立即阅读,开启您对游戏动画技术的全新认知之旅!
2024-04-09 10:08:43
3418
原创 基于物理的可微渲染
可微渲染(Differentiable Rendering)是一种新兴的渲染技术,它结合了计算机图形学和机器学习,特别是的技术。与传统的渲染技术相比,可微渲染最大的特点是其渲染过程是的,这意味着可以通过计算渲染图像的梯度来优化渲染参数。需要通过梯度下降算法来学习场景参数、光照条件或材料属性等任务中。
2024-03-28 14:15:54
2735
原创 基于可变分辨率的半透明特效渲染优化方案
粒子效果在游戏中无处不在。大颗粒系统常见于烟雾、火灾、爆炸、灰尘和雾。如果这些效果填满屏幕,overdraw会非常严重,帧率会掉得很快,即使是在技术成熟的 3A 游戏中也是如此。以至于来半透明渲染的优化问题一直都是难题。
2024-03-05 17:03:56
1762
原创 VDB-具有动态拓扑的高分辨率稀疏体积表示方法
论文提出了一个称为VDB的新颖数据结构和算法,它可以高效地表示三维网格上的稀疏、随时间变化的数据。VDB的数据结构基于B+树,包含一个动态的根节点,以及多个内部节点和叶节点层次,这些节点具有不同的分支因子和较小的尺寸。它通过倒序遍历已经访问过的节点来实现随机访问的显著加速,同时保持了固定的树深度和分支因子。
2024-02-10 00:58:20
1787
原创 3D Gaussian Splatting-实时辐射场渲染技术
3D Gaussian Splatting是一种新颖的连续体表示,能够高效地表示场景并支持快速渲染。交错优化高斯点属性和密度控制实现了高斯点集的紧凑表示。基于瓦片的渲染算法实现了高效可微分的渲染,支持了快速训练和实时渲染。方法在多个数据集上实现了高质量和实时效果,同时训练速度和内存占用较低。3D高斯模型可被视为一种介于体积和表面表示之间的折衷,具有广泛的适用性。尽管方法在某些区域存在缺陷,但总体上达到了高质量实时神经辐射场渲染的要求。
2024-01-31 11:42:56
2424
原创 Mesh Shader介绍
Mesh Shader 是一种新型的 GPU 编程模型,它是为了解决传统的图形管线在处理复杂几何体时的瓶颈而设计的。Mesh Shader 提供了一种更灵活、更高效的方式来处理大量的几何体,特别是在现代的实时 3D 渲染环境中。在传统的图形管线中,顶点着色器和几何着色器是按顶点或图元(如三角形)顺序执行的,这种方式在处理大量几何体时可能会导致 GPU 的计算能力没有被充分利用。
2023-05-28 17:47:27
5311
原创 ue多线程简单概述
在任务图中,每个任务都是由一个函数表示,可以在一个线程上执行。这个调度过程是自动完成的,无需手动干预。此外,如果线程需要访问UE的游戏对象和函数,则需要在创建线程时将主线程上下文传递给它。多线程是一种非常复杂的概念,需要对系统的底层结构和算法有深入的了解。在游戏开发中,多线程可以极大地提高游戏的性能,但是如果不小心处理,也可能导致游戏出现各种问题。FRunnable是UE的一个轻量级线程抽象,提供了简单的线程管理和同步方法。总之,UE的多线程模型提供了一种灵活且高效的方法来处理复杂的游戏逻辑。
2023-03-26 01:02:10
1496
原创 unity 性能自适应
每个游戏在一些指标下会导致性能变化比较大,所以这个unity的插件就是为了解决每个时刻对性能影响的控制。他会包括是否动态合批,限制帧率,lod的切换距离,lut的分辨率,msaa的子像素个数,是否支持动态分辨率,csm的个数,阴影贴图的距离,阴影贴图的分辨率,是否开启不透明从前往后渲染顺序,是否渲染半透明物体,远裁剪面距离。
2022-09-30 11:32:45
1919
1
原创 unity core-prefab
添加一个组件到prefab,需要通过将组件对应的对象存在磁盘种后,再标记为prefab的一个部分。这部分在prefab.cpp中。
2022-09-01 22:36:55
1802
原创 unity computeshader的可读写buffer
computeshader中的读写的buffer,在opengl上是用ssbo实现的。KernelState中的inBuffers,outBuffers这些buffer,会走到GfxDeviceGLESSetComputeBuffer,如果索引0x7FFFFF表示GLE中实际上不存在缓冲区,但仍然需要计数器。则用BindShaderStorageBuffer来绑定ssbo,...
2022-07-27 16:54:08
2457
原创 unity texturestreaming
texturestreaming是想通过摄像机可见范围内的对象区分指定的mipmap,然后只流送指定的mipmap给到mesh中。
2022-07-15 17:56:16
1540
原创 unity srpbatcher
srpbatcher是使用ubo实现的,如果是不需要更改的信息他不会更新这个对象的ubo的索引。在GraphicsCapsGLES.cpp中初始化时会确定是否使用了es3来确定是否支持srpbatcher。如果支持则在GpuProgramParamsGLES.cpp中填充参数时执行FillParamsBaseGLES。在有使用uniform的情况下更新ubo的绑定对象UpdateUBOBindings。如果有使用srpbatcher则会判断该是否要重新绑定这个ubo的索引。......
2022-06-17 16:22:31
1261
原创 ozzanimation-基于sse的动作系统
ozzanimation是利用sse也就是用simd单指令多数据的形式来处理animation的动作变化、转换坐标以及ik等的处理方式。可以比传统的直接矩阵转换快。
2022-06-07 22:50:22
868
原创 UE5-nanite数据流处理
入口:在DeferredShadingRenderer中的render,如果开启了nanite,会进行数据流的更新。核心入口是Nanite::GStreamingManager.BeginAsyncUpdate和Nanite::GStreamingManager.EndAsyncUpdate以及Nanite::GStreamingManager.SubmitFrameStreamingRequests。初始化:NaniteStreamingManager种对数据流的初始化执行InitRHI,
2022-05-13 00:19:41
2265
原创 ue5-Nanite运行时数据获取
nanite的执行起始:VisBuffer64是可视信息的纹理对象,在NaniteRender.cpp中的FRasterContext InitRasterContext,这里对RasterContext的对象初始化,其中的VisBuffer64就在这里创建的纹理。在LumenSceneRendering的nanite阶段会初始化。除了lumen的处理,在FDeferredShadingSceneRenderer::Render在开启了nanite后也会初始化FDeferred.
2022-04-16 16:37:01
3748
原创 UE5-Nanite构建
在MeshBuilderModule.cpp的FMeshBuilderModule::BuildMesh中执行到StaticMeshBuilder.cpp的BuildNanite会执行nanite的构建NaniteBuilderModule.Build执行到NaniteBuilder.cpp的FBuilderModule::Build分线程构建三角形首先从Sections中拿到材质索引设置到MaterialIndices中。执行BuildNaniteData,根据三角形的数据执行C.
2022-04-10 23:10:25
3974
原创 Unity-URP-基于模板的延迟渲染
URP延迟渲染的差异:在urp的12版本以上支持了延迟渲染,但是这个延迟渲染跟我们之前说的延迟渲染管线会有一些差异。核心是他构建光照这块不太一样。传统的方式是要通过簇的方式创建簇中所有符合的灯光列表,然后最后才根据像素所在的簇给到灯光的颜色叠加。而这个方式的gbuffer部分还是会输出gbuffer0.rgb(漫反射颜色),gbuffer0.a(材质索引),gbuffer1.rgb(高光信息),gbuffer1.a(环境遮蔽),gbuffer2.rgb(世界空间法线),gbuffer2.a(光滑度),g
2022-04-05 15:07:56
5985
原创 ue5-预计算可视性体积(PVS)
构建pvsFStaticLightingSystem::BeginLightmassProcess在lightmass的构建过程中,如果设置了pvs的构建则会一起构建。执行InitiateLightmassProcessor,然后在里面执行LightmassProcessor->InitiateExport在里面如果选择了生成pvs则会创建FGuid::NewGuid然后执行Exporter->WriteToChannel(Statistics, DebugMappin.
2022-04-04 02:30:55
2850
Mesh Slicer v1.8.rar
2021-10-19
LuaProfiler-For-Unity-master.zip
2020-01-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅