12 dépôts
Mechanisms for tracking pixel depth to resolve surface visibility and hidden surface removal.
Distinct from Visibility Utilities: None of the UI-focused visibility candidates are appropriate for 3D graphics depth-buffer implementations.
Explore 12 awesome GitHub repositories matching graphics & multimedia · Depth Buffers. Refine with filters or upvote what's useful.
Tinyrenderer is a C++ library designed as an educational tool for building a 3D graphics pipeline from scratch. It provides a software-defined rendering environment that executes all geometric transformations and rasterization tasks on the central processor, intentionally avoiding reliance on external hardware acceleration or graphics libraries. The project serves as a pedagogical resource for understanding the fundamental mathematical principles of computer graphics. It enables users to implement custom shader pipelines and core rendering techniques, such as barycentric coordinate calculatio
The renderer tracks the depth of each pixel during rendering and discards fragments that are obscured by previously drawn surfaces to ensure accurate hidden surface removal.
This project is a cross-platform graphics and compute framework that provides a unified, hardware-agnostic abstraction layer for rendering and parallel processing. It enables developers to build high-performance applications that execute consistently across diverse operating systems and hardware backends, including Vulkan, Metal, and DirectX. By mapping high-level graphics commands to native APIs, it serves as a portable foundation for both real-time 3D rendering and general-purpose GPU computing. The framework distinguishes itself through a robust architecture that supports both native deskt
Maintains z-coordinate buffers to automatically determine pixel visibility and draw order.
This repository is a comprehensive collection of functional 2D and 3D demo projects and implementation samples for the Godot Game Engine. It serves as an interactive tutorial and reference library, providing a working codebase to demonstrate how to apply engine features in real-world scenarios. The collection focuses on practical implementation guides, covering a wide array of technical capabilities from basic engine fundamentals to advanced rendering and scripting techniques. It allows users to study the application of node-based composition, asset pipelines, and game logic through direct ex
Adjusts camera near and far clipping planes to prevent Z-fighting and flickering of overlapping 3D objects.
Quake III Arena is a first-person shooter game engine and arena combat simulator. It consists of the original C++ game source code for a cross-platform 3D game designed to run on Windows, Linux, and Mac. The project provides the source code necessary to render a first-person shooter experience, focusing on player-versus-player battles in closed 3D environments. It serves as a resource for legacy game preservation and the study of early 3D game engine construction. The engine incorporates spatial partitioning, client-side prediction, and state synchronization to manage multiplayer networking
Implements a Z-buffer to track pixel depth and resolve surface visibility for 3D rendering.
meshoptimizer is a 3D mesh optimization library designed to compress geometry and animation data, reduce memory usage, and improve rendering performance. It functions as a geometry simplification tool, a mesh compression codec, and a utility for preparing data for mesh shaders and raytracing acceleration. The library provides specialized toolsets for partitioning meshes into clusters and meshlets to optimize hardware-accelerated rendering pipelines. It also includes helpers for generating opacity micromaps and spatial clusters to increase the speed of hardware ray-triangle intersection tests.
Creates a specialized index buffer for depth-only rendering passes to reduce the total count of unique vertices.
webgl-fundamentals est une ressource éducative complète et un tutoriel graphique pour apprendre le rendu 2D et 3D accéléré par le matériel en utilisant l'API WebGL. Il sert de programme d'études structuré sur les graphismes 3D et de référence pour la programmation GPU, guidant les utilisateurs à travers le pipeline graphique, de la géométrie de base aux techniques de rendu avancées. Le projet fournit des guides détaillés sur le développement de shaders GLSL, y compris la création de shaders de sommets (vertex) et de fragments. Il se concentre spécifiquement sur l'implémentation de modèles d'éclairage en temps réel — tels que l'éclairage directionnel, ponctuel et spot — et l'application de flux de travail de shadow mapping et de texture mapping. La ressource couvre une large surface de capacités en infographie, y compris les mathématiques spatiales 3D, l'implémentation de systèmes de caméra pour les vues en perspective et orthographiques, et l'utilisation de transformations matricielles. Elle inclut également des instructions pour effectuer du calcul GPU généraliste (GPGPU) et optimiser les performances de rendu via des sommets indexés.
Implements a Z-buffer to manage pixel visibility and ensure correct object occlusion in 3D scenes.
Tixl est un moteur d'animation graphique basé sur des nœuds et un outil de génération procédurale utilisé pour créer de la géométrie 3D et des shaders. Il utilise un graphe acyclique dirigé d'opérateurs et des noyaux de calcul accélérés par GPU pour générer des formes 3D complexes, notamment grâce à l'utilisation de fonctions de distance signées et de simulations de particules. Le moteur est hautement extensible via un framework de développement C# qui prend en charge le rechargement de code à chaud (hot code reloading), permettant d'injecter une logique d'opérateur personnalisée dans le runtime actif sans redémarrage. Il se distingue également en tant que contrôleur d'éclairage, capable de traduire des attributs spatiaux 3D et des rotations en protocoles DMX et ArtNet pour piloter des équipements de scène physiques. La plateforme couvre un large éventail de capacités, y compris la visualisation audio-réactive via l'analyse FFT, l'animation par images clés et procédurale, et le contrôle externe en temps réel via l'intégration MIDI et OSC. Son pipeline de rendu prend en charge le rendu physiquement réaliste (PBR) et la construction de shaders personnalisés, tandis que l'environnement fournit des outils pour le mapping de projection et le déploiement d'exécutables autonomes. Le projet fournit une CLI pour construire des applications et une surface de développement pour créer des extensions C#.
Tracks pixel distance from the camera to resolve surface visibility and handle hidden surface removal in 3D scenes.
ReShade is a post-processing shader injector that hooks into DirectX, OpenGL, and Vulkan rendering pipelines to apply custom shaders in real time. It operates by injecting a DLL into the target process, intercepting graphics API calls, and inserting a configurable pipeline of user-selected shader effects that read color and depth buffers to alter the final output. The project distinguishes itself through depth buffer auto-detection, which automatically identifies the depth-stencil attachment in the rendering pipeline, enabling per-pixel depth effects such as ambient occlusion and depth-of-fie
Automatically identifies the depth-stencil buffer to enable per-pixel depth effects like ambient occlusion.
gsplat is a high-performance differentiable rasterization engine for 3D Gaussian splatting, designed for real-time novel view synthesis from 2D images. It provides a complete pipeline for reconstructing 3D scenes by optimizing differentiable Gaussian representations, training models from COLMAP-processed captures or proprietary device files, and generating new viewpoints through a CUDA-accelerated rendering backend. The framework distinguishes itself through memory-optimized CUDA kernels that reduce training memory usage by up to 4x compared to standard implementations while matching publishe
Generates depth maps from 3D Gaussian scenes during the rasterization process.
VulkanTutorial is a comprehensive educational guide and instructional resource for implementing low-level rendering and compute pipelines using the Vulkan API. It serves as a GPU programming course and a step-by-step guide for building high-performance graphics applications from scratch. The project provides detailed instruction on the full graphics pipeline, including the compilation of shaders to SPIR-V bytecode, the configuration of rasterization states, and the implementation of 3D graphics pipelines. It also covers general-purpose GPU compute programming, focusing on the execution of par
Implements depth testing to prevent fragments from being drawn over closer geometry using Z-coordinate comparisons.
Renderer is a low-level software graphics engine implemented in standard C for educational and experimental real-time computer graphics. It functions as a CPU rasterizer that computes vertex transformations, clipping, texturing, and lighting entirely through software computation without requiring hardware acceleration. The software includes a geometry pipeline supporting depth and alpha testing, geometry clipping and culling, and perspective-correct attribute interpolation. Its lighting and shading subsystem provides advanced physical simulation including metallic-roughness and specular-gloss
Resolves visible surfaces and transparency using depth buffer comparisons and alpha evaluations.
Ce dépôt sert de ressource éducative pour les développeurs apprenant la programmation graphique mobile et embarquée. Il fournit une collection de tutoriels et d'exemples de code pédagogiques axés sur l'implémentation de techniques de rendu en utilisant l'interface graphique OpenGL ES. Le projet couvre les composants fondamentaux du pipeline graphique, incluant les étapes programmables basées sur des shaders, les transformations de coordonnées basées sur des matrices et le mappage de textures. Il démontre également des techniques pratiques pour gérer le matériel graphique, telles que la diffusion de tampons de sommets (vertex buffer streaming), la gestion d'état et l'élimination des surfaces cachées par tampon de profondeur. Ces supports sont conçus pour soutenir le développement de pipelines de rendu personnalisés pour les applications mobiles. Le contenu met l'accent sur l'éducation graphique multiplateforme, fournissant des conseils sur l'écriture de shaders de sommets et de fragments pour contrôler la sortie visuelle sur le matériel mobile.
Implements depth-buffer hidden surface removal to ensure correct visibility of 3D objects during the rasterization process.