Skip to content
This repository has been archived by the owner on Jul 27, 2023. It is now read-only.

Commit

Permalink
0.6 update
Browse files Browse the repository at this point in the history
  • Loading branch information
luboslenco committed Jul 4, 2019
1 parent a888c04 commit 43529b3
Showing 1 changed file with 66 additions and 55 deletions.
121 changes: 66 additions & 55 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,21 +4,21 @@

ArmorPaint is a stand-alone software designed for physically-based texture painting. Drag & drop your 3D models and start painting. Receive instant visual feedback in the viewport as you paint.

*The preview version has many rough edges and the experience may be frustrating.*
>The preview version has many rough edges and the experience may be frustrating.
---

# Download

**Windows** and **Linux** is recommended. An unsigned **macOS** build is also provided. ArmorPaint is a portable application with no installation, just unpack and run.

[Get ArmorPaint](http://armorpaint.org/download.html)
>[Get ArmorPaint](http://armorpaint.org/download.html)
#### Requirements

Painting process in ArmorPaint runs on the GPU and the performance mainly depends on a graphics card. Minimum for 4K painting is an Intel HD4000 graphics card. For 16K painting, GTX 1060/6GB or better is recommended.

*See [Preferences](http://armorpaint.org/manual/#/?id=preferences) to tune performance*
>See [Preferences](http://armorpaint.org/manual/#/?id=preferences) to tune performance
<br/><br/><br/><br/><br/>

Expand All @@ -45,10 +45,11 @@ Unpack downloaded archive and run `ArmorPaint`. In some cases, you may need to o
#### Controls

- `Left mouse button / Pen` to paint.
- `Right mouse button` to rotate the camera.
- `Middle mouse button` to pan the camera.
- `Mouse wheel` to zoom in and out.
- See button tooltips and `Preferences tab - Controls` for keyboard shortcuts.
- `Alt` + `left mouse button` to rotate the camera.
- `Alt` + `middle mouse button` to pan the camera.
- `Alt` + `right mouse button` / `mouse wheel` to zoom in and out.
- Controls can be customized in `Preferences tab - Keymap`.
- Standard or Blender keymap preset can be selected.

<br/><br/><br/><br/><br/>

Expand All @@ -60,21 +61,25 @@ Unpack downloaded archive and run `ArmorPaint`. In some cases, you may need to o

![](img/d.jpg)

You can download sample assets for testing [here](https://github.com/armory3d/armorpaint_samples/releases).

#### Import Meshes

Drag and drop unwrapped `.obj` file into the viewport. This will replace the currently painted mesh. `.fbx`, `.blend` and `.gltf` files are supported, but the importer is not 100% reliable yet.
Drag and drop unwrapped `.obj` file into the viewport. This will replace the currently painted mesh. `.fbx` and `.blend` files are supported, but the importer is not 100% reliable yet.

- Enable `Meshes tab - UDIM Import` to split imported mesh per UDIM tile.
- Enable `Meshes tab - Parse Transforms` to load per-object transforms from `.fbx` file.
- Normals can be re-calculated with `Meshes tab - Geometry - Calculate Normals`.
- Up axis can be set with `Meshes tab - Geometry - Rotate X / Rotate Y / Rotate Z`.
<!-- - `.arm` exporter for Blender can be found [here](https://github.com/armory3d/iron/tree/master/tools). -->

- Enable `Meshes tab - UDIM Import` if you wish to split imported mesh per UDIM tile.
- Normals can be re-calculated with `Meshes tab - Calculate Normals`.
- Up axis can be set with `Meshes tab - Up Axis`.
>You can download sample assets for testing [here](https://github.com/armory3d/armorpaint_samples/releases).
#### Import Materials

Drag and drop a folder with PBR texture set onto the viewport. ArmorPaint will recognize the file extensions and create a new material from imported textures.

Click on the `Materials tab - Import` button to import materials from other ArmorPaint (`.arm`) projects or `.blend` files (experimental).
Click on the `Materials tab - Import` button to import materials from ArmorPaint `.arm` files or Blender `.blend` files. *wip*

>You can download starter content [here](https://github.com/armory3d/armorpaint_lib/releases). *wip*
#### Import Textures

Expand All @@ -85,10 +90,15 @@ Drag and drop `.jpg`, `.png`, `.tga` or `.hdr` images into the node editor. This
Click on the `Export tab - Export Textures - Export` button.

- `Layers`: Export all visible layers or selected layers only into textures.
- `Format`: `.jpg` or `.png`.
- `Channels`: Specify maps to export into textures.
- `Output`: Generic PBR maps or packed ORM format for UE4.
- `Project quality`: Set texture resolution.
- `Format`: `.png` or `.jpg` (`8bit` color), `.exr` (`16bit / 32bit` color).
- `Channels`: Specify which maps to export into textures.
- `Res`: Set texture resolution.
- `Color`: Set `8bit`, `16bit` or `32bit` textures for painting.

`Output` presets:
- `Generic`: Exports individual PBR textures.
- `Unreal 4`: Exports packed *occlusion-roughness-metallic* texture.
- `Unity 5`: Exports packed *metallic-occlusion-smoothness* texture.

#### Export Mesh

Expand All @@ -98,7 +108,7 @@ Click on the `Export tab - Export Mesh - Export` button to save the currently lo

Click on the `File - Save` menu item (`Ctrl + S`) to save the currently opened project. Mesh, layers and materials will be saved into `.arm` project file.

To open the project file, drag and drop `.arm` file onto the viewport. `.arm` files can be set to open directly with ArmorPaint from the OS file explorer.
To open the project file, drag and drop `.arm` file onto the viewport. `.arm` files can be set to open directly with ArmorPaint executable from the OS file explorer.

`.obj` and other asset types can also be associated if you wish to use ArmorPaint as a model / texture viewer.

Expand All @@ -114,18 +124,21 @@ To open the project file, drag and drop `.arm` file onto the viewport. `.arm` fi

Materials in ArmorPaint are composed with nodes. When painting, brush applies a material onto the surface. To compose a material, open node editor by clicking `Materials tab - Nodes` (`TAB`).
- Use toolbar at the top to add new nodes.
- Drag textures from `Textures` tab into the node editor to create `Image` nodes.
- Press `space` to search for nodes.
- Drag textures from `Textures tab` into the node editor to create `Image` nodes.

Material preview is displayed instantly in the `Materials tab` as the nodes are assembled.

Right-click onto material preview to expose material operations:
- Set which channels the material should affect.
- Create fill layer from selected material.
- Delete material.

Implemented material nodes:
`Attribute`, `Camera data`, `Fresnel`, `Geometry`, `Layer Weight`, `Object Info`, `RGB`, `Tangent`, `Texture Coord`, `UV Map`, `Value`, `Brick Texture`, `Checker Texture`, `Gradient Texture`, `Image Texture`, `Magic Texture`, `Musgrave Texture`, `Noise Texture`, `Voronoi Texture`, `Wave Texture`, `BrightContrast`, `Gamma`, `HueSatVal`, `Invert`, `MixRGB`, `Vector`, `Bump`, `Mapping`, `Vector Curves`, `Color Ramp`, `Combine HSV`, `Combine RGB`, `Combine XYZ`, `Math`, `RGB to BW`, `Separate HSV`, `Separate RGB`, `Separate XYZ`, `Vector Math`
> Drag and drop material into viewport to create fill layer.
>See [Import Materials](http://armorpaint.org/manual/#/?id=import-materials).
*See [Import Materials](http://armorpaint.org/manual/#/?id=import-materials)*
>Implemented material nodes: `Attribute`, `Camera data`, `Fresnel`, `Geometry`, `Layer Weight`, `Object Info`, `RGB`, `Tangent`, `Texture Coord`, `UV Map`, `Value`, `Brick Texture`, `Checker Texture`, `Gradient Texture`, `Image Texture`, `Magic Texture`, `Musgrave Texture`, `Noise Texture`, `Voronoi Texture`, `Wave Texture`, `BrightContrast`, `Gamma`, `HueSatVal`, `Invert`, `MixRGB`, `Vector`, `Bump`, `Mapping`, `Vector Curves`, `Color Ramp`, `Combine HSV`, `Combine RGB`, `Combine XYZ`, `Math`, `RGB to BW`, `Separate HSV`, `Separate RGB`, `Separate XYZ`, `Vector Math`.
<br/><br/><br/><br/><br/>

Expand All @@ -143,16 +156,14 @@ Implemented material nodes:

Select `Brush`(`B`) tool from toolbar. Configure brush parameters in the header. Use `left mouse button` / `pen` to paint strokes using the selected material.

- `Radius`: Brush size. (Hold `F` key and move the mouse / pen to the left / right.)
- `Radius`: Brush size. (Hold `F` key and move the cursor)
- `UV Scale`: Scale the coords for currently painted material.
- `UV Rotate`: Rotate the coords for currently painted material.
- `Opacity`: Overall opacity of the brush stroke.
- `Opacity`: Overall opacity of the brush stroke. (Hold `Shift+F` key and move the cursor)
- `Hardness`: Fade opacity towards the brush stroke edge.
- `Bias`: Stretch brush stroke on the uv map to prevent seams.
- `Blending`: Blending mode used for painting.
- `TexCoord`: Coordinates used for texture sampling. Mesh `UV Map`, `Project` from view or `Triplanar` mapping.
- `X-Ray`: Paint through mesh faces.
- `Mirror`: Mirror brush strokes horizontally in screen-space.
- `Symmetry`: Mirror brush strokes on the X, Y and/or Z axis.

#### Eraser
Expand All @@ -161,13 +172,11 @@ Select `Brush`(`B`) tool from toolbar. Configure brush parameters in the header.

Select `Eraser`(`E`) tool from toolbar. Use `left mouse button` / `pen` to erase strokes on the currently selected layer.

- `Radius`: Eraser size. (Hold `F` key and move the mouse / pen to the left / right.)
- `Radius`: Eraser size.
- `Opacity`: Overall opacity of the eraser stroke.
- `Hardness`: Fade opacity towards the eraser stroke edge.
- `Bias`: Stretch eraser stroke on the uv map to prevent seams.
- `Blending`: Blending mode used for erasing.
- `X-Ray`: Erase through mesh faces.
- `Mirror`: Mirror eraser strokes horizontally in screen-space.
- `Symmetry`: Mirror eraser strokes on the X, Y and/or Z axis.

#### Fill
Expand All @@ -179,7 +188,6 @@ Select `Fill`(`G`) tool from toolbar. Press `left mouse button` / `pen` to fill
- `UV Scale`: Scale the coords for currently painted material.
- `UV Rotate`: Rotate the coords for currently painted material.
- `Opacity`: Overall opacity of the fill effect.
- `Bias`: Stretch fill effect on the uv map to prevent seams.
- `Blending`: Blending mode used for fill effect.
- `TexCoord`: Coordinates used for texture sampling. Mesh `UV Map`, `Project` from view or `Triplanar` mapping.
- `Fill Mode`: Allows to fill individual mesh faces.
Expand All @@ -190,14 +198,13 @@ Select `Fill`(`G`) tool from toolbar. Press `left mouse button` / `pen` to fill

Select `Decal`(`D`) tool from toolbar. Press `left mouse button` / `pen` to apply active material as a decal onto the surface.

- `Radius`: Decal size. (Hold `F` key and move the mouse / pen to the left / right.)
- `Radius`: Decal size.
- `UV Scale`: Scale the coords for currently painted material.
- `UV Rotate`: Rotate the coords for currently painted material.
- `Opacity`: Overall opacity of the decal.
- `Blending`: Blending mode used for applying decal.
- `Mask`: Apply shape mask to the decal.
- `X-Ray`: Apply decal through mesh faces.
- `Mirror`: Mirror decal horizontally in screen-space.
- `Symmetry`: Mirror decal on the X, Y and/or Z axis.

#### Text
Expand All @@ -206,15 +213,14 @@ Select `Decal`(`D`) tool from toolbar. Press `left mouse button` / `pen` to appl

Select `Text`(`T`) tool from toolbar. Press `left mouse button` / `pen` to apply active material as a text onto the surface. Drag and drop a `.ttf` file into the viewport to change the font.

- `Radius`: Text size. (Hold `F` key and move the mouse / pen to the left / right.)
- `Radius`: Text size.
- `UV Scale`: Scale the coords for currently painted material.
- `UV Rotate`: Rotate the coords for currently painted material.
- `Opacity`: Overall opacity of the text.
- `Blending`: Blending mode used for applying text.
- `Font`: Select which font to apply.
- `Text`: Type a text to apply.
- `X-Ray`: Apply text through mesh faces.
- `Mirror`: Mirror text horizontally in screen-space.
- `Symmetry`: Mirror text on the X, Y and/or Z axis.

#### Clone
Expand All @@ -223,9 +229,8 @@ Select `Text`(`T`) tool from toolbar. Press `left mouse button` / `pen` to apply

Select `Clone`(`L`) tool from toolbar. Hold `ALT` to set clone source location. Use `left mouse button` / `pen` to clone the material from source location to active location.

- `Radius`: Brush size. (Hold `F` key and move the mouse / pen to the left / right.)
- `Radius`: Brush size.
- `Opacity`: Overall opacity of the brush stroke.
- `Bias`: Stretch brush stroke on the uv map to prevent seams.
- `Blending`: Blending mode used for painting.
- `X-Ray`: Paint through mesh faces.

Expand All @@ -235,19 +240,18 @@ Select `Clone`(`L`) tool from toolbar. Hold `ALT` to set clone source location.

Select `Blur`(`U`) tool from toolbar. Use `left mouse button` / `pen` to smudge the material applied to the surface.

- `Radius`: Brush size. (Hold `F` key and move the mouse / pen to the left / right.)
- `Radius`: Brush size.
- `Opacity`: Overall opacity of the brush stroke.
- `Bias`: Stretch brush stroke on the uv map to prevent seams.
- `Blending`: Blending mode used for painting.
- `X-Ray`: Paint through mesh faces.

#### Particle
#### Particle *wip*

![](img/tool_particle.png)

Select `Particle`(`P`) tool from toolbar. Use `left mouse button` / `pen` to apply particles onto the surface.

- `Radius`: Particle emitter size. (Hold `F` key and move the mouse / pen to the left / right.)
- `Radius`: Particle emitter size.
- `Opacity`: Overall opacity of the emitted particle.
- `Blending`: Blending mode used for applying particles.
- `X-Ray`: Apply particles through mesh faces.
Expand All @@ -256,13 +260,18 @@ Select `Particle`(`P`) tool from toolbar. Use `left mouse button` / `pen` to app

![](img/tool_bake.png)

Select `Bake`(`K`) tool from toolbar.
Select `Bake`(`K`) tool from toolbar. Press `left mouse button` / `pen` in viewport to apply bake into the base color channel of active layer or mask.

- `AO`: Bake ambient occlusion. `Strength`, `Radius` and `Offset` can be configured.
- `Curvature`: Bake mesh curvature. `Strength`, `Radius` and `Offset` can be configured.
<!-- - `Normal (Tang)`: Bake normal map from high-poly mesh. -->
- `Normal (World)`: Bake world-space normals encoded into (0-1) range.
- `Position`: Bake world-space positions encoded into (0-1) range.
- `TexCoord`: Bake mesh uv map.
- `Material ID`: Bake colored material IDs.
- `Object ID`: Bake colored object IDs.

- `AO`: Press `left mouse button` / `pen` to bake ambient occlusion into the occlusion channel. `Strength`, `Radius` and `Offset` can be configured. Afterwards, you can prevent the occlusion channel from being painted on by disabling it in the [layers](http://armorpaint.org/manual/#/?id=layers) menu.
- `Position`: Bake world-space positions into base color channel.
- `TexCoord`: Bake mesh uv map into base color channel.
- `Material ID`: Bake colored material IDs into base color channel.
- `Normals (World)`: Bake world-space normals into base color channel.
> Use `Curvature` baker to create dirt masks.
#### Color ID

Expand Down Expand Up @@ -308,7 +317,9 @@ Right-click on the mask to expose mask operations:
- `Apply` mask to parent layer.
- `Delete` mask.

*Note: Operations for the base (first) layer are restricted.*
>Operations for the base (first) layer are restricted.
>Drag textures from `Textures tab` into the viewport to create mask for active layer.
#### 2D View

Expand All @@ -317,14 +328,14 @@ Right-click on the mask to expose mask operations:
Click `Layers tab - 2D View` to show the channels of the selected layer. The 2D View is updated immediately as you paint. In the top bar, you can select which channel to show or display UV map as a wireframe.

- Paint tools are also usable directly inside the 2D view.
- Press `Textures tab - 2D View` to show selected texture inside 2D view.
- Press `Textures tab - 2D View` to show selected image inside 2D view.

#### Camera

Set camera type and parameters in the status bar.

- `Rotate` - Rotate mesh around the origin.
- `Orbit` - Rotate camera around the mesh.
- `Rotate` - Rotate mesh around the origin.
- `Fly` - Hold `right mouse button` and move camera freely using the `WASD` and `QE` keys.

Press `menu bar - View` to set specific camera viewpoint.
Expand All @@ -337,7 +348,6 @@ Press `menu bar - View` to set specific camera viewpoint.
- Enable `Show Envmap` to draw environment map in the viewport.
- Drag and drop a `.hdr` file onto the viewport to change the environment map.
- Show `Wireframe` in the viewport.
- Show ruler `Grid` in the viewport.
- Show 3D `Compass` in the viewport.

<br/><br/><br/><br/><br/>
Expand All @@ -351,9 +361,8 @@ Press `menu bar - View` to set specific camera viewpoint.
![](img/e.jpg)

Select workspace from the header bar:
- `Paint`: Texture painting.
- `Scene`: Scene composition.
- `Material`: Node-based material creation.
- `Paint`: Texture painting, material composition.
- `Scene`: Scene composition. *wip*

<br/><br/><br/><br/><br/>

Expand All @@ -369,11 +378,13 @@ Select workspace from the header bar:

- `UI Scale`: Scale up the user interface when running on high-resolution display.
- `Layout`: Pin properties window to the left or right side.
- `Theme`: Select `Dark` or `Light` theme. Theme can be tweaked by editing the `theme_dark.arm` file placed in the `/data` folder. A proper theme editor will be provided in the future.
- `Theme`: Select `Dark` or `Light` theme. Theme can be tweaked by editing the `theme_light.arm` file placed in the `/data` folder. A proper theme editor will be provided in the future.

##### Usage

- `Undo Steps`: Set the number of undo steps to preserve. Using less undo steps may improve performance when running on GPU with constrained memory.
- `Paint Bias`: Stretch brush strokes on the uv map to prevent seams.
- `3D cursor`: Enable topological warp for paint cursor with depth and angle rejection.

##### Pen Pressure

Expand Down

0 comments on commit 43529b3

Please sign in to comment.