À propos du projet
Spartan Engine est un moteur de jeu personnel de recherche et développement créé par un seul ingénieur sur plus d'une décennie. Il est explicitement décrit comme n'étant pas un produit commercial, sans promesses de feuille de route ni file d'attente de support.
L'architecture de rendu repose sur le principe selon lequel le GPU possède les données. La géométrie, les matériaux, les textures, les lumières, les transformations et les AABB résident dans des tampons persistants accessibles globalement. Le chemin de dessin est sans liaison (zero-binding), avec les données par draw dans un seul tampon de stockage bindless et les push constants ne transportant qu'un index. Un unique tampon global de sommets et d'index couvre toute la géométrie, utilisant le vertex pulling qui contourne l'Input Assembler et est partagé par la rastérisation et le ray tracing. Le rendu indirect piloté par GPU effectue le frustum culling par meshlet, l'occlusion culling Hi-Z et le backface cone culling, le CPU émettant un seul DrawIndexedIndirectCount par passe. Le clustering des meshlets utilise meshoptimizer sans dépendance aux mesh shaders. Le HLSL universel est compilé à la fois pour Vulkan (SPIR-V) et DirectX 12. Le traitement des assets côté GPU gère la génération des mips et la compression des textures au moment du chargement. Le rendu est en deferred unifié, les surfaces opaques et transparentes partageant le même BSDF et le même chemin.
L'éclairage et l'illumination globale incluent le path tracing ReSTIR avec rééchantillonnage spatiotemporel par réservoir pour une GI multi-rebond en temps réel, le clustered deferred shading avec une grille logarithmique en Z construite par GPU, les réflexions et ombres par ray tracing matériel via ray queries, la diffusion atmosphérique, l'éclairage basé sur image avec normales courbées, les nuages volumétriques, le brouillard volumétrique froxel, un océan FFT avec spectre de Tessendorf, les ombres en espace écran, l'occlusion ambiante XeGTAO et un atlas de shadow maps.
Les fonctionnalités de performance incluent le variable rate shading, la mise à l'échelle dynamique de la résolution, le TAAU, NVIDIA DLSS, Intel XeSS, le FXAA et des breadcrumbs GPU personnalisés en cas de crash. La caméra et le post-traitement couvrent une caméra physiquement réaliste avec exposition automatique et unités lumineuses physiques, les tone mappers ACES/AgX/Gran Turismo 7, la sortie HDR10, le bloom, le flou de mouvement, la profondeur de champ, l'aberration chromatique, le grain de film et le sharpening.
Une simulation de dynamique de véhicule s'exécute à 200 Hz dans la boucle à pas de temps fixe de PhysX, avec des pneus Pacejka MF 5.2, la modélisation des suspensions, le transfert de masse, la transmission, les freins thermiques, l'aérodynamique, la direction Ackermann, les assistances et l'entrée par manette ou volant avec retour haptique.
Les autres systèmes du moteur incluent des particules pilotées par GPU, l'animation squelettique avec skinning et cinématique inverse, la physique PhysX, le scripting Lua 5.4 via Sol2, l'audio positionnel 3D, un système d'entités à composants avec sérialisation XML, des routes splines procédurales, un séquenceur de plans caméra, un pool de threads conscient du matériel, l'OpenXR VR en cours de développement, une timeline de profilage avec intégration RenderDoc, l'import d'assets pour de nombreux formats de modèles, d'images et de polices, et un éditeur basé sur ImGui.
Le dépôt inclut des mondes par défaut avec physique activée, un guide de compilation et un guide de scripting Lua. La licence autorise l'utilisation non commerciale gratuite, la modification et la redistribution avec attribution, tandis que l'utilisation commerciale nécessite une autorisation écrite préalable et des conditions négociées.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.