Painting PBR Textures in the Browser
Learn how to import a mesh, set up PBR channels, paint directly on a 3D model, and export game-ready textures for Unity, Unreal, Godot, and Roblox — all without leaving your browser.
Create a Texture Document
Every texture project starts with a document. This sets the resolution and ties your layers and channels to a specific mesh later.
- Open Trumble and click Start Texturing, or navigate directly to the Texture tool from the toolbar.
- Go to File → New or press in the Properties panel. A dialog will appear.
- Enter a document name and choose a texture size.
- Click Create.
Import Your Mesh
The Texture tool paints directly on 3D geometry. You need a mesh with proper UVs to get started. Trumble accepts .obj and .glb files.
- In the new document panel, locate the Model section and click Choose file.
- Select your
.fbx.objor.glbmesh. The model will load into the 3D viewport. - Below model if you have a high poly mesh, select high poly mesh in the bake selection to bake.
- Use middle mouse Click to orbit, shift + middle mouse click to pan, and scroll wheel to zoom.
- If your mesh looks black or flat, confirm it has baked UV maps. Meshes without UVs cannot be painted.
Understanding PBR Channels
Trumble uses a physically-based rendering (PBR) workflow. Each channel controls a different property of your material's surface. You paint into individual channels, and the engine combines them at runtime.
Base albedo — the raw surface color with no lighting information.
Black = non-metal. White = fully metallic. Most surfaces are 0 or 1.
Black = mirror-smooth. White = fully diffuse / matte surface.
RGB-encoded surface details that fake geometry at no poly cost.
Ambient occlusion — white = lit, black = shadowed crevices.
Areas that glow. Colour multiplied by emission strength in-engine.
In the right-hand panel, each channel has its own slot. You can paint directly or drag in an image from the Assets Library to use it as a texture fill.
Painting on Your 3D Mesh
Select a brush from the left panel and start painting directly on the mesh in the 3D viewport. Strokes are projected onto the UV map automatically.
- Select the Brush tool from the left toolbar. Adjust Size, Hardness, Opacity, and Flow in the panel below it.
- Pick a color using the color picker at the bottom of the left panel.
- In the Channels section, choose which channel to paint into — Color is selected by default.
- Click and drag on the mesh to paint. The stroke wraps around the UV islands seamlessly.
- Switch channels at any time — for example, paint metallic stripes on armor, then switch to Roughness to add worn edges.
Working with Layers & Masks
The Layers panel (bottom-right) works like a 2D editor. Each layer stores independent paint strokes, and you can combine them non-destructively using blend modes and masks.
- Click + New Layer at the top of the Layers panel to add a layer above the current one.
- Set the layer's blend mode from the dropdown (Normal, Multiply, Overlay, etc.) to control how it composites with layers below.
- Right-click a layer and choose Create black mask or Create white mask to add a non-destructive mask. Paint white to reveal, black to hide.
- Use the 3D Gradient, Ambient Occlusion, or Curvature modifiers to automatically generate masks based on mesh geometry — great for adding wear and grime in crevices.
Export Textures
When you're happy with your textures, export them in one click. Trumble bundles your channels into the correct format for your target engine.
- Go to File → Export Textures.
- Set the output texture size (you can downscale here independently of your working resolution).
- Pick your target engine preset. The correct channel packing is applied automatically.
- Choose which maps to include (Color, Metallic, Roughness, Normal, Emission, Opacity).
- Click Export. Files download as a zip to your browser's default folder.
| Engine Preset | Packed Format | Notes |
|---|---|---|
| Unity | Albedo MetalSmooth (RGBA) Normal | Metallic in R, Smoothness (inverted roughness) in A |
| Unreal | BaseColor OcclusionRoughnessMetallic Normal | ORM packing: AO→R, Roughness→G, Metallic→B |
| Godot | Albedo ORM Normal | Same ORM packing as Unreal; compatible with Godot 4 ORM material |
| Roblox | ColorMap NormalMap RoughnessMap MetalnessMap | Individual files; drag into Roblox surface appearance |