mirror of
https://github.com/storytold/texturecraft.git
synced 2026-11-06 18:42:19 +00:00
ec30388787
Autosaves, smart materials, brush and export presets, project templates and UI layouts always went to Documents/TextureCraft, which fills the system drive. Settings > Folders > Data folder points them anywhere; the choice applies on restart, and an export folder still at its default follows it. Refs #105.
149 lines
10 KiB
Markdown
149 lines
10 KiB
Markdown
# TextureCraft features
|
||
|
||
Everything TextureCraft does today, by area. What's still missing is in [`ROADMAP.md`](../ROADMAP.md).
|
||
|
||
## Paint in 3D
|
||
|
||
- **Brushes** with size, flow, stroke opacity, spacing, hardness, angle and follow path; size,
|
||
angle, flow and position jitter; tangent or camera alignment, angle fade, backface culling, lazy
|
||
mouse, X/Y/Z mirror and radial symmetry (copies paint the far side too) and pen pressure.
|
||
Ctrl+drag in a view sets them on the fly: right-drag the size and hardness, left-drag the flow
|
||
and angle.
|
||
**67 procedural brush alphas** in their own shelf tab, or any imported image as the alpha.
|
||
**18 brush presets** (basic, wear and grunge, details) in the shelf's Brushes tab set the
|
||
stroke and keep the size; save your own brushes there too.
|
||
- **Tools:** paint, eraser, **projection** with image stencils (hold S to move, turn and scale the
|
||
stencil), polygon fill (triangle, UV island or the whole mesh), **path** and **lasso fill**, a
|
||
**particle brush**, **smudge**, **clone** (V + click sets the source), color picker, Shift+click
|
||
straight lines, and painting directly in the **2D UV view**.
|
||
- **Geometry decals:** drop an image on the surface, then move, scale and turn its frame; it stays
|
||
an editable fill layer.
|
||
- **Text** in any installed font (or the built-in ones), shaped for every script with kerning and
|
||
ligatures, one or more lines: stamp it with the brush as its alpha, or place it as a decal in the
|
||
tool's base color (Properties › Alpha › Text).
|
||
- **Quick mask** (Y): paint a temporary mask (U to edit, Ctrl+Shift+I to invert) that protects
|
||
everything outside it while you paint.
|
||
- **Every channel at once:** base color, metallic, roughness, height, normal, emissive, opacity,
|
||
ambient occlusion and specular level, plus clear coat, sheen, anisotropy, subsurface scattering
|
||
and transmission, each toggled per stroke in the brush's material properties.
|
||
|
||
## Layers, masks and smart materials
|
||
|
||
- **Paint, fill, folder and instance layers** with **32 blend modes per channel** (Normal through
|
||
Normal map detail), per-channel opacity, visibility, color tags, drag-and-drop reordering,
|
||
duplicate, group, flatten, cut, copy and paste across texture sets, and **geometry masks** that
|
||
show a layer only on the mesh parts you pick (right-click a layer, or click parts with the
|
||
**Geometry mask** tool, 8).
|
||
- **Filters and content effects** on any layer or mask: **31 filters** (HSL, levels,
|
||
contrast/luminosity, color balance, gradient map, posterize, clamp, histogram scan, range and
|
||
shift, invert, threshold, grayscale, replace color, edge detect, normal invert, baked lighting,
|
||
blur, directional and slope blur, sharpen, high pass, bevel, glow, warp, directional warp,
|
||
mosaic and four material finishes), fills and paint. **Levels** shows a histogram of what it
|
||
reads (the mask below it, or a content channel you pick) with its input range marked.
|
||
**Anchor points** record the stack at a layer so masks and fills higher up can react to it.
|
||
- **Masks** with a white or black background and a stack of effects: painted strokes, fills,
|
||
**mesh-map generators** (edge wear, dirt, thin areas, curvature, AO, position and direction
|
||
gradients, all with world-space noise), filters, ID color selection and compare. Alt+click a
|
||
mask to view it alone. Drag an effect to reorder its stack, or right-click it to duplicate it
|
||
(painted strokes included) or copy it onto another layer or mask (Ctrl+C, Ctrl+V); with an
|
||
effect selected, Ctrl+D and Delete duplicate or remove it.
|
||
- **Fill layers** take uniform values, **23 procedurals** (clouds, cells, grunge, scratches, wood
|
||
grain, bricks, fabric weave, twill, leather grain, marble veins, Voronoi, paint chips…) or your own
|
||
**images**, through UV, tri-planar, planar, spherical, cylindrical or decal projection.
|
||
Alt+click a material channel (of a fill or the brush) to keep that channel alone.
|
||
- **63 materials** (metals from measured reflectance, car paint, brushed anisotropic steel,
|
||
velvet, skin, wax, glass, ice, woods, bark, stone, sand, mud, snow, bone, plastics, fabric,
|
||
leather, ceramic, rust, cork, paper), **21 smart
|
||
materials** (rusted iron, worn paint, oxidized copper, bronze statue, weathered wood, mossy
|
||
brick and stone, sun-faded paint…) and **18 smart masks**, all procedural, so they work at any
|
||
resolution. Drag them from the tabbed, searchable shelf onto the layer stack or straight onto
|
||
the model.
|
||
- **Your own library:** right-click a layer or folder, choose *Create smart material*, and it
|
||
appears under *My smart materials*, pixels and images included.
|
||
|
||
## Files and texture sets
|
||
|
||
- **Open** glTF/GLB, FBX (binary and ASCII), COLLADA, **USD** (usda, usdc, usdz), **Alembic**,
|
||
OBJ, PLY and STL, or a built-in mesh; UVs are generated when a mesh has none. A `.gltf`'s buffers
|
||
and images and a loose USD layer's textures are read from its folder and kept in the project.
|
||
Reimport a changed mesh and your painted strokes stay on the surface.
|
||
- **UDIM / UV tiles:** detected on import or switched on later, with a resolution per tile and one
|
||
texture per tile on export (`$udim`).
|
||
- **Texture sets** from 128 to 8192 px per material, resampled when you change them, with 21
|
||
channel types to add or remove. Show, hide or invert them all at once, or **focus** on the
|
||
active one.
|
||
- **Projects** are a single `.tcraft` file: the mesh, every layer (sparse and lossless), baked maps
|
||
and imported images. **Project templates** start new work from a saved setup. Closing the app,
|
||
or opening, starting or closing another project, with unsaved changes asks whether to save them
|
||
first (in the browser too, where Save downloads the project and closing or reloading the tab
|
||
asks before the changes are lost).
|
||
|
||
## Bake and export
|
||
|
||
- **Bake mesh maps** on the GPU (ray traced, about 12× the CPU path) or on every CPU core: ambient
|
||
occlusion, curvature, thickness, world-space normal, position, ID, bent normals, opacity, color
|
||
and direction maps, and normal and height maps from high-poly meshes, with a cage, ray distances
|
||
and matching by mesh name. Or **use your own images** as mesh maps (baked in another app, or
|
||
edited): drop one from the Assets panel on a slot of the Texture Set Settings, or pick it from
|
||
the slot's menu.
|
||
- **Export presets** for glTF PBR Metal Roughness, Unreal Engine (packed), Unity HDRP (mask map),
|
||
Unity Standard, Blender (Principled BSDF), Godot 4 (ORM), OpenPBR (with the coat, fuzz,
|
||
anisotropy, transmission and subsurface maps), separate maps, mesh maps and document channels, in
|
||
PNG, JPEG, TGA, TIFF, BMP, WEBP, EXR or HDR at 8, 16 or 32 bits, with UV padding, size
|
||
override and OpenGL or DirectX normals.
|
||
- **Output template editor:** build your own presets with per-channel packing and converted maps,
|
||
and share them as JSON.
|
||
- **Mesh export** to OBJ, textured GLB (with clear coat and sheen) and USD (with clear coat).
|
||
|
||
## The viewport
|
||
|
||
- Physically based shading (metallic/roughness or specular/glossiness) with clear coat, sheen,
|
||
anisotropy, subsurface scattering, transmission, parallax occlusion and **displacement** (with
|
||
its own shadows) from the height channel; image-based lighting from six procedural studio and
|
||
outdoor environments or **your own HDR/EXR panoramas**; ACES or linear tone mapping, key-light
|
||
shadows, bloom, vignette, sharpen, grain, **depth of field** and **saved cameras** (also imported
|
||
from glTF, FBX, COLLADA and USD files).
|
||
- **Rendering mode** (F10): a progressive, **path-traced** view of your textures with multi-bounce
|
||
light, environment importance sampling, displaced geometry, a denoiser and one-click PNG save,
|
||
traced on the GPU
|
||
(compute shaders, about 25× the CPU tracer, desktop and WebGPU) or on the CPU.
|
||
- View any channel, any baked mesh map, or a UV checker; Alt+drag to orbit, middle-drag to pan,
|
||
wheel to zoom, F to frame, M / C / B to cycle views.
|
||
- **3D and UV wireframes** that show the mesh's own polygons: quads and n-gons from OBJ, FBX,
|
||
COLLADA, USD, Alembic and PLY files keep their edges, without the triangulation's diagonals.
|
||
|
||
## Interface
|
||
|
||
- A modern look in **four brightness levels** (dark, medium dark, medium light and light) with
|
||
**seven accent colors**, set in Settings › Interface.
|
||
- **Its own title bar** with the app icon, menus and window buttons on Windows (and on Linux
|
||
desktops that leave the frame to the app, such as GNOME), the macOS traffic lights over the same
|
||
strip, and Settings › Interface › System title bar for the system's frame instead.
|
||
- **Dockable, tabbed and floating panels**, saved layouts, and panels that reopen where you closed
|
||
them.
|
||
- A **start window** at launch: a new project, a project file, a recent project or the sample
|
||
(Settings › Interface › Start window).
|
||
- A **data folder** of your choice for autosaves, smart materials, presets, templates and UI
|
||
layouts, on any drive (Settings › Folders; `Documents/TextureCraft` by default).
|
||
- A **shortcut editor** with conflict detection, and every shortcut shown in its tooltip.
|
||
- A **History** panel: click any step to go back to it, or forward again to an undone one.
|
||
- **10 languages:** English, French, German, Spanish, Portuguese, Italian, Japanese, Chinese,
|
||
Korean and Arabic, switchable live.
|
||
- **In the browser:** the same app compiled to WebAssembly, on WebGPU or WebGL2, with touch
|
||
navigation and project open, save and download.
|
||
|
||
## Built for agents
|
||
|
||
Everything you can do in the window, an agent can do too:
|
||
|
||
- **CLI:** `texturecraft-cli new builtin:material_ball out.tcraft`, `bake`, `export`, `render`,
|
||
`run <command> <params>`, `batch`, `commands`, `info`.
|
||
- **MCP server:** `texturecraft-cli mcp` gives Claude and other agents tools to create projects,
|
||
add layers and masks, paint strokes, add high polys and a cage, bake, export textures and the
|
||
mesh, reimport a changed mesh, render previews and inspect everything they changed, with file
|
||
access limited to the folders you give it.
|
||
- **Control channel:** launch the app with `--control <port>` to drive the running UI: run any
|
||
command, invoke menu items, paint, and take screenshots.
|
||
|
||
See [`control-protocol.md`](control-protocol.md) for the full protocol and examples.
|