EditorPaint : 2D & 3D Texturing Tools [RELEASED]

EditorPaint is now available in the Asset Store!
Documentation: Unity Live Help

Due to issues with inconsistent Compute Shader features/stability, we can not actively support Mac and Linux use. We are happy to try to work out any issues you may find, but we cant guarantee the compatibility of the tool the same way we can for Windows. We apologize for this and hope we can endorse those platforms once Compute Shaders + Unity are more stable on them.

What is it?
EditorPaint is a 2D & 3D Texturing Tool for use inside of the Unity3D editor. EditorPaint allows users to quickly edit textures in 2D, paint in 3D using advanced brush projection tech, bake advanced raytraced simulations like Ambient Occlusion, and much more.

Who did we build it for?
Everyone! …Ok, another way to say it is EditorPaint has features which can benefit both novice users and experienced users.

  • Users who want integrated access to advanced features like AO baking and 3D painting, or want to quickly edit a 2D texture for improved quality and production speed.
  • Users who may not know how to use the bigger software packages but still need a quick and powerful solution for custom 2D&3D texturing or Baking.
  • Users who can’t afford to pay big software prices but still want big software features.

Why’d we make EditorPaint?
We found while working in Unity there were many times we wanted to quickly edit a texture, invert an alpha channel, or bake an AO for a mesh from the Asset Store. This almost always requires switching to a separate application which can be cumbersome and often takes longer than necessary. Often the rendering style or lighting wasn’t consistent in other software with our scene, so the textures never looked the same causing us to edit them multiple times. This changes depending on the type of work that needs to be done, but for a lot of edits we wished we could just do them inside of Unity in a powerful and high quality way.

We also found multiple other features we wanted to simplify and make easier to use, take Ambient Occlusion for example. Without EditorPaint, to bake an Ambient Occlusion texture you’d have to: 1- use another piece of software, 2- import your object, 3- possibly create a “cage” object, 4- setup the object for baking, 5- bake the object, and then 6- import the texture back into Unity. In reality, this can be much simpler with a quicker turnaround time. So we built what we wanted, a GPU accelerated raytrace Ambient Occlusion texture generator! (simple right :wink: ) it also works with multiple objects at one time, so you can setup your scene (for example: a table with a lamp on it, or a mailbox on a sidewalk) and then bake an AO with the objects in context to each other.

Gifs!
2D editing

3D painting
https://i.imgur.com/NFVPiW5.gif

Ambient Occlusion bake

3D Mesh Painting:

  • Easy mesh painting - Paint directly on meshes or prefabs in the EditorPaint window with no special mesh setup.
  • Uses your Scene lighting - Paint textures while seeing them lit by your Scene lighting and Scene reflections so you know exactly how they will look.
  • Multiple meshes together - Paint in the context of each object’s position in the scene or prefab.
  • Advanced painting tech - DynamicUV is our custom 3D painting tech that allows consistent world brush size regardless of UV layout, distortion, or scale while painting on a Mesh.
  • Custom Shader support - Supports using any Shader file in your project that has a 2D texture slot. Preview your work using YOUR shaders, not just the Standard shader!
  • Animated Materials - See your painting results live while your material updates with every brush stroke you take. See Flow maps animate water and Sci-fi materials glow, all while you paint!
  • 3D Simulations - Bake without needing external tools. Bake Ambient Occlusion, Mesh Thickness, Emissive Light, Voronoi, 3D noise, Directional gradients, Positional Gradients, 3D grids, and more.

2D Texture Painting:

  • Uncompressed Imports - EditorPaint loads textures fully uncompressed from disc instead of the Unity compressed runtime data. (no generation loss!)
  • Large Texture support - Paint in the 2D window on textures as large as 8k x 8k in our highly optimized pipeline.
  • Create Normal Maps – Generate/Modify normal maps for your objects using the Normal Map Action, or paint your own.
  • Image Actions - Adjust levels, hue, saturation, invert colors/alpha; apply blur, 2D noise, color gradients, channel effects; and bleed colors outside of UV space, rotate, scale, tile, etc.
  • Particle System Support – Import your particle systems and paint on their 2d textures while you see them simulate.
  • Create Custom Actions – Create your own Texture Shader Actions you can use in the EditorPaint window, then share them with your team or the community!

Editor Features:

  • No messy scripts in your scene! - Everything works from within the EditorPaint window. Meshes and textures can simply be dragged in from the Scene or the Project window.
  • Linear & Gamma - Full support for both Linear and Gamma render pipelines.
  • Custom Brushes - Paint with your own Brush Textures or use the built in procedural brush settings.
  • Layers - Use an unlimited number of Layers to organize your work or to create powerful effects.
  • Multi-material - Support for objects with multiple material slots on a single mesh.
  • Quick texture actions - Use the Project window right-click menus to invert color, invert alpha, rotate, or flip textures .
  • Flow map brush - The Flow map brush allows you to paint Vector maps for Flow map and Combed normal map materials.
  • No Generation loss - We natively access your textures to edit and save preventing generation loss caused by accessing Unity runtime compressed textures.
  • Resize Textures - Fully customizable Canvas resolution and Layer resolution, per object, per layer type.
  • Texture Formats - Save textures with or without alpha channels, as png, tga, gif, jpg, bmp, tif, gif.
  • Blend modes - Brushes and Layers both support multiple blend modes. (normal, additive, multiply, overlay, and screen)
  • Save your progress - Save/load paint projects with full layer information to continue your work later.
  • Undo/Redo - Easily fix mistakes or iterate on designs.
  • View modes - Lit & Unlit shading, 2D UV overlay, 2D grid, and sky dome toggle.
  • Full channel support - Paint RGB or Alpha channels.
  • Optimized to work great on both fast and slow computers.

What are we planning for the future?
We have a list of improvements and features we plan to do next, some of which are:

  • Address feedback from the community.
  • UX and UI polish to continue improving the editor and add new features.
  • Additional Simulation layer types and improvements to existing types.
  • Additional paintbrush features and improvements.
  • Add pixel art specific features and improvements.
  • Custom save dialog to support planned new features.
  • Add support for HDR colors and additional texture save formats.

Have feedback?
We’d love to get feedback about features you’d like to see, or any other thoughts about the tool. Send them our way at prizedgoat.unity @ outlook.com.

Videos links!
EditorPaint for Unity3D - Transparency & Alpha Channels
EditorPaint for Unity3D - Ambient Occlusion
EditorPaint for Unity3D - Using Photos
EditorPaint for Unity3D - 2D Paint Window
EditorPaint for Unity3D - Brush Projection Mode
EditorPaint for Unity3D - Texture Brushes
EditorPaint for Unity3D - Blend Modes
EditorPaint for Unity3D - Height Maps

Thanks for reading and watching!

4 Likes

This looks awesome!

1 Like

Definitely buy this at the end of next week. Looks really great. I prefer to do everything within Unity, just cannot be bothered having to open more and more programs to make a game.

1 Like

Version 0.5.1 was approved adding support for additional image formats (png, tga, gif, jpg, bmp, tif, gif) to both import and save.

Just purchased this. Feels Good so far!

one question - can we save brush presets?

another feature request is - layer mask.

1 Like

Hi topureza,
Thanks for the feedback and support!

Currently we are finishing work on custom shaders (70% complete) and two other improvements; i had already wanted some brush improvements to also make it into that update, i will see if a reasonable change can empower brush presets for you. The back end is already designed with the idea of them, but i haven’t looked into the idea recently to know if i we could easily make it happen.

Layer masks are a planned feature, but not currently on the top of the list, your vote is noted though. I want to make a change which will improve memory consumption before adding to our memory overhead. Once the memory consumption update is in, it will be much more reasonable to add memory hungry features like layer masks. :wink:
I will keep it in mind though in case we think of a way to empower it sooner.

Looking forward to reading your feedback about the next update once it has been submitted!

Thank you guys for considering the feature requests! Please keep up the good work helping small studios (like us) to save precious development time by avoiding back & forth between unity & substance painter (or quixel)

I think another important & priority feature is to support multi material. currently only the first material of a object is picked.

another future feature would be to select UV channel of the object for texture painting. Currently only uv0 is picked.

@topureza
Hehe, one of the two “improvements” i alluded to above is multi material support.

On the uv channel selection… i agree with the want and why its useful, but havnt thought of a good integration yet. We want to make sure we dont deep dive into fiddly controls everwhere, so we are still working over that one in our head.
For example, i need a good resolve for painting across multiple objects with different uv channel count/settings without a crazy gui.

Currently a higher priority are features like texture projections in the 3d window (stickers etc) and better input for texture manipulation in the 2d window. So i dont have an eta for multiple uv channels yet.

1 Like

Hi Everyone,

We just released a big update with HUGE new features!
Here is a list of what we just added, let us know what you think and we will integrate your feedback as we keep working.

v 0.8
[New Features]
-Custom shader support added! Any *.shader file in Unity that has a 2D texture slot is now supported for painting on.
-Added Flow Brush type for painting Vector type Flow maps/Combed normal maps.
-Added Material Animation button to the 3D window for previewing material values that change over time (Caution, may have performance impact on painting depending on your setup).
-Added support for multiple materials per object.
-Added Material settings interface GUI for Color, Float, and Vector types to all imported objects.
-Added Mesh Thickness simulation layer type.
-Improved Ambient Occlusion simulation logic.
-Added normal map support to the Directional Gradient simulation layer.
-Added Distort texture action to 2D Action menu.
-Added Color Grading texture action to 2D Action menu.
-User settings improvements.
-Added new Project settings values for controlling how project creation is handled.
-Added multiple Brush Texture example files.
-Added Merge Layer Down feature to the New Layer menu.
[Bug fixes]
-Misc bug fixs across the GUI code and architecture code.
-Tiling texture bug fix. (full tiling texture support coming soon)
-Memory allocation cleanup and improvements.
-Performance improvements in various features.
-Improved texture import handling and fail case reporting.
-Fixed project save default location to be relevant to previous save locations and names.

I try to change the brush texture ,but some time it can,some time no.

version 2017.2.2

:(:(I save the texture finnished,but unity crash when saving…

Hi clagrens,
Can you provide any more info for whats causing yor issue. We are not seeing any issues and dont have any other reports of save issues.
What version of unity?
What OS? Mac/win/linux?
What file format are you saving as?
Any special steps you are taking?
If unity is crashing, it will have a log file. Can you email that or post it, that might tell us if its related to something else.

Thanks

What are you trying to do which isnt working for you, can you privide details to help us understand.
Drag and drop will try to create a new object or layer. (We are changing that soon). Try the browser method if thats your issue.
Is the texture not working as you expect? Or are you unable to use the texture you want?
If you want to set your own texture as the brush, i recomment clicking on the icon wich opens a file menu to select a new texture.

Thanks

:slight_smile:
”If you want to set your own texture as the brush, i recomment clicking on the icon wich opens a file menu to select a new texture.“

Works Today!

I don’t know what happened yesterday.But It work now (need to select my texture twice).
Save texture is work too. Maybe the reason is Generating a big resolution(8192)

Thanks for your help!

:):):wink:

@clagrens
Glad it worked for you. If you think you see any other issues, please pass them our way and we will do what we can to fix them quickly. We are still working on improvements, so also look for updates in the store.

Good news everybody! A documentation page has been created and can be found here:
https://connect.unity.com/p/editorpaint-documentation

Let us know if you cant find something in it, we will do our best to update it as we improve EditorPaint.

The 3d paint and the AO works with the terrain?

Sorry, terrain is not currently supported. But any mesh is, if you know how to get the mesh out of a terrain and if you know it has clean UVs (zero to one uv space etc), then it would work.
All EditorPaint features are per pixel not per vertex, most terrain systems are only per vertex so we havnt targeted terrain support yet.

v0.9 Update is now live on the store!

We added Emissive Light Simulation, Voronoi Simulation, Particle System importing, perf improvements to DynamicUV and Simulations, a full Unity 2018 support pass!

Here are the build notes:
v 0.9
[New Features]
-Added support for importing Particle Systems. (Not all particle system features are supported yet. Particles can not be painted on in 3d, but their textures can be painted on in 2d while previewing thier simulation.)
-Added Emissive Light simulation type. This allows users to bake ‘emissive’ light onto their objects based on a user selectable input layer type.
-Added Voronoi simulation type with multiple output types for both 3D and 2D variants.
-Added circular gradient feature to the gradient texture action.
-Added Preview Original Material to the Objects interface. This is useful when you have imported an object but your Editor Paint Project Shader doesnt match and you want to see the original material for reference.
[Improvements]
-Forced alpha compositing to output greyscale instead of color. This correctly reflects what will be saved to disc and helps users have less confusion about what channel type they are painting into.
-Highly improved simulation render times in most cases.
-Simulations are more stable on lower end computers because of a new perf testing system which runs before a simulation is run.
-Improved the Objects gui and Global Layers gui size to better share screen space.
-Simplified the Texture Resolution gui to only show one resolution option instead of the Layer resolution and Composite resolution.
-10x to 20x DynamicUV perf improvement when painting on very heavy meshes.
-Adjusted the Global Layers ‘New’ button and added the Global Layers ‘Edit’ button to help create clarity for users.
-Performance improvements across various features.
-Memory improvements across various features.
-WorldSpaceGrid visual quality improvements.
[Bug fixes]
-Fixed _glossmapscale import values bug so we now handle the various forms of texture or no texture values that Unity looks for in the Standard shader.
-Color picker bug fixs.
-Bug fixs to the 2d paint window when removing and adding layers.
-Fixed bug where AO and Thickness simulations would not work on some gpus.
-Unity 2018 related bug fixs.
-Fixed gamma issues for some preview textures while running in linear project mode.
-Various bug fixs across architecture, gui and simulations.