Projects & meshes
Everything about starting a project, getting your model in, and how CGpainter organises your work into texture sets and channels.
New project & importing a mesh
How to start a project and bring your model in.
The New Project dialog
Open with File › New Project…. Pick your mesh, a template, and a resolution; CGpainter loads and validates the mesh before the project is created. The resolution you choose here is the project's working resolution and is fixed for the project — set it to suit your target. (The size baked mesh maps are generated at is a separate bake resolution, covered in Baking.)
Templates
A project template decides which channels every texture set starts with. It is just a named, ordered list of channel kinds — picking one here gives each material's texture set exactly those channels. It is not an export setting, and it isn't permanent: you can add or remove channels at any time afterward in the Texture Set Settings panel.
CGpainter ships these built-in templates:
| Template | Channels it creates |
|---|---|
| PBR Metallic Roughness | Base Color, Roughness, Metallic, Normal, Height |
| PBR + AO | Base Color, Roughness, Metallic, Normal, Height, Ambient Occlusion |
| PBR + Emissive + AO | Base Color, Roughness, Metallic, Normal, Height, Emissive, Ambient Occlusion |
| Base Color only | Base Color |
You can also save your own templates: click Manage… next to the template picker to create, edit, or delete custom channel sets, which then appear in the list alongside the built-ins.
Supported mesh formats
CGpainter imports these mesh formats:
.fbx.obj.gltf/.glb.dae(COLLADA)
UVs & materials
Two things on your mesh drive how CGpainter sets up the project:
- UVs. Painting and mesh-map baking both write into the UV layout, so the mesh needs a usable UV map. If you import a mesh without UVs, CGpainter still loads it so you can view it, but warns you — painting and baking produce empty results until you unwrap and re-import.
- Materials. CGpainter creates one texture set per material slot on
the mesh, named after that material. A mesh with no materials gets a single
DefaultMaterialset instead.
Before importing, run through this quick checklist in your modelling app:
- UVs unwrapped — every part that will be painted has a UV map with no (or deliberate) overlaps.
- Materials assigned — split the mesh into material slots wherever you want separate texture sets; merge them where you want one.
- Sane scale & orientation — model facing the expected way and at a reasonable real-world scale, so the camera, lighting, and brush sizes feel right.
High-poly (for baking)
To bake fine detail (such as Normal or Ambient Occlusion) onto your low-poly model, you assign a separate high-poly mesh. During the bake, CGpainter casts rays from the low-poly surface and projects the high-poly's detail onto the low-poly UVs. The high-poly is project-wide (one per project) and you don't paint on it — it only feeds baking.
You assign it in the Bake dialog, using the High-poly mesh › Browse picker. Assigning is instant: CGpainter stores the file path and only loads the mesh when it's actually needed (when you bake, or turn on the high-poly preview), so even a multi-million-triangle sculpt won't freeze the app. With no high-poly assigned, bakes fall back to a plain self-bake of the low-poly.
See Baking for the bake settings, name-matching, and which maps use the high-poly.
Texture set and texture set settings
What is a texture set?
CGpainter creates one texture set per material slot on your mesh. Each set has its own layers, UV data, channels, and baked maps. You switch between sets in the Texture Sets panel, and add new channels in the Texture Set Settings panel — where you can also bake mesh maps for the set (see Baking).
PBR channels
A texture set outputs one image per channel. The common channels:
| Channel | What it controls |
|---|---|
| Base Color | The surface's albedo / diffuse colour, with no lighting or shadow baked in. |
| Roughness | How rough vs. glossy the surface is (0 = mirror, 1 = matte). |
| Metallic | Whether the surface reads as metal (0 = dielectric, 1 = metal). |
| Normal | Tangent-space surface detail (bumps without geometry). |
| Height | Surface elevation — used for displacement / parallax detail. |
| Ambient Occlusion | Baked-in soft contact shadowing. |
| Emissive | Self-illumination colour. |
| Opacity | Transparency / cutout (alpha). |
Which of these a new set starts with is decided by the project template you picked when creating it.
The Texture Set Settings panel
This panel is where you manage the channels of the active texture set, and bake its mesh maps. You also bake the set's mesh maps from here — see Baking for bake settings and bake resolution.
Adding, removing & reordering channels. Click the + (Add channel) button to add one of the supported channels — Base Color, Roughness, Metallic, Normal, Height, Emissive, Opacity, or Ambient Occlusion. A set holds at most one of each, so kinds already present are greyed out. Each channel row has a remove button, and (when the set has more than one channel) a drag handle for reordering. All of these are undoable.
Channel format. Every channel has a storage format (bit depth and component count) you can change from a dropdown on its row. Higher-precision formats avoid banding on smooth gradients but use more memory.
| Format | Bytes / texel | Notes |
|---|---|---|
| L8 | 1 | 8-bit single channel (grayscale). |
| L16 | 2 | 16-bit single channel, integer. |
| L16F | 2 | 16-bit single channel, float (allows HDR / negative). |
| L32F | 4 | 32-bit single channel, float. |
| RGB8 | 3 | 8-bit colour, linear. |
| RGB16 | 6 | 16-bit colour, integer. |
| RGB16F | 6 | 16-bit colour, float. |
| RGB32F | 12 | 32-bit colour, float. |
| sRGB8 | 3 | 8-bit colour, gamma-encoded; decoded to linear automatically when sampled. |
New channels start at a sensible default for their kind — Base Color and Emissive at
sRGB8, Normal at RGB8, Height at L16F, and the
grayscale channels (Roughness, Metallic, Opacity, AO) at L8. Changing a
channel's format is undoable.
Saving & loading
Saving a project
File › Save (or Save As…) writes a single
.cgp project file containing your layers, masks, painted
pixels, baked maps, and settings.
Opening a project
File › Open…, or pick from File › Recent Files.
What's stored in a .cgp
A .cgp holds your whole project in one file — copy or back up
that single file and you have everything:
- Every texture set: its channels, resolution, and full layer / mask / effect stack with blend modes.
- Your painted pixels and masks, plus any baked mesh maps.
- Imported images that your layers or masks use (embedded into the file).
- Brush settings, symmetry, and the lighting / display setup.
.cgp stores
a reference to your mesh file — its path, not the geometry itself (the
same goes for a high-poly). CGpainter reloads the mesh from that path when you
open the project, so keep the source file where it is. If it has been moved,
renamed, or deleted, CGpainter tells you the mesh is missing and asks you to
re-import it.Auto-save & unsaved changes
There is no auto-save — save your work yourself with
File › Save (Ctrl+S), and do it often. A
* before the file name in the title bar means you have unsaved
changes.
If you start a new project, open another, or close the app while changes are unsaved, CGpainter asks first: Save, Discard (lose them), or Cancel (stay put).