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

Project Activity

See All Activity >

License

MIT License

Follow Unrimp

Unrimp Web Site

You Might Also Like
Get Advanced Threat Protection for Your Azure Workloads Icon
Get Advanced Threat Protection for Your Azure Workloads

FortiGate NGFW on Azure Enables You to Protect Your Workloads Beyond Basic Azure Security Services

FortiGate NGFW identifies and stops advanced threats with powerful application control, malware protection, web filtering, antivirus, and IPS technology. As the attack surface expands, FortiGate provides integrated and automated protection against emerging and sophisticated threats while securing hybrid or multi-cloud environments. Deploy today in Azure Marketplace.
Rate This Project
Login To Rate This Project

User Reviews

Be the first to post a review of Unrimp!

Additional Project Details

Operating Systems

Windows

Intended Audience

Developers

Programming Language

C++

Registered

2013-01-03