ArmorPaint includes the Brute Pathtracer, a custom-built path-tracing engine that trades strict physical correctness for real-time interactivity. Rather than converging to a ground-truth solution over thousands of samples, it runs on hardware-accelerated ray tracing and is designed to give you a high-quality, near-photorealistic viewport preview that updates as you paint. The Brute Pathtracer runs on Direct3D 12 (via DXR), Vulkan (via Vulkan RT), and Metal (via Metal RT), and is used both for the live path-traced viewport mode and for ray-traced texture baking features such as ambient occlusion, lightmaps, bent normals, and thickness.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/armory3d/armorpaint/llms.txt
Use this file to discover all available pages before exploring further.
Hardware Requirements
Path Trace Modes
The Brute Pathtracer operates in one of two modes, controlled by thepathtrace_mode_t enum and stored in the pathtrace_mode config field:
- Fast (0)
- Quality (1)
PATHTRACE_MODE_FAST — Optimised for real-time interactivity. Most advanced shading features are disabled to maximise frame rate, delivering rapid viewport feedback while you paint. The engine loads the raytrace_brute_core shader variant in this mode.Enabling Path Tracing
There are two ways to activate path-traced rendering in ArmorPaint:Switch the viewport display mode
Press Ctrl+M to cycle through viewport modes until
VIEWPORT_MODE_PATH_TRACE (mode 15) is selected. This activates the Brute Pathtracer for the current viewport without changing the base render pipeline.VIEWPORT_MODE_PATH_TRACE and RENDER_MODE_PATH_TRACE are complementary settings. The viewport mode flag controls what the compositor displays; the render mode flag controls which pipeline is used to generate each frame.Scene Limits
The Brute Pathtracer imposes the following hard limits per scene:| Limit | Value |
|---|---|
| Unique objects | 64 |
| Instances (total) | 1,024 |
Features by Mode
| Feature | Fast Mode | Quality Mode |
|---|---|---|
| Diffuse GI / reflections | ✅ | ✅ |
| Environment lighting | ✅ | ✅ |
| Translucency | ❌ | ✅ |
| Emission | ❌ | ✅ |
| Sample accumulation (progressive refinement) | ✅ | ✅ |
Integration with Baking
The same Brute Pathtracer backend powers the ray-traced baking system. When you trigger an AO, Lightmap, Bent Normal, or Thickness bake, the renderer switches into bake mode (render_path_raytrace_is_bake = true), selects the appropriate bake shader, and accumulates ray samples into a set of RGBA64 bake targets:
RGBA64 format). Pixels with an alpha value of 0.0 in the position/normal pre-pass are skipped during ray dispatch, limiting ray budget to visible surface area only.
See the Baking page for a full walkthrough of ray-traced bake types and workflow.
Environment Map Settings
The path-traced scene uses ArmorPaint’s environment map as the primary light source. Two angular offset parameters let you rotate the lighting without modifying the environment asset itself:| Field | Type | Description |
|---|---|---|
envmap_angle | f32 | Rotates the environment map around the vertical axis, changing the apparent direction of key lighting in the scene. Default: 0.0. |
light_angle | f32 | Independently rotates the dominant light direction within the path-traced scene. Default: 0.0. |
show_envmap_blur is enabled, the blurred radiance mip chain is used instead of the sharp environment texture, softening reflections and IBL contributions.
Environment Sphere Visualization
Three boolean flags on the context control how the environment is displayed in the path-traced and lit viewports:show_envmap
When
true, the environment map is visible as a background sphere in the viewport. When false, the environment still contributes lighting but is hidden from view. The path-traced renderer negates the scene_world->strength value when show_envmap is false to suppress the background.show_envmap_blur
When
true, the blurred (pre-filtered) radiance mip level [0] is used instead of the full-resolution environment texture. This softens the visible background and the reflected environment in shiny surfaces.show_envmap_spheres
Displays a set of PBR preview spheres in the viewport, each rendered with a different roughness and metallic combination under the current environment lighting. Useful for quickly assessing the full range of PBR response.
Performance Recommendations
For developers interested in the Brute Pathtracer internals, the shader source lives in the
base/shaders/raytrace/src/ directory of the ArmorPaint repository. The C-side path-tracing runtime is implemented in:base/sources/render_path_raytrace.c— viewport path-tracing commands and frame accumulationbase/sources/render_path_raytrace_bake.c— ray-traced baking dispatch and target managementbase/sources/iron_gpu.h— GPU abstraction layer for DXR / Vulkan RT / Metal RT