A new mesh painting tool (WIP)

Update 21-02-2016

Hello again, I uploaded new videos with some improvements in asset support, rendering pipeline and user interface, seems hard to start with other things like the brush system :( before finishing other important features. I also added support for FBX, multi shape/material-id meshes (WIP) and mikktspace tangents, among other little improvements. Here is one of the latest videos showcasing the new docking system:


For the next big update I will focus on a new Layer system, prepared for multiple texture sets, and each layer will hold a list of channels, so, instead of the current paradigm of mesh -> channels -> layers, it will be mesh -> shapes -> layers -> channels, similar to how Substance Painter layer sets works.

Introduction

Hello everyone, I’m posting here for the first time to show you a new mesh painting tool that I’m working on. It started just as an experiment based on what I’ve seen in some other tool videos on youtube like Substance Painter or 3D-Coat. As I’m a videogame programmer, I already shown it to some workmates to get some hints about what would be interesting to implement, and that’s why I’m writing this post here, I would really appreciate If you help me just commenting what do you think that a tool like this can do for you, even things that no other tool does, I already have a lot of tasks on the TODO list and If you can explain me your needs when using this kind of tools I will be able to expand and prioritize the implementation of those features. 



How can I get It?

Right now the tool is in an early development stage not available for public, I’m planning to publish it in some way, maybe through Steam GreenLight, and at least for Windows 7+ and Mac OS X.


How much it will cost?

The intention is to keep it as cheap as possible, just to cover the costs for other software licenses (for interoperability testing) and newer hardware (I’m working on a pretty old Mac), there is also the crowdfunding option on the table, or push the development beyond my free time, but it will mainly depend on the people interest for this tool.



What it does right now?

  • Load a 3D mesh from OBJ and FBX files.
  • Load TGA, PNG, JPEG, TIF and HDR textures and access it from a Gallery panel.
  • Interactive painting with a circle brush.
  • Choose brush color, alpha, size and blur.
  • The default material is PBR and Image based lighting, you can set the environment map from any texture (HDR recommended).
  • Ready to paint Diffuse/Albedo, Metalness and Roughness maps.
  • Normal Map support as input (not ready for painting).
  • Layers: Create, Remove, Sort, Rename and Toggle layers visibility.
  • Also tweak layers transparency and set it’s blend mode.
  • Load previously created maps directly as layers.
  • Save merged layers map or just individual layers as TGA textures.
  • Can Undo / Redo every single stroke and any layer manipulation.
  • Single window streamlined GUI panels, move and resize any GUI panel where you want.

There are videos in my youtube channel showing some those features, feel free to see it https://www.youtube.com/user/xGallox .  Keep in mind that most of the textures you see in the videos or gif animations in this post are not created by me or with my tool, I downloaded it to test the viewport render pipeline with professional textures.



Thanks for being interested in this post, any comment, review or hint will be appreciated.


Replies

  • Eric Chadwick
    This looks very promising. Thanks for posting!

    Are you looking for testers? Polycount members have a history of providing solid feedback for tool developers.

    I'm looking forward to seeing this tool develop!
  • PolyHertz
    Offline / Send Message
    PolyHertz polycounter lvl 10
    Looks like a solid start.
    Here's most of the features people will typically be looking for in a new 3D painting app (note that no single app does all of this yet):

    Brush Engine: Check these out for ideas;
        Paint Storm Studio
        Verve Painter
        Lazy Nezumi Pro (specifically Distortion Scripting and L-Systems features).
    Brush Scope:
        Ability to work over multiple meshes/Elements/UV islands.
        Option to limit stroke to mesh/Element/UV island it started on.
        Dynamic masking based on normal map curvature (3D-Coat has many pre-defined options for this).
        Layer-independant masking/freezing surfaces via brush or fill.
    Paint layers:
        Layer groups
        Layer Masks
        Adjustment layers
        Isolate layer
        Lock Layer
        Lock layer transparency
    File formats: PSD, TGA, TIFF, PNG, ABR, SBSAR
    Viewport/Visibility:
        synced normals (mikktspace)
        order independant transparency
        isolate/hide/unhide objects, elements, and UV islands.
        Both perspective and Orthographic modes.
        Special 2D viewport for painting directly on UVs.
    Customization:
        User set hotkeys
        User set viewport controls
        full drag/drop support for UI windows and buttons/icons/tools.
    UVs: Support for overlapping UVs, non-square UVs, and UDIM tiles.
    Symmetry: Single axis, Multi axis, radial. Text tool must have ability to flip text when using symmetry.
    Materials: pre-defined 'smart materials' like seen in DDO or 3D-Coat. Substance support would also be a nice plus.
    Projection:
        Paint with brush aligned to mesh normal (3D-Coat/Substance Painter/Blender)
        Paint with brush aligned to screen (Mari/Bodypaint3D)
        Project from external 2D painting app (3D-Coat/Bodypaint3D/Blender)
        Project stencils/stamps (essentially all modern 3D painting apps have this)
    Interoperability: An obj/texture auto-load feature would allow applinks for Max/Maya/etc. to be freely developed.

    I think that pretty much covers most of the big requests you'll see. :)
  • JamesQuall
    Offline / Send Message
    JamesQuall polycounter lvl 5
    Looks very promising.  Was looking for something with a more streamlined ui than substance painter and cheaper than Mari.  I'll be keeping an eye on this.
  • Eleszar1
    Offline / Send Message
    Eleszar1 polycounter lvl 4
    cant w8 to test this out :)
  • claydough
    Offline / Send Message
    claydough polycounter lvl 8
    alt centric viewport navigation is always appreciated. ( saving one from view nav dyslexia hair pulling when switching between apps in a pipeline )

  • Macrow
    Offline / Send Message
    Macrow polycounter lvl 4
    Can never have too many options as new texture-painting tools!  Tools are going to be unique, no matter how similar to each other.  I love options.  Keep it up.  Will keep an eye on this.
  • Gallo
    Thank you very much for your answers, specially to POLYHERTZ, very interesting information.
  • Gallo
    Thank you very much for your answers, specially to POLYHERTZ, very interesting information.
  • badmouse
    Offline / Send Message
    badmouse polycounter lvl 6
    I been waiting for a simple 3d model painter for decades! something easy to paint handpaint textures style without all the specular, softness and metallic map stuff. a light software not so heavy like Substance Painter.
  • PolyHertz
    Offline / Send Message
    PolyHertz polycounter lvl 10
  • badmouse
    Offline / Send Message
    badmouse polycounter lvl 6
    Yes, but all they are a disaster,
    http://pixexix.sophiehoulden.com/
    Is in base of projection, not real time paint
    https://forums.tigsource.com/index.php?topic=14495.0
    Is pixel style
    http://crackart.org/
    http://www.blacksmith3d.com/
    Are very old, do not support Layers and other common tools

    The one I been using was a old version of bodypaint but the price is ridiculous high. around 1000usd.

  • PolyHertz
    Offline / Send Message
    PolyHertz polycounter lvl 10
    Yea that's true. There are a ton of programs that can do 3D paint (about 20 in total that I know of), but all of them have some very notable limitations and/or are abandoned. I use 3D-Coat because it comes the closest to what I'm looking for in a modern 3D painting app, but it by no means does all of the things I wish it could (as an example, I've been bugging the author to get standard Masks in there for years...). If any app could do all of the things in the post I made above, that would feel like a miracle atp.

    (btw, about Bodypaint, apparently another company is working on reviving it, though I have no idea how long before we hear any details on that.)
  • Gallo
    "The one I been using was a old version of bodypaint but the price is ridiculous high. around 1000usd."

    You pointed a very important detail here, the price can also mark the way to go with features. For example, what would be the ideal price for a software that give you powerful painting tools, arround 80% of what POLYHERTZ described above, something that let you use all your skills to create color maps that will look really incredible even with a simple phong shading? COMPARED TO, a tool that may give you the 40% of features described above, but that comes with all the modern PBR materials stuff and magimatical procedural textures that create effects for you, and also important, which of those two have more demand or is more absent in the market?

    Keep in mind that doing the Photoshop equivalent for 3d painting that covers everything is out of the scope right now, at least for my project ;).
  • PolyHertz
    Offline / Send Message
    PolyHertz polycounter lvl 10
    It would depend on which 80% you're talking about. I don't think it's possible for a new app to compete if it only covered 40% of what's posted above (Maybe if it was priced at $50 or less...).

    Right now, the market has several high-mid range options, but there's nothing particularly good focused on the low end (ie. color-only textures). For low-spec 3D texturing, really the only software that was created with it in mind at all, and isn't abandoned or bare-bones, is 3D-Coat. Unfortunately 3D-Coat also has a LOT of limitations which make it in several ways inferior to the long-dead Bodypaint (this is also why most Chinese/Asian artists still use bodypaint even though it's an incredibly buggy mess).

    Lets assume you went for the low end market, currently that is comprised primarily of indie, mobile, and Asian (Chinese/Japanese/Korean) developers. Your main competition would be 3D-Coat ($380, but it does a lot more then just paint) and Bodypaint3D (part of C4D, at $1000, discontinued but still in use), which you would have to undercut. I'd say start at about $100 to $150 (the price of Substance Painter) and see how the market responds.

    Keep in mind though that most artists wont invest time or money in a product they see as having no future. So, if you want it to be successful, your going to need semi-regular updates after the initial release, as well as a website/forums where users can post bugs, make suggestions, and perhaps show off what they've made.
    Gallo said:
    Keep in mind that doing the Photoshop equivalent for 3d painting that covers everything is out of the scope right now, at least for my project ;)
    That's fine, you don't really need to make a Photoshop replacement to find success. In fact, Mari (which costs $2000) is probably the only 3D painting app that has ever even tried to outright replace Photoshop (except for maybe Amazon Paint, but that's going back to the 90s when painting apps were much simpler in general). That said, it should be part of your long-term goals to reduce the time users need to spend in 2D painting apps as much as possible.
  • CreativeSheep
    Offline / Send Message
    CreativeSheep polycounter lvl 2
    While I condone the OP for his attempt to make another 3D painting too; he does as mentioned already have to know that there has been many failures in the past and many use Mari / Mudbox or Quixel Suite for their 3D painting.  Then again, maybe the OP tool will be quick and easy for basic needs or setups.   :)

    When the tool is ready update this thread and share with all of us :)
  • Eric Chadwick
  • Gallo
    New video, more improvements on the PBR side, I recommend to see in 1080p. The first photo is a UE4 render reference. Ignore the "Specular" name as it is representing the "Roughness" value here:



    I hope to end soon with this technical challenge and move back to the color painting and brush features. I will also keep the support for more basic materials without PBR.
  • Gallo
    Finally a pretty decent PBR:



    Time to go back to the painting tools and the new brush system!
  • Gallo
    Post updated with a new video showcasing the new docking system.
  • nyx702
    Offline / Send Message
    nyx702 Polycount Sponsor
    Honestly I think this is looking pretty awesome. Dispite what some people have said I would love more options for 3D painters. 
  • gnoop
    Offline / Send Message
    gnoop polycounter lvl 6
    There are a few pretty good  and capable  texture applications on the market currently.     They are all focused around similar  hand painting workflow  mostly inspired by Photoshop  and sharing  all the same limitations and inconveniences.      I don't need one more. I need something  focused on new approaches and offering workarounds for typical limitations like painting on square factored textures only.

    Whenever I do a texture, less I intrude in what mother nature created and less I actually paint , better the texture look.   So I need a new instruments that helps not to "paint"  but rather compose scanned fragments  + do a few procedural touches here and there like worn edges  + procedurally and randomly scatter  a few small fragments, including true geometry ones.  
    Having more or less real time preview.

    My list of features I'd love to see:

    Layers:
    1. true floating and scalable resolution independent  multi-channel   " linked smart objects" , having extra  speclevel channel  beyond roughness , depth , metallic and RGBA ,   
    2. "deep composing" of such layers  based on its depth combine  like in Zbrush 2,5d layers .   Auto masking based on depth combine , cavities, curvature and ambient occlusion with adjustable vectors like in old  "dirt map" for  3d max  .
    3. Material layers with up or down scaled texel size  , other UV sets. multiple sub-material, material ID
    4.  Procedural edge feather.

    Brushes:
    1. Scatter brushes with multiple random  multi-channel dabs , small objects painters partly like a true geometry. partly into the depth map.  At least an ability to chose many brush dabs at once and paint them randomly like 3d coat.   
    2.   Fur growing brushes   based on fur shaders 
    3.   Roll brush (zbrush)  Stripe (3d coat) or ideally a "skeletal" brush from  old Expression. One having a number of alternating parts rolling out randomly.   A vector variant of same brush  to adjust the curve.   

    ps.  in fact I even don't need true 3d painter . Would do it on a flat unwrap nevertheless most of a time .   So Just a  good real time  3d preview would be enough for me.
  • PolyHertz
    Offline / Send Message
    PolyHertz polycounter lvl 10
    @gnoop I like the idea of the pixels having true depth like in the ZBrush 2.5D canvas, that could be quite useful. The program would need to be able to handle a ton of geometry though, or have a way to process geometry into a format that could interact with depth in the same way meshs do in zbrush (vector displacement maps perhaps?).

  • gnoop
    Offline / Send Message
    gnoop polycounter lvl 6
    No, it doesn't need actual geometry .  Zbrush 2,5d canvas doesn't work with actual geometry too .  Same with Nuke or Fusion,     Just depth values of pixels  and  a few blending modes .  It could be done even in Photoshop.     Although it would require so messy and huge stack of layers and clipping groups in Photoshop that it makes it almost impossible to work with.  


  • melviso
    Offline / Send Message
    melviso polycounter lvl 5
    Just great work, mate. As someone who handpaints textures, this looks pretty cool. Any chance we my be testing this or have a test version released?
  • PolyHertz
    Offline / Send Message
    PolyHertz polycounter lvl 10
    Gnoop, what's with all your posts having tons of blank space at the end of them?
    About depth; Yes you could do it without deriving the initial depth from meshs, but that would be a lot less user friendly.
  • gnoop
    Offline / Send Message
    gnoop polycounter lvl 6
    PolyHertz said:
    Gnoop, what's with all your posts having tons of blank space at the end of them?
    About depth; Yes you could do it without deriving the initial depth from meshs, but that would be a lot less user friendly.
    Sorry, probably did it accidentally , have no idea how .    

      As of initial depth when working with scanned or Zbrush rendered fragments you usually have depth info from meshes already .  

     With all those texture painting and procedural  applications we have nothing that would  allow to compose  and scale  fragments  quickly and easily as simple RGBA image layers  or vector objects in Illustrator .      I mean without huge mess of layer groups  or nodes  , a lot of redundant and routine operations,  masking  and tiny levels and hi pass  tweaking .  

      Would love to see a simple  depth aware texture composer with a mouse wheel to tweak depth  + advanced random details scattering tool (also depth aware).   
  • Gallo
    gnoop said:
    ps.  in fact I even don't need true 3d painter . Would do it on a flat unwrap nevertheless most of a time .   So Just a  good real time  3d preview would be enough for me.
    Good point, the ability to work on unwrapped UV viewport from the same tool or applinking an external tool like photoshop is something mentioned by Polyhertz too and is indeed a good feature. The other things you mentioned are interesting too but beyond the scope of what I'm able to implement right now.

    melviso said:
    Just great work, mate. As someone who handpaints textures, this looks pretty cool. Any chance we my be testing this or have a test version released?
    As soon I have something stable and ready for produce with a minimum of quality I will try to publish and distribute it somewhere. I'm having troubles in Windows right now, as I work most of the time on Mac where OpenGL is the only option, some shaders does not work as expected on Windows, at least on my hardware and other graphic cards of the same age as my Mac. This means that I must look for some workarround for things that are already working fine on Mac to have it stable on windows.

Sign In or Register to comment.