Unified renderer implementation ("Un r imp"). Extensive examples from basic to advanced are provided as well.
Features
- Compact user-header for the renderer API: A single all in one header for ease-of-use and best possible compile times
- Renderer implementations try to stick as best as possible close-to-the-metal and as a result are just a few KiB instead of MiB in memory size
- Renderer implementations load the entry points of Direct3D, OpenGL and so on during runtime, meaning it's possible to react on system failures by e.g. dynamically switching to another renderer implementation
- Support for static and dynamic build
- Renderer implementations for Direct3D 9 with support for HLSL and Cg shaders
- Renderer implementations for Direct3D 10 with support for HLSL and Cg shaders
- Renderer implementations for Direct3D 11 with support for HLSL and Cg shaders
- Renderer implementations for OpenGL with support for GLSL and Cg shaders
- Renderer implementations for OpenGL ES 2 with support for GLSL and Cg shaders
- Cross-platform: Windows, Linux
- Vertex shader (VS)
- Tessellation control shader (TCS, "hull shader" in Direct3D terminology)
- Tessellation evaluation shader (TES, "domain shader" in Direct3D terminology)
- Geometry shader (GS)
- Fragment shader (FS, "pixel shader" in Direct3D terminology)
- Vertex array object (VAO, input-assembler (IA) stage) with support for multiple vertex streams
- Vertex buffer object (VBO, input-assembler (IA) stage)
- Index buffer object (IBO, input-assembler (IA) stage)
- Swap chains, render into one or multiple operation system windows
- Framebuffer object (FBO) used for render to texture, support for multiple render targets (MRT)
- Uniform buffer object (UBO, "constant buffer" in Direct3D terminology)
- Texture buffer object (TBO)
- Textures: 2D texture and 2D texture array (more will follow later on)
- State objects with mapping to API specific settings during creation, not runtime
- Rasterizer state object (rasterizer stage (RS))
- Depth stencil state object (output-merger (OM) stage)
- Blend state object (output-merger (OM) stage)
- Sampler state object (SO)
- Collections to potentially reduce the number of state changes: Texture and sampler collection
- Instanced arrays (shader model 3 feature, vertex array element advancing per-instance instead of per-vertex)
- Draw instanced (shader model 4 feature, build in shader variable holding the current instance ID)
- Debug methods: When using Direct3D <11.1, those methods map to the Direct3D 9 PIX functions (D3DPERF_* functions, also works directly within VisualStudio 2012 out-of-the-box)
- Debug methods: Used inside the renderer implementations for better renderer debugging
- Renderer implementation specific optimizations: OpenGL: Usage of direct state access (DSA), if available
License
MIT LicenseFollow Unrimp
Other Useful Business Software
Gen AI apps are built with MongoDB Atlas
MongoDB Atlas is the developer-friendly database used to build, scale, and run gen AI and LLM-powered apps—without needing a separate vector database. Atlas offers built-in vector search, global availability across 115+ regions, and flexible document modeling. Start building AI apps faster, all in one place.
Rate This Project
Login To Rate This Project
User Reviews
Be the first to post a review of Unrimp!