Modules Matali Render
Overview of Matali Render module
Matali Render is an advanced, modern, multi-platform, high-performance graphics engine. Matali Render is a part of Matali Physics environment.
Advanced Rendering
Graphics APIs SupportDirectX 12 Vulkan Metal • Unified renderer for mobile devices, desktops, TV platforms and game consoles using next-generation low-level graphics APIs and introducing one easy-to-use high-level API built on top of them • Physically-based rendering (PBR) • Advanced management of multiple textures, buffers and render states • Procedural sky with atmospheric scattering and smooth day/night transition, or skybox • Underwater rendering with water surface split • Fluid volume rendering • Two-sided transparent surfaces • Transparency and textures with alpha channel • Billboarding (2D objects in a 3D environment) • Advanced billboarding • Instancing (triangle meshes and shadows) • Support for physics-based GUI controls • Object contouring/outlining • Animating UV coordinates • Gamma correction
Lights, Shadows And Fog
• Unified, dynamic lighting, shading and fogging system • Screen space ambient occlusion (SSAO) • Unlimited number of directional light sources • Unlimited number of point light sources • Unlimited number of spot light sources • Unlimited number of spot and rectangular projectors • The ability to merge multiple projectors in a separate, breakable entities • The ability to limit the influence of light sources to selected objects • Lights with variable intensity • Soft-edged shadows • Shadows from directional light sources • Shadows from point light sources • Shadows from spot light sources • Shadows from spot and rectangular projectors • Shadows for textures with alpha channel • Precise calculation of shadows (shadows do not require the time-consuming matching bias) • Smooth transitions between shadow cascades • Adjustable number of shadow cascades • Long range shadows • Fog (linear, exponential, planar with bounds, point volume, spot volume) • Variants for planar fog • Fog (point volume, spot volume) with volumetric shadows • Unlimited number of fog sources • Controlled interaction of light and fog with transparent surfaces
Fonts And Text
• Scaled bitmap fonts • Adjustable kerning • Smoothing • Font kits
Maps And Mapping Techniques
• Cubemaps and cube mapping • Normal maps and normal mapping in the tangent space • Height maps and height mapping (parallax mapping) • Normal mapping and parallax mapping based on the distance from the observer
Multi-Platform
Supported platforms Android 10 (API level 29) and higher Android TV 10 (API level 29) and higher *BSD (mainly FreeBSD 12.2 and higher) iOS 15 and higher iPadOS 15 and higher Linux (distributions) macOS 12 Monterey and higher Steam Deck tvOS 15 and higher UWP Desktop UWP Xbox Series X/S Windows 11 Windows 10 Platforms Available as Steam Deck, UWP, Windows Compiled static library (.lib) Android, Android TV, *BSD, iOS, iPadOS, Linux, macOS, Steam Deck, tvOS Compiled static library (.a) Supported types of activity Android Native Activity
Frequently asked questions
- I know that you mainly use the low-level graphics APIs. How is Matali Render engine used in practice? Do I have to write thousands of code lines to display a single texture, for example?
- Matali Render engine offers an advanced and unified code infrastructure for all supported low-level graphics APIs: DirectX 12, Vulkan, Metal, etc. In most of the cases, it doesn't matter which API you use. All the required operations are performed similarly to the high-level graphics API in a small number of code lines, while maintaining the flexibility and performance of the low-level graphics APIs.
- What do you mean by the statement "Unlimited number of ..."?
- The statement means that the number of objects of a specific type is not limited by the engine, but is regulated by the programmer and depends on the size of available resources, the performance of the target platform, etc.
- Do you use wrappers or emulators when using Metal API?
- No. Metal API is called directly.
- Do you use external solutions or other external libraries or source codes that simplify the use of low-level graphics APIs? If so, what is the license for these solutions/libs/codes?
- No, we don't use. We rely entirely on own solutions.