Rendu
A lightweight rendering engine for experimentations
|
►NCompositeObj | Commposite OBJ files loading |
►NGPUShaders | Contains all shaders |
►NSceneExport | Helpers to export a Rendu scene |
CAnimated | Wraps an animated property so that the initial value is preserved |
CAnimation | An animation is a transformation evaluated at each frame and applied to an object |
CApplication | Base structure of an application |
CAsyncTextureTask | Request for an asynchronous texture download. Data has been copied from the source texture to a buffer during the frame. The readback of the buffer to the CPU has to be performed once the frame is complete |
CAtmosphereApp | Demo application for the atmospheric scattering shader. Demonstrate real-time approximate atmospheric scattering simulation. Based on Precomputed Atmospheric Scattering, E. Bruneton, F. Neyret, EGSR 2008 |
CAtmosphereConfig | Atmospheric scattering configuration. Parameters for precomputation |
CBackAndForth | Translate an object back and forth along a direction |
CBasicShadowMap2DArray | A 2D shadow map array, can be used for directional and spot lights. The shadow map will register itself with the associated lights |
CBasicShadowMapCubeArray | A cube shadow map array, can be used for point lights. Each face of the map is updated sequentially. The shadow map will register itself with the associated lights |
CBilateralBlur | Apply an approximate bilateral blur to a texture. This can be used to blur while preserving edges, or even to upscale and blur a small texture. The approximate implementation in Rendu is based on the one demonstrated in G3D (McGuire M., Mara M., Majercik Z., http://casual-effects.com/g3d, 2017), and relies on a separable Gaussian blur with adjusted weights and an extra step distance |
CBoundingBox | Represent the smallest axis-aligne box containing a given object or region of space |
CBoundingSphere | Represent the sphere of smallest radius containing a given object or region of space |
CBoxBlur | Applies a box blur of fixed radius 2. Correspond to uniformly averaging values over a 5x5 square window |
CBuffer | General purpose GPU buffer, with different use types determining its memory type, visibility and access pattern |
CBVHRenderer | Renderer coupled with a basic diffuse path tracer. The user can move the camera anywhere and trigger a path-traced rendering. Can also display the raycaster acceleration structure |
CCamera | This class represents a camera as used in real-time rendering APIs. It provides a view and projection matrices, and handles their proper update |
CCameraApp | Application with an interactive camera |
CCodable | Provides helpers for serialization/deserialization of basic types |
►CConfig | Contains configurable elements as attributes, populated from the command line, a configuration file or default values |
CControllableCamera | This camera can be controlled through the inputs received from the user |
►CController | Represents a joystick or any additional controller |
CConvolutionPyramid | Implements a multiscale scheme for approximating convolution with large filters. This is the basis of the technique described in Convolution Pyramids, Farbman et al., 2011. A set of filter parameters can be estimated through an offline optimization for each desired task: gradient field integration, seamless image cloning, background filling, or scattered data interpolation |
►CCuller | Select and sort objects based on visibility and distance criteria |
CDebugLightRenderer | Visualize lights as colored wireframe objects |
CDebugRenderer | Provide debuggging visualization for most scene elements |
►CDebugViewer | Provide helper GUI to display the content of textures and mesh infos. This can be useful to validate the content rendered to a specific texture when debugging |
CDeferredLight | Apply a light onto the lighting buffer using a geometric proxy (cone, sphere, screenquad). By processing all lights, the final lighting is accumulated in the buffer |
CDeferredProbe | Apply a probe onto the lighting buffer by rendering a box. The probe contribution weight is accumulated in the alpha channel |
CDeferredRenderer | Performs deferred rendering of a scene |
►CDescriptorAllocator | Manage descriptor set allocations by creating and reusing internal descriptor pools |
CDescriptorSet | Descriptor set allocation |
CDirectionalLight | A directional light, where all light rays have the same direction |
CEditorRenderer | Render the scene in the editor |
CEmptyShadowMap2DArray | A dummy shadow map array, can be used for directional and spot lights. The shadow map will register itself with the associated lights |
CEmptyShadowMapCubeArray | A dummy cube shadow map array, can be used for point lights. The shadow map will register itself with the associated lights |
CFilteringApp | Apply multiple image filters on an interactive rendering of a scene |
CFloodFiller | Perform an approximate flood fill on the GPU, outputing a color filled image or a distance map. Implement the method described in Jump Flooding in GPU with Applications to Voronoi Diagram and Distance Transform, Rong et al., 2006 |
►CFont | Font loading and storage: texture atlas, codepoints supported, dimensions of each glyph |
►CForwardLight | Store lights data for forward rendering in a GPU buffer |
►CForwardProbe | Store environment probes data for forward rendering in a GPU buffer |
CForwardRenderer | A renderer that shade each object as it is drawn in the scene directly |
CFrustum | Represent a 3D frustum, volume defined by the intersection of six planes |
CGame | Handles communication between the different game components (renderers, player, menus) and the player actions |
CGameConfig | Game common configuration |
CGameMenu | A game menu containing buttons, toggles and images |
CGameMenuRenderer | Renders a game menu |
CGamepadController | Represents a controller with a predefined mapping provided by GLFW/SDL |
CGameRenderer | Renders the main game scene |
CGaussianBlur | Applies an approximate gaussian blur using a dual filtering approach |
►CGPU | Provide utility functions to communicate with the driver and GPU |
CGPUBuffer | Store data in a GPU buffer |
CGPUContext | Global GPU context, storing all structures used for resource allocation and tracking, operations recording and rendering |
CGPUMarker | Inserted a marker on the current render or upload command buffer. These markers are visible in profling and debugging tools such as Renderdoc, as are object debug labels |
►CGPUMesh | Store vertices and triangles data on the GPU, linked by an array object |
CGPUQuery | Represent a GPU query, automatically buffered and retrieved |
►CGPUState | Internal GPU state ; not all API options are exposed, only these that can be toggled in Rendu |
►CGPUTexture | Store a texture data on the GPU |
CImage | Represents an image composed of pixels with values in [0,1]. Provide image loading/saving utilities, for both LDR and HDR images |
►CInput | The input manager is responsible for updating the internal input states (keyboard, mouse, window size). It can also be use to query back these states |
CIntersection | Provide helpers for basic analytic intersections |
►CIslandApp | Realistic rendering of a sandy island in the ocean |
CKeyValues | Represent a key-values tuple |
CLaplacianIntegrator | Compute the laplacian field of a RGB image before reconstructing the initial image through integration, using a filter as described in Convolution Pyramids, Farbman et al., 2011 |
CLibrary | The library provides a few commonly-used resources without having to set them up or query them from the resources manager |
CLight | A general light with adjustable color intensity, that can cast shadows |
CLightProbe | Store environment lighting for reflections |
CLightRenderer | Base structure of a per-light specialized renderer |
CLoad | Detailed operation to perform when binding a texture (starting a renderpass) |
CLog | Provides logging utilities, either to the standard/error output or to a file, with multiple criticality levels |
CMaterial | Represent a surface material, including textures describing the surface parameters |
CMaterialGGX | CPU methods for evaluating the Cook-Torrance BRDF (Lambert+GGX/Towbridge-Reitz) for a given set of parameters, and sample a ray following the distribution of normals |
CMaterialSky | CPU methods for evaluating the atmospheric scattering model used by the sky background |
CMenuButton | Represents a button in a menu |
CMenuImage | Represents a fixed image displayed in a menu |
CMenuLabel | A dynamic text label |
CMenuToggle | Represents a toggle in a menu |
►CMesh | Represents a geometric mesh composed of vertices, other attributes and triangles |
CMikktspaceWrapper | |
CObject | Represent a 3D textured object |
CObjToSceneConfig | Configuration for the OBJ to scene converter |
CPaintingTool | Utility presenting a canvas to the user, along with a brush tool to paint on it using different shapes |
CPathTracer | Unidirectional path tracer. Generates renderings of a scene by emitting rays from the user viewpoint and letting them bounce in the scene, forming paths. Lighting and materials contributions are accumulated along each path to compute the color of the associated sample |
CPathTracerApp | Viewer coupled with a basic diffuse path tracer. The user can move the camera anywhere and trigger a path-traced rendering. Can also display the raycaster acceleration structure |
CPathTracerConfig | Path tracer demo configuration. Parameters for offline rendering |
CPBRDemo | PBR rendering demonstration and interactions |
CPerlinNoise | Generate 3D perlin noise and multi-layered noise |
►CPipelineCache | Create and reuse GPU pipelines based on a given state. This supports both graphics and compute pipelines |
►CPlayer | Player state and animations |
CPointLight | An omnidirectional punctual light, where light is radiating in all directions from a single point in space. Implements distance attenuation |
CPoissonFiller | Solve a membrane interpolation ("Poisson filling") problem, using a filter as described in Convolution Pyramids, Farbman et al., 2011 |
►CPostProcessStack | Apply post process effects to a HDR rendering of a scene |
CProbe | A probe can be used to capture the appareance of a scene at a given location as a 360° cubemap |
►CProgram | Represents a group of shaders used for rendering |
CQuery | Perform CPU duration measurement between two time points |
CQueryAllocator | Manages GPU queries allocation in a set of pools. Pools need to be buffered per frame so that we can retrieve the previous frame queries while the current queries are running |
►CRandom | Generate seedable random numbers of various types and in multiple intervals. Handles per-thread random number generators |
CRawController | Represents a controller used for debug, where all raw buttons are shown |
CRay | Represent a ray, shot from a given position in a specific direction |
►CRaycaster | Allows to cast rays against a polygonal mesh, on the CPU. Relies on an internal acceleration structure to speed up intersection queries |
►CRaycasterVisualisation | Helper that can generate information on a raycaster internal data: BVH visualisation, etc |
CRenderer | Base structure of a renderer |
CRenderingConfig | Configuration containing parameters for windows and renderers |
►CResources | The Resources manager is responsible for all resources loading and setup |
CResourceToDelete | Request for the buffered deletion of a resource. Any of the handles stored below is optional, depending on the kind of resource being deleted |
CRotation | Rotate an object around an axis |
►CSamplerLibrary | Manage all samplers for GPU textures. Samplers are shared between all shader programs, and directly specified in the shaders based on use. All samplers are stored in a unique, shared descriptor set appended to all other sets (set #3) |
CScene | Represents a 3D environment composed of objects, a background and additional environment lighting informations, along with serialization support |
CSceneEditor | Scene editor interface |
CShaderCompiler | Relies on glslang to compile GLSL shaders to SPIR-V and SPIRV-Cross to generate reflection data |
►CShaderEditor | Shader editor that can be used to tweak shaders on the fly, reloading them and exposing parameters for adjustements |
CShaderEditorConfig | Shader editor configuration |
►CShadowMap | Store shadowing information as a map generated from the light viewpoint |
►CSky | Represent a background environment with atmospheric scattering. The sun direction can be animated |
CSpotLight | A spotlight, where light rays in a given cone are radiating from a single point in space. Implements distance attenuation and cone soft transition |
CSSAO | Computes screen space ambient occlusion from a depth and view-space normal buffer (brought to [0,1]) |
CStenciledApp | Application for the stencil demo |
CStenciledRenderer | Renders a scene with an alternating black and white region style, using the stencil buffer to count primitives covering each pixel |
CSwapchain | A swapchain handles the creation and presentation of the backbuffer, along with GPU work submission and synchronization |
CSystem | Performs system basic operations such as directory creation, timing, threading, file picking |
►CTerrain | Generate a terrain with Perlin noise and erosion. Represent the terrain, regrouping elevation and shadow data and the underlying GPU representation to render it |
CTexture | Represents a texture containing one or more images, stored on the CPU and/or GPU |
CTextUtilities | Provides utilities process strings |
CUniformBuffer | Represents a buffer containing uniform data, stored on the CPU and GPU. Depending on the update frequency of the CPU data, the buffer will maintain one or multiple copies of the data on the GPU |
CUniformBufferBase | Uniform buffer exposed to all shader stages, that can be updated at varying frequencies. Multiple instances of the GPU data will be maintained internally |
CVarianceShadowMap2DArray | A 2D variance shadow map array, can be used for directional and spot lights. The shadow map will register itself with the associated lights. Implement variance shadow mapping to filter the shadows and get correct smoother edges |
CVarianceShadowMapCubeArray | A cube variance shadow map array, can be used for point lights. Each face of the map is updated sequentially. The shadow map will register itself with the associated lights. Implement variance shadow mapping to filter the shadows and get correct smoother edges |
CWindow | Represent an OS window and its associated rendering context |