Skip to content

moso31/Nix

Repository files navigation

Nix

自制 DX12 渲染器。

特性

GPU Driven 的地形流式加载系统

地形系统,采用流式加载。

整体思路基于 Terrain Rendering in 'Far Cry 5'。详见:https://gdcvault.com/play/1025480/Terrain-Rendering-in-Far-Cry

基于异步的流式加载器传输纹理,并基于GPU-Driven实现剔除优化。

image image

并提供了一套从Houdini导入资源的完整流程

image

地形系统:性能

在AMD-Ryzen 5800X + RTX 4070Ti环境下,16384x16384的地形,可达720p 1k多帧(cpu瓶颈),2k 550帧,同时显存占用不到200M。并且考虑到代码并非彻底优化,在此基础上仍有不少提升空间。

Adaptive Virtual Texture

这一部分基本是对 Ka Chen 《Adaptive Virtual Texture Rendering in Far Cry 4》 中所介绍功能的的落地。

image

NXRG(基于有向无环图的半自动RenderGraph)

提供了一个半自动的RenderGraph实现。

支持对导入资源自动估算生命周期,并整合同类型纹理实现资源复用,但不支持DAG剪枝优化和断环。

提供了可视化界面,可观察实际资源复用情况

image image

标准 PBR

延迟渲染管线(Deferred Pipeline)+ 漫反射 IBL(球谐,Spherical Harmonics)+ 预过滤贴图(PreFilter Map)

Depth Peeling、SSAO

代码DX11时期编写,较老旧,没时间折腾,暂时停用

级联阴影贴图(Cascade Shadow Map,仅 PCF)

image

可编程材质 + HLSL 代码编辑器:https://github.com/moso31/DonoText

image

Burley SSS + 近似 SSS BTDF

image transition_animation

一个非常简单的色调映射(Tone-Mapping)

XAllocator

XAllocator 是 Nix DX12 使用的内存分配器,用于为 TextureResources / CBuffers / RTViews / DSViews / Descriptors 分配内存。

Wiki:https://github.com/moso31/Nix/wiki/XAllocator(还没写完……)

计划中……

  • 抗锯齿(TAA / SMAA / FXAA……)
  • 屏幕空间环境光遮蔽(HBAO / GTAO……)
  • SSR
  • 更好的后处理(Post-Processing)

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors