RealEngine
RealEngine copied to clipboard
My toy engine, mainly for rendering experiment and prototyping.
RealEngine
My toy engine, mainly for rendering experiment and prototyping.
It requires a GPU which supports DX12 Ultimate with latest driver.
It is not supposed to be used in production, and prefers clean design and code over being heavily optimized.

some highlights
- utilize latest DX12 features, such as raytracing, mesh shaders, HLSL 2021, etc.
- render graph based architecture, with automatically barriers and transient resources management
- fully bindless resources with SM6.6
- two-phase occlusion culling (like Ubi's GPU driven pipeline). no matter how many different meshes and textures, always two drawcalls(indirect DispatchMesh) per PSO.
- hybrid rendering with raytracing
Print,DrawLinefunctions in shaders which can be very useful for debugging
planned features
- [x] render graph(barriers, resource aliasing, async compute)
- [x] GTAO
- [x] specular GI
- [x] diffuse GI
- [ ] clustered shading
- [x] Bloom
- [x] Auto Exposure
- [x] TAA
- [x] CAS
- [x] meshlet
- [x] RTX
- [x] a reference pathtracer
- [x] FSR2/DLSS/XeSS
- [ ] DOF
- [x] motion blur
- [ ] visibility buffer
- [ ] Direct Storage
- [ ] maybe volumetric cloud/fog, water/ocean simulation, large-scale landscape, or any random things
AMD related issues
tested on RX6600(win11, Adrenalin 22.10.01.03)
- using
SV_IsFrontFacein an AS-MS-PS combine results inDXGI_ERROR_DRIVER_INTERNAL_ERRORwhen creating the PSOD3D12: Removing Device. D3D12 WARNING: ID3D12Device::RemoveDevice: Device removal has been triggered for the following reason (DXGI_ERROR_DRIVER_INTERNAL_ERROR: There is strong evidence that the driver has performed an undefined operation; but it may be because the application performed an illegal or undefined operation to begin with.). [ EXECUTION WARNING #233: DEVICE_REMOVAL_PROCESS_POSSIBLY_AT_FAULT] denoiser_reproject.hlslcompiled with-O0crashes when creating the PSOHSR - raytracepass with async compute results in GPU hang