A tracker of notable real-time graphics features, the kind found in high-end shader packs and in large commercial engines, checked against what SleakEngine actually ships.
✓ green means implemented in SleakEngine and verified in the source tree. ✓ grey means not implemented. The notes column names the implementing file or class, and records which backends carry the feature when it is not all four.
Backend shorthand: VK (Vulkan), GL (OpenGL), DX11, DX12. Vulkan is the most complete backend; DX11 covers forward rendering with shadows and tonemapping, DX12 covers forward rendering with shadows.
Rendering paths
| Status | Feature | SleakEngine notes |
| ✓ | Deferred shading | VulkanDeferred.cpp GBuffer + lighting_pass.frag; GL path in OpenGLRenderer.cpp with gbuffer_gl / lighting_pass_gl |
| ✓ | Forward rendering | Renderer::SetDeferredEnabled, default_shader variants on all four backends |
| ✓ | Forward transparent pass | VulkanRenderer::BeginForwardTransparentPass, routed by RenderCommandQueue.cpp after lighting |
| ✓ | Forward+ / clustered shading | - |
| ✓ | Visibility buffer | - |
Geometry
| Status | Feature | SleakEngine notes |
| ✓ | Static mesh rendering | MeshComponent, Sleak::MeshData |
| ✓ | Bulk static geometry batching | Sleak::MeshBatch handle pool, BeginBatch / Draw / EndBatch |
| ✓ | Model import (FBX, glTF, OBJ) | Sleak::ModelLoader, Assimp-backed, builds the GameObject tree |
| ✓ | Skeletal skinning | Sleak::Skeleton (256 bones), skinned_shader variants, forward pass only |
| ✓ | Hardware instancing | RenderContext::DrawInstance / DrawIndexedInstance on all four backends; instance data must come from gl_InstanceIndex, there is no per-instance attribute stream |
| ✓ | Custom / procedural vertex formats | Sleak::VertexLayoutDesc + VertexFormatRegistry::Register, consumed by MeshBatch::CreateMesh |
| ✓ | Morph targets / blend shapes | - |
| ✓ | Mesh LOD | no LOD selection; LOD in the tree refers to texture mip levels only |
| ✓ | Hierarchical LOD (HLOD) | - |
| ✓ | Tessellation | no hull/domain or tessellation control/evaluation stages |
| ✓ | Mesh shaders | - |
| ✓ | Virtualized geometry (Nanite class) | - |
Lighting
| Status | Feature | SleakEngine notes |
| ✓ | Directional lights | Sleak::DirectionalLight, shadow-casting light picked in LightManager::UpdateAndBind |
| ✓ | Point lights | Sleak::PointLight, UE4-style inverse-square falloff in default_shader_gl.frag |
| ✓ | Spot lights | Sleak::SpotLight, inner/outer cone smoothstep |
| ✓ | Physically based shading | Cook-Torrance GGX + Smith + Fresnel-Schlick in lighting_pass.frag and default_shader_gl.frag |
| ✓ | Image-based lighting | OpenGLIBL.cpp bakes irradiance, prefiltered specular, and the split-sum BRDF LUT; the Vulkan side (VulkanIBL.cpp) allocates 1x1 black stubs with no bake, so GL only |
| ✓ | Area lights | Sleak::AreaLight packs GPU type 3, but no shader branches on it and it shades as a point light |
| ✓ | Baked lightmaps | - |
| ✓ | Light probes / reflection captures | - |
| ✓ | Dynamic global illumination (Lumen class) | - |
| ✓ | Screen space global illumination | - |
| ✓ | Distance field ambient occlusion | - |
Shadows
| Status | Feature | SleakEngine notes |
| ✓ | Shadow mapping | VulkanShadow.cpp, shadow_depth.vert, hardware comparison sampler |
| ✓ | Runtime shadow map resolution | Renderer::SetShadowMapResolution, deferred apply through ApplyShadowResolutionChange |
| ✓ | PCF filtering | 12-tap rotated Vogel disk with interleaved gradient noise, PCFFilter in lighting_pass.frag |
| ✓ | PCSS / contact hardening | blocker search in default_shader.frag, default_shader_gl.frag, skinned_shader.frag; forward path only, deferred uses fixed-radius PCF |
| ✓ | Cascaded shadow maps | single shadow frustum, no cascade split |
| ✓ | Virtual shadow maps | - |
| ✓ | Ray traced shadows | - |
| ✓ | Contact shadows (screen space) | - |
| ✓ | Point / spot light shadows | only the directional light casts |
Screen space and post processing
| Status | Feature | SleakEngine notes |
| ✓ | SSAO | VulkanSSAO.cpp and ExecuteSSAOPass in OpenGLRenderer.cpp, hemisphere kernel from SSAOKernel.hpp, separate blur pass |
| ✓ | Screen space reflections | VulkanSSR.cpp, ssr.frag; VK only |
| ✓ | Temporal anti-aliasing | VulkanTAA.cpp, taa.frag, Halton sub-pixel jitter applied to the WVP push constant; VK only |
| ✓ | MSAA | Renderer::SetMSAASampleCount, VK pipelines and GL m_msaaFBO; forward only, the deferred path silently forces 1 sample because a multisampled GBuffer is too expensive |
| ✓ | Bloom | VulkanBloom.cpp, threshold + downsample + upsample + composite chain at half resolution; VK only |
| ✓ | Tone mapping | ACES filmic (Narkowicz fit) in tonemap.frag, tonemap_gl.frag, tonemap.hlsl, tonemap_dx12.hlsl |
| ✓ | Exposure and gamma control | PostProcessUBO, Renderer::SetExposure / SetGamma |
| ✓ | HDR render target | CapHDRTarget, RGBA16F scene image through the lighting, bloom, and tonemap chain |
| ✓ | FXAA | GraphicsConfig::fxaaEnabled exists but no backend reads it |
| ✓ | Upscaling (TSR / DLSS / FSR class) | - |
| ✓ | Render scale | GraphicsConfig::renderScale is declared but unread |
| ✓ | HDR display output (HDR10 / scRGB) | swapchain selects VK_COLOR_SPACE_SRGB_NONLINEAR_KHR only |
| ✓ | Auto exposure / eye adaptation | config fields only, no luminance histogram or reduction pass |
| ✓ | Color grading / LUT | - |
| ✓ | Motion blur | - |
| ✓ | Depth of field | - |
| ✓ | Vignette | config field only, unread |
| ✓ | Chromatic aberration | - |
| ✓ | Film grain | config field only, unread |
| ✓ | Lens flare | - |
| ✓ | Velocity / motion vector buffer | CapVelocity is declared but no backend produces one; TAA reprojects from dilated depth |
Atmosphere and environment
| Status | Feature | SleakEngine notes |
| ✓ | Cubemap skybox | Sleak::Skybox six-face constructor, skybox.frag |
| ✓ | Equirectangular panorama sky | SkyboxMode::Panorama |
| ✓ | Procedural gradient sky | SkyboxMode::Gradient, three-color vertical blend |
| ✓ | Distance fog | LightManager::SetFogDistances, ApplyFog in lighting_pass.frag |
| ✓ | Exponential height fog | LightManager::SetHeightFogDensity / SetHeightFogFalloff, stacks with distance fog |
| ✓ | Physical sky / atmospheric scattering | gradient sky only, no Rayleigh or Mie model |
| ✓ | Volumetric fog | analytic fog only, no froxel volume |
| ✓ | Volumetric clouds | - |
| ✓ | God rays / light shafts | CapLightShaft and the lightShaft* config fields are declared, no backend implements the pass |
| ✓ | Water rendering | game side; the engine supplies the transparent pass hook via transparentShaderStem |
| ✓ | Planar reflections | - |
| ✓ | Rain and weather effects | - |
| ✓ | Wind / foliage animation | - |
Materials and texturing
| Status | Feature | SleakEngine notes |
| ✓ | Normal mapping | TBN basis in gbuffer.frag with Z reconstruction for two-channel compressed normals |
| ✓ | Metallic / roughness workflow | Sleak::Material factors and maps, packed into GBuffer RT1 and RT2 |
| ✓ | Ambient occlusion maps | texAO sampled in gbuffer.frag, combined with SSAO in the lighting pass |
| ✓ | Emissive maps | texEmissive times emissiveFactor, HDR intensity |
| ✓ | Alpha cutout | MaterialRenderMode::Cutout with SetAlphaCutoff |
| ✓ | Alpha-blended transparency | MaterialRenderMode::Transparent, routed to the forward transparent pass |
| ✓ | Mipmap generation | VulkanTexture::GenerateMipmaps blit chain, glGenerateMipmap on GL |
| ✓ | Parallax occlusion mapping | - |
| ✓ | Subsurface scattering | - |
| ✓ | Refraction / translucency | alpha blending only, no scene-color refraction |
| ✓ | Deferred decals | - |
| ✓ | Virtual texturing | - |
| ✓ | Texture streaming | textures upload whole at load time |
| ✓ | Texture atlasing | game side |
| ✓ | Anisotropic filtering | samplers use linear filtering without an anisotropy request |
Ray tracing
| Status | Feature | SleakEngine notes |
| ✓ | Ray traced reflections | no acceleration structures in any backend |
| ✓ | Ray traced global illumination | - |
| ✓ | Ray traced ambient occlusion | - |
| ✓ | Ray traced shadows | - |
| ✓ | Path tracing | - |
Performance and culling
| Status | Feature | SleakEngine notes |
| ✓ | View frustum culling | Sleak::CullingSystem::IsVisible, planes from Sleak::ViewFrustum |
| ✓ | CPU software occlusion culling | CullingSystem.cpp rasterizes submitted occluder volumes into a low-res depth buffer |
| ✓ | Data-driven quality presets | GraphicsConfig::Preset, applied in one shot by Application::ApplyGraphicsConfig |
| ✓ | Debug wireframe visualization | Sleak::DebugLineRenderer lines, AABBs, and spheres |
| ✓ | GPU occlusion queries | - |
| ✓ | GPU-driven rendering / indirect draw | no indirect draw entry points on RenderContext |
Particles and effects
| Status | Feature | SleakEngine notes |
| ✓ | CPU particle system | - |
| ✓ | GPU particle system | - |