Home Technical Talk

TetraPaint - 3D Painting application

13
Hey all. I ended up making a fairly full-featured 3D painting application as an offshoot of the game I'm currently working on, that I think might be generally useful. If it's something that anyone would actually want, I'm probably looking at eventually releasing it as a cheapo 30 or 40 dollar thingy, but hey, how would you like free copies in exchange for giving a little feedback?

The upshot is that it's a 3D painting program that's designed to be as Photoshop-like as possible, and game-asset oriented (especially organic or standalone objects)

Here's a little video doing a rundown on the basic features.

https://www.youtube.com/watch?v=_bsS-EKdr1Y

And here's basically what it does -

* Pressure sensitive 3D painting 
* Layer support w/ alpha locking
* PBR shaders (Unity-like)
* simultaneous 2D painting/preview window w/ canvas rotation
* Full blend mode support 
* Mirror painting 
* Multiple undo/redo levels 
* Custom brush engine with stroke preview - make complex brushes with an interface extremely similar to Photoshop (texture overlays, 10 variability properties) 
* Supports FBX files for import and automatically sets up materials 
* Special normal-map blend modes that treat your brush as displacement and paint sculpted normal maps in realtime 
* Convert heightmaps to normalmaps 
* Projection painting, including stencils and stencil transfers 
* Cloning 
* Blur/Sharpen 
* Render ambient occlusion maps including contribution from normal maps 
* Render UV atlases to texture
* Alpha painting 
* 4k texture support

Currently requires Windows 7 and up, 64-bit, and I have it on Steam for easy updating.

Anyway, if this is something you'd be interested in playing around with, please let me know and I will lob keys your way! Grateful for any feedback I can get :)

email me at travisbaldree@gmail.com and I'll set you up. For the time being, Steam required-

Travis Baldree
Double Damage Games

Replies

  • Dataday
    Options
    Offline / Send Message
    Dataday polycounter lvl 8
    Looks promising, I could see myself throwing down some $$ to support this. The UI/UX appear to be extremely streamlined, which is great. In fact, there are few direct 3d painting applications that do hand painted texturing very well... I like 3D Coat but at the same time you have to pay for a lot of unused features as well as deal with an archaic UI.

    Where does it stand in regards to masking?
  • thomasp
    Options
    Offline / Send Message
    thomasp hero character
    hey travis, that looks really promising!

    a familiar interface like yours is certainly welcome.
    do you have a 'lazymouse' feature (a la zbrush. mudbox has it as well but i can't recall how it's called there) to stabilize long brushstrokes? also what i find always very welcome for 3D texturing is the ability to draw or import a spline in camera space and snap the brush onto that. masking/hiding geometry and painting on the 2D canvas would be other things i'd like to hear about.

    i'd be happy to test it on a current project of mine but do not run steam on the work machine. would that be a deal breaker?
  • travisbaldree
    Options
    Offline / Send Message
    Dataday said:
    Looks promising, I could see myself throwing down some $$ to support this. The UI/UX appear to be extremely streamlined, which is great. In fact, there are few direct 3d painting applications that do hand painted texturing very well... I like 3D Coat but at the same time you have to pay for a lot of unused features as well as deal with an archaic UI.

    Where does it stand in regards to masking?
    I guess that depends exactly on what you want to do - there's alpha lock on layers, but I don't have an explicit masking solution yet. I'd be interested in seeing how folks would want it implemented -
  • travisbaldree
    Options
    Offline / Send Message
    thomasp said:
    hey travis, that looks really promising!

    a familiar interface like yours is certainly welcome.
    do you have a 'lazymouse' feature (a la zbrush. mudbox has it as well but i can't recall how it's called there) to stabilize long brushstrokes? also what i find always very welcome for 3D texturing is the ability to draw or import a spline in camera space and snap the brush onto that. masking/hiding geometry and painting on the 2D canvas would be other things i'd like to hear about.

    i'd be happy to test it on a current project of mine but do not run steam on the work machine. would that be a deal breaker?
    I'm not sure how close mine approximates that - it does use spline interpolation and a lot of fiddling along your stroke history to try to keep them smooth (without going overboard)

    Currently once you start a stroke it only paints to the material you start on to prevent overflow into secondary materials (although that could become a toggle?), and you can individually hide and show components by material. There's also an alpha-lock on layers, and since you can paint to layers you can paint nondestructively and erase away anything you don't want.

    You can paint directly to the 2d canvas/layers with an optional texture-view (which is shown in the video partway through) - all 3D tools work on the 2d canvas.

    I'm very much actively working on this so implementing common requests is right in line with what I'm trying to do -

    The main drawback to not using Steam is that I can't really keep you updated easily (and I update a LOT) - let me poke around and see if there's any other way I can reliably patch stuff that doesn't require Steam (and doesn't take too much implementation time for me)
  • PolyHertz
    Options
    Offline / Send Message
    PolyHertz polycount lvl 666
    Really like the minimal UI, seems like a breath of fresh air given how bulky and over the top most 3D painting apps are.
    I made a post here just a month or so ago for another 3D Painting app that might give you some ideas: http://polycount.com/discussion/comment/2405069/#Comment_2405069

    I'd be glad to give it a shot, though I don't really use Steam...would it be possible to test it without using that?
  • Scruples
    Options
    Offline / Send Message
    Scruples polycounter lvl 10
    I'm interested, mostly because of the Alpha painting (3dcoat's implementation is not so great).
  • travisbaldree
    Options
    Offline / Send Message
    If you're OK with Steam for now, shoot me an email at travisbaldree@gmail.com and I'll set you up!
    Will continue to look into some other way to keep versioning patched without sending out a bunch of zip files for non-Steam users that I can't keep track of versioning with :)


  • Dataday
    Options
    Offline / Send Message
    Dataday polycounter lvl 8
    Dataday said:
    Looks promising, I could see myself throwing down some $$ to support this. The UI/UX appear to be extremely streamlined, which is great. In fact, there are few direct 3d painting applications that do hand painted texturing very well... I like 3D Coat but at the same time you have to pay for a lot of unused features as well as deal with an archaic UI.

    Where does it stand in regards to masking?
    I guess that depends exactly on what you want to do - there's alpha lock on layers, but I don't have an explicit masking solution yet. I'd be interested in seeing how folks would want it implemented -
    Watched the video over once more, and by the second time around you cant help but get a little excited by it. =)

    For masking, the first thought that comes into my head is some kind of combo.
    1st being, the traditional photoshop masking approach with masking built into every layer, off by default (this has been added to substance painter as well) .
    2nd being a something we see in zbrush, where you can paint a temporary mask and then texture paint around it, then deselect. Basically an inverse of the photoshop selection tools but more geared for the 3d workflow. The nice thing about this approach is that you could build on top of it to auto mask based on cavity, ao..ect

    One other thing I found incredibly useful is how some applications added an opacity/brush size control just by holding down a modifier and dragging left or right (up/down). Saves the user from having to use an UI slider or bash the bracket keys.

    On Steam, some of us actually prefer it on there. Floating license, safe DRM, auto updates... Its quite nice.
  • travisbaldree
    Options
    Offline / Send Message

    For masking, the first thought that comes into my head is some kind of combo.
    1st being, the traditional photoshop masking approach with masking built into every layer, off by default (this has been added to substance painter as well) .
    2nd being a something we see in zbrush, where you can paint a temporary mask and then texture paint around it, then deselect. Basically an inverse of the photoshop selection tools but more geared for the 3d workflow. The nice thing about this approach is that you could build on top of it to auto mask based on cavity, ao..ect

    One other thing I found incredibly useful is how some applications added an opacity/brush size control just by holding down a modifier and dragging left or right (up/down). Saves the user from having to use an UI slider or bash the bracket keys.


    What modifier would you prefer for the opacity/size? One, with control for opacity bound to y axis and size to x? Or a separate bind for each?

    Your 2nd masking suggestion was what I was planning on (with the ability to figure poly-selects into the painted mask).
    I'll start thinking about how best to make the first one work. I think I'll probably need to get project files nailed down beforehand (which is pretty much the next thing on my list right now)

  • Dataday
    Options
    Offline / Send Message
    Dataday polycounter lvl 8
    What modifier would you prefer for the opacity/size? One, with control for opacity bound to y axis and size to x? Or a separate bind for each?

    Your 2nd masking suggestion was what I was planning on (with the ability to figure poly-selects into the painted mask).
    I'll start thinking about how best to make the first one work. I think I'll probably need to get project files nailed down beforehand (which is pretty much the next thing on my list right now)

      Best Two options,
    1. Control + drag and control + shift + drag (size, strength/opacity)
    2. Pick up from 3D Coat and Modo (sorta, they only do size with control + drag doing strength/opacity). This means tie it to right mouse button (aka side button on wacom pen). Left and right drag = size, up and down drag = strength/opacity. To be honest I prefer this one more, but either one works and is easy to work with.


    Of course this means changing the navigation style, which I think honestly has to happen. The photoshop feel doesn't translate well to 3D painting workflows.
    If you want to save a modifier key or button, you could just have dragging on empty space the way to rotate with a border (see zbrush's viewport border: https://i.ytimg.com/vi/Auk3mKdKEwg/hqdefault.jpg ) that allows the same rotation behavior in case a mesh item covers the entire viewport (you would click and drag on the border in that case, since no empty space is available).

    The other more conventional approach is just make use of the well established: Alt+mouse/wacom pen's 3 buttons for rotate, pan and zoom.
    For example:   alt + left click = rotation, alt + middle click = pan, alt + right click = zoom. This basically makes the mouse or wacom pen the primary mode of navigation with just one modifier key used. Hold down on one hand, let the other do the rest of the work.

    This can free up the space bar for some kind of pop up menu or pie menu which you can pack all sorts of UI widgets and options within, also useful for the cintiq/tablet user who does not make full use of a keyboard but rather the buttons on the display itself.




  • thomasp
    Options
    Offline / Send Message
    thomasp hero character

    You can paint directly to the 2d canvas/layers with an optional texture-view (which is shown in the video partway through) - all 3D tools work on the 2d canvas.

    I'm very much actively working on this so implementing common requests is right in line with what I'm trying to do -

    The main drawback to not using Steam is that I can't really keep you updated easily (and I update a LOT) - let me poke around and see if there's any other way I can reliably patch stuff that doesn't require Steam (and doesn't take too much implementation time for me)


    re: paint on 2D canvas with the same toolset - sounds great!

    - another item on my wishlist for 3d painting apps is layer styles a la photoshop. these can be so helpful in building up detail under the brushstroke (set to outer glow, bevel, etc or combinations of that).
    - do you have a smudge tool in there? pretty indispensable for painting in my opinion although the makers of the majority of 3d painters seem to disagree. and if they add it then it usually can't blend colors like photoshop's does, making it kinda pointless (for painting)
    - adjustment layers, at least a basic set or a unified one to alter colors, saturation, levels of everything below them in the layer stack
    - when projecting stencils/images down onto the model it would be great to have a warp function so you can tweak/displace the stencil image on the fly to acommodate the shape of the model underneath
    - is there an option for angle based auto-masking for painting/projecting? prevents the paint from streaking across surfaces that face away from the camera. for reference: Mari has that
    - can you paint across multiple meshes using different materials in the scene?
    - is there an option to import/paint on UDIM's / multiple texture tiles? not suggesting you go and compete with Mari here but an implementation with a limited scope would certainly be helpful - see mudbox as a reference
    - out of interest: how GPU dependant is your software? do you develop with a specific manufacturer in mind? a lot of 3D apps in general seem to be geared towards nvidia and becomee a bug & crashfest on AMD. how portable is it intended to be - windows-only or intended for the future as a multi-platform application?

    shame about the steam requirement but understood. making the tester download zip files seems perfectly reasonable to me - coupled with dismissing bug reports that come in with old build numbers - but probably not worth the extra effort for a few of us when you should be focusing on the app itself. hope you do plan on distributing the finished product also outside steam though. i mean which company that is not a garage shop goes through that when acquiring licenses?

  • PolyHertz
    Options
    Offline / Send Message
    PolyHertz polycount lvl 666
    Some immediate thoughts from about 30 minutes messing with it:

    -It eats a ton of GPU processing power both when minimized and when idle (this is on a Geforce 650, so low-end, but shouldn't matter).
    -Not a fan of the navigation. Works fine in the 2D viewport, but not so well in the 3D one. Modo/Sculptris navigation would be my preference, but really fully customizeable navigation is the way to go.
    -Navigation should rotate around last point on mesh brush was used on instead of the pivot, at least as an option.
    -Standard round brush isn't smooth (spacing doesn't matter), this is very apparent when painting at lower resolutions.
    -Needs an option to turn off texture filtering the viewport for low-spec work.
    -No way to enable double-sided textures for alpha painting?
    -Sharpen seems to have a bug with Undo, where if you undo a sharpen stroke and then go back over the same area it'll be double/triple/etc. sharpened, as if the sharpening was never undon at all.
    -Not really sure what Direct Selection is supposed to be used for in its current implementation?
    -Painting a strait line in 2D view can be done by holding shift, but what about the 3D view?
    -Blur brush strength is very weak (in PS the blur brush is useless too, instead use the smudge tool with scattering at about 30% . Or better yet, use this with Paint Tool Sai to see how a truly high quality blur brush works)

  • JedTheKrampus
    Options
    Offline / Send Message
    JedTheKrampus polycounter lvl 8
    I like shift+drag for opacity/size modification so maybe you should make it user-configurable.
  • travisbaldree
    Options
    Offline / Send Message
    Thanks for the help, all! Almost too much stuff to answer, but for bugs that were reported, I'm on 'em, and I'll try to do an early pass through all the low hanging fruit I can get on the feature side to thin things out.

    Question answers first -
     out of interest: how GPU dependant is your software? do you develop with a specific manufacturer in mind? a lot of 3D apps in general seem to be geared towards nvidia and becomee a bug & crashfest on AMD. how portable is it intended to be - windows-only or intended for the future as a multi-platform application?
    It isn't. It's using the same core as my game engine, and the last release supported OpenGL, DX9, DX11, PS4, and XBox One. Right now I'm only bothering with DX11 for this, but if it goes anywhere I'll make sure it stays up to snuff on the others. (well, excepting the consoles)

    Not really sure what Direct Selection is supposed to be used for in its current implementation?
    If you have a multi-material mesh, it's useful for isolating a specific sub-material without having to choose it from a dropdown.

     can you paint across multiple meshes using different materials in the scene?
    At present, no - but it's something I could add with a checkbox (or dropdown?) option. It's currently bounded by material, not submesh. It's most straightforward to enable bridging mesh/materials with the projector (like a couple lines of code!) so I'll do that first.

    GPU processing - because it runs FPS unbounded if you have a reasonably decent GPU it can run hot. I'll make it 'spin' on empty scenes and minimization so that it doesn't go bonkers with the frames. I have a limiter in there, but I'll make it more aggressive on empties and extremely aggressive on minimization.

    Standard round brush isn't smooth (spacing doesn't matter), this is very apparent when painting at lower resolutions.
    I think this has to do with bilinear filtering down to the smaller brush size from source texture, and it gets ragged. I think I need to implement dynamically rendered 'default' non-texture brushes ala Photoshop with a hardness slider.

    Navigation: 

    So, I think in the short term, I'll make a  '3d-focused' navigation scheme and keep the current one as '2D-focused'.  My workflow for painting is pretty dependent on Alt for colorpicking and space for pan, and I start a lot of strokes in 'blank space' and then ease them onto the mesh (especially for alpha painting), so using ALT as a nav modifier or dragging in empty space breaks my basic workflow.

    I'd like to map out the '3d-focused' workflow so I can implement it (again as a dropdown option). At a later time I can look into full key customization, which technically isn't difficult (I already support it), but is a test-case nightmare because of all the modifiers and crazy things  people can do, so getting a 'good' default 3d-oriented setup is the priority I think.


    So, my Intuos pen has the one button on the side (RMB) - at present, here's the 2d nav scheme

    RMB-drag : rotate
    SPACE-drag : pan
    SPACE-RMB-drag : zoom
    LMB : paint

    which gets me down to one left-hand modifier that is consistent with photoshop behavior for the most part -

    What's the consensus of modifier to use for this? Alt? If so, what would you move the color picker to?




  • Dataday
    Options
    Offline / Send Message
    Dataday polycounter lvl 8

    So, my Intuos pen has the one button on the side (RMB) - at present, here's the 2d nav scheme

    RMB-drag : rotate
    SPACE-drag : pan
    SPACE-RMB-drag : zoom
    LMB : paint

    which gets me down to one left-hand modifier that is consistent with photoshop behavior for the most part -

    What's the consensus of modifier to use for this? Alt? If so, what would you move the color picker to?

    For reference, a few applications that I know of with some kind of alt + mouse/pen button navigation are:
    Maya, Modo (settings option), Unity, Unreal Engine 4 (one option), Lumberyard/Cryengine, Substance Painter, 3D Coat (semi-optional), Mari (settings option)... There is definitely a bit of convention at play which will make TetraPaint easy to pick up if that navigation approach is already built into muscle memory. =)

    Hmm regarding color picker.... for something like that I wonder if it would be better to just have it listen for a normal key press rather than a modifier. For example, "C" (whatever is easier to remember/access). Held down = color picker and/or press once to get color underneath the brush. This would still free up the modifier keys for things like blur, sharpen or quick mask. Ctrl is used by zbrush for their masking (or subtracting a mask), so a lot of us have that kind of built into our heads already, and shift usually for smoothing (blur, sharpen..ect).


  • PolyHertz
    Options
    Offline / Send Message
    PolyHertz polycount lvl 666
    The problem with the alt+lmb/mmb/rmb control setup is that it's not as easy to use with a tablet stylus, especially off brand tablets where the stylus buttons can vary in quality. It's great for mouse users, but how many people paint with their mouse?

    This is the navigation setup I use in 3D-Coat:
    rotate: alt+lmb
    Zoom: alt+ctrl+lmb
    Pan: alt+shift+lmb (also have it setup to work with Spacebar for when in 2D view)

    For color picking / eyedropper, Zbrush uses "C" and 3D-Coat uses "V". Personally I don't think it matters that much as long as the button is easily accessible. Also masking like in ZBrush with ctrl (as Dataday suggested) would be amazing, but I think it should be used for Quick Masking instead of actually painting the real layer mask, with a function where the user can convert it to a real layer mask afterwords.
  • Dataday
    Options
    Offline / Send Message
    Dataday polycounter lvl 8
    PolyHertz said:
    The problem with the alt+lmb/mmb/rmb control setup is that it's not as easy to use with a tablet stylus, especially off brand tablets where the stylus buttons can vary in quality. It's great for mouse users, but how many people paint with their mouse?

    That's the first time I have ever heard anyone say that particular navigation method is not easy to use with a tablet pen, its practically made for pen tablet/cintiq workflow. Less mental juggling, less button combos on a tablet, puts the focus on the pen itself... and most common navigation mode between applications.

    An argument can be made for off brand tablets however(namely the ones with UC-Logic digitizers or microsoft's n-trig found on surface)... The UC-Logic digitizers found in Monoprice, Huion, Yiynova..ect are the closest chinese alt-brand competitor to wacom. Thankfully the modern ones adapted to pens with two buttons on the side, so that just leaves the surface (n-trig) pens with one button. The surface will not have a dedicated gpu, but use intel's integrated graphics. This is really not ideal for something like this to be honest, nor would it be all that commonly used (for 3d painting).

    Differences in navigation though can easily be fixed when you have the ability to change keymap... but the baseline approach should hopefully be the most commonly used among other applications, thus making it far more accessible and "quick to pick up".

    On everything else you said though (masking, color pick), *thumbs up*.
  • PolyHertz
    Options
    Offline / Send Message
    PolyHertz polycount lvl 666
    I actually use a UC-Logic tablet, and yea it has two buttons on the side which I have mapped to MMB and RMB, but they can be a bit finicky with the amount of pressure needed to register a click. But even when I used Wacom never found it that comfortable. At the very least, seems Pixologic agrees with me :p
  • Dataday
    Options
    Offline / Send Message
    Dataday polycounter lvl 8
    PolyHertz said:
    I actually use a UC-Logic tablet, and yea it has two buttons on the side which I have mapped to MMB and RMB, but they can be a bit finicky with the amount of pressure needed to register a click. But even when I used Wacom never found it that comfortable. At the very least, seems Pixologic agrees with me :p
    Have you tried getting a different UC-Logic pens? A lot of non-wacom stuff can feel a bit like knockoffs from china, so the quality isnt exactly top notch.

    Regarding Pixologic, they are their own unique beast. Being local I have the pleasure of knowing a few of their staff. One of the inspirations for their design choice was emulating the real world art desk/sculpting environment. Not entirely sure how that translates to every design choice they made, but I guess you can see it with the layout at least. Also this would have to be based on Zbrush's original concept, which was 2.5d canvas painting, not necessarily what it is today.

    Anyways I would argue they had the luxury of attempting to be drastically different in their control scheme... since they had no real competition for the digital sculpting market. So whether you liked their controls or not, whether they were bad or good, you really didnt have much options at the time. The same cant really be said for 3D texturing. That market has already been established and there are lots of choices out there.

    Food for thought.
  • travisbaldree
    Options
    Offline / Send Message
    Here's what's up:

    DONE:
    *Fixed blur/sharpen undo/redo bug
    *Fixed postfx scale issue in texture preview modes
    *Added filtering toggle
    *Added double-sided toggle
    *Reduce GPU load on empty scene/minimize
    *Shift-line drawing now works in 3D view, and also point-to-point style
    *cross-material painting
    *fixed scatter property not working property
    *imported stencils aren't at -50% rotation initially

    NEXT UP:
    *Texture creation dialog
    *Alternate navigation style
    *Alpha channel import

    Once my in-progress and next-up are done I'll pop up a build (probably tomorrow?)

  • badmouse
    Options
    Offline / Send Message
    badmouse polycounter lvl 8
    Looks great! one recommendation is add the classic Smudge Tool, works really different to the Blur Tool.
    Also shortcut customization ! Lots of hand paint style artist use Brush, Smudge, Eyedropper and Eraser Tool.

    For example Substance Painter have those tools but the shurtcut for Brush is "1", Eyedropper  is "P", Eraser and Smudge haven't shortcut and you can't add one.

    When you work with one hand in the keyboard and other with your Wacom pen, shortcuts must be close for a fast operation, "1" and "P" really sucks, in case of Photoshop when you use the Brush Tools, the Eyedropper  Tool is Alt + click. I believe if your program is so close to Photoshop interface, you are going to choose the same shortcut.

    Little things make better experience to the users, everybody looks for quick, easy operation and quality.

    Good look you it, the soft looks really promised :)
  • myclay
    Options
    Offline / Send Message
    myclay polycounter lvl 10
    for navigation I prefer this setup where you don´t have to use the pen buttons;

    leftclick drag (on empty space) -> rotate
    alt + leftclick drag up-down -> pan
    alt + leftclick drag up-down - release of alt -> scale

    a wish; obj import would be great
    possible bug;
    currently Tetrapaint can´t overpaint UV Islands and you will get line seams.




  • Dataday
    Options
    Offline / Send Message
    Dataday polycounter lvl 8
    Not trying to be rude,  but avoiding the pen buttons is kind of self defeating. Its like saying, I love the windows version of a mouse but hate all those extra middle click and right click buttons.

    The side buttons on a digitizer pen are one of the most amazing parts about it. I highly recommend adapting to them, you are missing out on a very wonderful thing.

    Cheers
  • Scruples
    Options
    Offline / Send Message
    Scruples polycounter lvl 10
    @Dataday I need to alter the way I'm holding the pen to press the buttons, very uncomfortable (for me).
  • Dataday
    Options
    Offline / Send Message
    Dataday polycounter lvl 8
    Scruples said:
    @Dataday I need to alter the way I'm holding the pen to press the buttons, very uncomfortable (for me).
    Are you holding it like this by any chance?


    I want to say I am joking, but how some hold a wacom pen is pretty important in regards to button accessibility. Some habits die hard....
  • PolyHertz
    Options
    Offline / Send Message
    PolyHertz polycount lvl 666
    @Dataday Yea the Pixologic guys certainly had a unique vision for ZBrush when it was first being designed. It's a shame that 2.5D didn't really start to take off for games until Naughtydog artists started showing it off in their texture work (and now everyone just uses Substance Designer instead).

    Anyhow...your last two posts; no need to be so defensive. not everyone is going to like the same control scheme. You like the Maya setup, simple as that. I personally like the Modo setup. Neither are necessarily 'better' then the other. Again this is an issue that will not be resolvable for everyone until it becomes user customizable. I do think there should be multiple built in presets however like in 3D-Coat.
  • JedTheKrampus
    Options
    Offline / Send Message
    JedTheKrampus polycounter lvl 8
    I prefer programs where you can mostly or entirely use the pen tip (e.g. Zbrush, Sketchbook) because the side buttons make my RSI worse. But if you use the side buttons a little it doesn't completely disqualify you. Probably another thing you should make user-configurable.
  • travisbaldree
    Options
    Offline / Send Message
    myclay said:
    for navigation I prefer this setup where you don´t have to use the pen buttons;

    leftclick drag (on empty space) -> rotate
    alt + leftclick drag up-down -> pan
    alt + leftclick drag up-down - release of alt -> scale

    a wish; obj import would be great
    possible bug;
    currently Tetrapaint can´t overpaint UV Islands and you will get line seams.




    Try using the Projector brush - it's designed for that. J is the hotkey, and it's down and over one from the brush in the toolbar.
  • Scruples
    Options
    Offline / Send Message
    Scruples polycounter lvl 10
    Dataday said:
    Scruples said:
    @Dataday I need to alter the way I'm holding the pen to press the buttons, very uncomfortable (for me).
    Are you holding it like this by any chance?


    I want to say I am joking, but how some hold a wacom pen is pretty important in regards to button accessibility. Some habits die hard....
    I want to say I am joking, but saying you're not trying to be rude doesn't make you any less rude it just mean's you're being inadvertently rude, which is basically the description of an asshole.

    I was just stating my preference for the developer to consider.
  • Dataday
    Options
    Offline / Send Message
    Dataday polycounter lvl 8
    Scruples said:
    I want to say I am joking, but saying you're not trying to be rude doesn't make you any less rude it just mean's you're being inadvertently rude, which is basically the description of an asshole.

    I was just stating my preference for the developer to consider.
    I am not being an asshole, some people really hold pens that way (which carried over from childhood, see this link). I know a few in fact, but they are not digital artist either and do not have to worry about side buttons. You said and I quote "I need to alter the way I'm holding the pen to press the buttons". Meaning you admit that you are holding the pen some how differently. If you have a habit of doing so, then the habit is hard to break.

    I do not think wacom would have designed and kept pens with that design (side buttons) if the features were hard to use or that no one used them.

    There are two common ways to hold a graphic pen, much like how gaming mice have claw vs palm grip styles....
    One is where the thumb is the activator, in this form is like holding a coffee cup handle...
    see: https://www.previousmagazine.com/wp-content/uploads/2013/08/DSC_1234.jpg

    The other is with the index finger being the activator. This is the "Claw grip" equivalent of a mouse. Basically you take your thumb, middle and ring finger and touch the tips together, the pen goes in between with the index finger resting on the side buttons.
    See:
    https://c3.staticflickr.com/7/6181/6068491133_6ee67b27e5.jpg
    http://community.wacom.com/~/media/community/blog/august/wacom hidden manual part 1/pen grip 2.ashx?la=en&hash=2C713DB1D5100AF0DC7D0821546252EC15FAFEC6
     
    One of the worst ways to hold these pens, and its a bad habit that can be adjusted is this:
    http://i404.photobucket.com/albums/pp124/BarbaraC_photo/Intuous 3 Wacom tablet 9x12/Wacom_Intuos_9x12_1.jpg
    The grip is not precise and you lose easy access to the side buttons.

    As you can tell I take pen grip quite seriously, and notice these details. So I am not trying to put you down... but rather shed up some like on habits as well as proper grips tied to graphic pens.




  • Scruples
    Options
    Offline / Send Message
    Scruples polycounter lvl 10
    Sorry for the previous thread de-rail Travis, +1 for adding an alternate control scheme, but I'd rather the new control scheme be the default or the alternative control scheme might become useless as it is in Blender. Oh, and if it was possible to color pick from other windows/desktop that would be just cool beans.
  • PolyHertz
    Options
    Offline / Send Message
    PolyHertz polycount lvl 666
    Yea, lets get this discussion to be more constructive.

    Putting aside the primary key combination for a second, what else is important in a modern navigational setup? Some thoughts:

    -Both Trackball and Standard rotations
    -Rotation angle snapping (ZBrush alt+shift+lmb, also available in 3D-Coat, Blender, and Sculptris)
    -Rotation and Zoom cursor inversion (pull vs push)
    -Focus/Frame (for selection / all / pick point)

    And on the subject I mentioned before about presets, here's a basic rundown of whats currently being used by most 3D apps:

    Maya / Cinema4D / Mari / SubstancePainter / Unreal4 / Unity :
        Rotate =    alt+LMB
        Pan =        alt+MMB
        Zoom =        alt+RMB
    Modo / Lightwave / Sculptris:
        Rotate =    alt+LMB
        Pan =        alt+shift+LMB
        Zoom =        alt+ctrl+LMB
    ZBrush:
        Rotate =    LMB
        Pan =        alt+LMB
        Zoom =        alt+LMB + release alt
    Max:
        Rotate =    alt+MMB
        Pan =        MMB
        Zoom =        alt+ctrl+MMB
    Blender:
        Rotate =    MMB
        Pan =        shift+MMB
        Zoom =        ctrl+MMB
    Houdini:
        Rotate =    LMB
        Pan =        MMB
        Zoom =        RMB
    Wings3D:
        Rotate =    MMB
        Pan =        Arrow keys
        Zoom =        MMB Scroll
  • travisbaldree
    Options
    Offline / Send Message
    Awesome. Thank you!
    Trying to wrap up for a build tonight. Here's what's done : 

    DONE:
    *Fixed blur/sharpen undo/redo bug
    *Fixed opacity issue with projection painting that caused darker paint (and made projection normal painting nearly binary)
    *Fixed postfx scale issue in texture preview modes
    *Added filtering toggle
    *Added double-sided toggle
    *Reduce GPU load on empty scene/minimize
    *Shift-line drawing now works in 3D view, and also point-to-point style
    *cross-material painting
    *fixed scatter property not working properly
    *imported stencils aren't at -50% rotation initially
    *Alpha channel import
    *Smudge tool has been added


    NEXT UP:
    *Texture creation dialog
    *Alternate navigation style(s)



  • throttlekitty
    Options
    Offline / Send Message
    Wow, looks fantastic! There was some talk about masking, so here's my thoughts.

    I really like the stencil feature you have, looks a lot like ZB. It would be nice to instead paint by color or alpha with it, that you could paint a mask out from it. +1 to drawing a curve to snap the brush to for tricky strokes. Would it maybe possible to mix these two? Say I had an image of a French Curve, invoke some maskCurve function where we project a curve based on the stroke biased by some edge detection on the stencil image?
  • travisbaldree
    Options
    Offline / Send Message

    Ooookay - it's late, and I didn't quite make monday. But close.
    Version .38 is up - if you exit and restart Steam it should patch (if it hasn't already)
    I'll go through my backlog of emails and send out keys to new requesters now that this version is live.

    Changes:
    *Fixed blur/sharpen undo/redo bug
    *Fixed opacity issue with projection painting that caused darker paint (and made projection normal painting nearly binary)
    *Fixed postfx scale issue in texture preview modes
    *Added filtering toggle (options menu)
    *Added double-sided toggle (options menu)
    *Reduced GPU load on empty scene/minimize
    *Shift-line drawing now works in 3D view, and also point-to-point style
    *cross-material painting (check 'bridge materials' on the brush toolbar up top)
    *fixed scatter property not working properly
    *imported stencils aren't at -50% rotation initially
    *Alpha channel import
    *Smudge tool has been added (by popular demand!)
    *Texture creation from the File menu
    *Alternate navigation style(s) in the Options menu - select between 'standard' and '3D-style' - which uses Maya conventions.

    Good news! In order to do the nav styles, I basically did all the grunt work for full control customization throughout, including hotkey tooltip updates, the whole works. I just need to add a dialog where you can enter new commands at will and resolve conflicts, and it's done - all the config files for your settings even get saved (it's basically what's happening when you switch between modes)

    Barring bugs (which may happen - a lot went in here, and a lot of it was pretty complicated, especially regarding cross-material painting) I'll move on to the control config dialog, project files, and masks next. Then probably things like whole-image blur/sharpen and adjustment layers or options. 

    Thanks all! And goodnight :)

    Travis
  • myclay
    Options
    Offline / Send Message
    myclay polycounter lvl 10
    @travisbaldree
    thanks for the tip with the projector brush to overpaint seams.

    bug;
    Eraser works only when there is more than one Layer available -
    but the user can paint ontop of Layer 1 (while the layer modes are deactivated)

  • travisbaldree
    Options
    Offline / Send Message
    myclay said:
    @travisbaldree
    thanks for the tip with the projector brush to overpaint seams.

    bug;
    Eraser works only when there is more than one Layer available -
    but the user can paint ontop of Layer 1 (while the layer modes are deactivated)

    Already fixed in this build! :) (.38)
    And the projector should work considerably better now.
  • animax
    Options
    Offline / Send Message
    animax polycounter lvl 15
    Hey Travis,

    Great work on Tetrapaint! Love the simplicity of the application.

    Seeing some good progress here, I would love to try it out.
  • PolyHertz
    Options
    Offline / Send Message
    PolyHertz polycount lvl 666
    Just tried out the new build. That's some really great progress! Everything added in the update seems to work great so far.

    Anyhow...
    Performance;
        -Minimized; large activity spikes once every 5 seconds or so.
        -Idle empty scene; Uses 1/3 of a Geforce GTX 650's processing power.
        -File/Edit/Options/etc. menu open; No gpu processing power used, and no spikes like when minimized.
        -Non-empty scene without any user interaction; Uses 75% of a Geforce GTX 650's processing power, drops below 50% if all effects are disabled.

    Wires;
        -Can't find a way to enable for 2D view?
        -Wires displayed (Options > Show Edges) are spotty/uneven. Rather important when doing low spec work where texture resolution limits baked wires maps.
       
    Navigation;
        -Could use an option to turn off navigation smoothing, ie. when the cursor stops the viewport should immediately too.
       
    Direct Selection;
        -Ability to select not just meshs, but also mesh elements (continuous Geometry), UV Islands, and individual faces (brush/marquee based). These selections could then be used in a number of ways such as Hide Selected Geometry, Isolate Selected Geometry (ie. inverse hiding), or Generate Mask from Selected Geometry.

    Oh, and I'm going throw my hat in with @scruples on letting the color picker work anywhere on the screen, since that would mean we can use any image viewer we wanted (kuadro, PureRef, etc.) without taking roundabout methods of importing the colors. Seriously, that would be awesome.
  • Burpee
    Options
    Offline / Send Message
    Burpee polycounter lvl 9
    Looks awesome !
    I'd definitely support this !
  • travisbaldree
    Options
    Offline / Send Message
    Hey Polyhertz -

    For the time being if you want a real UV map in the 2D view - you can render one out from the layer menu or channel menu, import to a layer, and see in all views. I'll investigate ways to show it automatically in the 2D view that make the most sense.

    Navigation smoothing - for now if you tap the pan key it immediately halts any smoothing in progress, but I can just add an option to have no smoothing.

    On the GPU power front, at present in a populated scene I let it roll up to 120FPS. Unpopulated I let it roll to 60.
    Adding a user-selectable VSYNC option could probably keep you pretty safely capped and nominal, but I have tended toward keeping it off, so that any drops in FPS don't have a sudden dive on drawing response.
  • travisbaldree
    Options
    Offline / Send Message

    animax said:
    Hey Travis,

    Great work on Tetrapaint! Love the simplicity of the application.

    Seeing some good progress here, I would love to try it out.
    Hey Animax - shoot me an email at travisbaldree@gmail.com
  • travisbaldree
    Options
    Offline / Send Message
    Polyhertz - I think the breaks you're seeing in the wireframe are from FXAA - I'll look into rendering those in a later pass and skipping it.
  • PolyHertz
    Options
    Offline / Send Message
    PolyHertz polycount lvl 666
    Good to hear. It's much nicer to be able to see wires that are texture resolution independent and hotkeyable.
  • Dataday
    Options
    Offline / Send Message
    Dataday polycounter lvl 8
    Gotta admit, you work fast. =)
  • travisbaldree
    Options
    Offline / Send Message
    I'm wrapping up additions to the brush engine now ('standard' brushes are Photoshop style, i.e. generated dynamically with a hardness slider, brushes can be cloned, and 1-3 pixel brushes aren't a too-sharp mess) - but while I do that...

    I was looking into getting dropper color from the desktop and there seem to be a couple of challenges. Every example I've found of it involves a weird control scheme that works around some of the nature of windows - i.e. you have to HOLD DOWN the mouse button in the window, then I do something called a Capture to keep mouse events tied to my window, and then you RELEASE on the color you want, which seems totally counterintuitive. I'm looking into other ways, because that just seems awful.
  • CreativeSheep
    Options
    Offline / Send Message
    CreativeSheep polycounter lvl 8
    Dataday said:
    Scruples said:
    @Dataday I need to alter the way I'm holding the pen to press the buttons, very uncomfortable (for me).
    Are you holding it like this by any chance?


    I want to say I am joking, but how some hold a wacom pen is pretty important in regards to button accessibility. Some habits die hard....
    That is a questionable way to hold pen; many more things I could say but for conservative reasons, I won't.
  • travisbaldree
    Options
    Offline / Send Message
    Build rev .39 is live 

    *New dynamic basic brushes - creating a new brush is now PS style, with controllable 'hardness', dynamically generated. Default brush set revised to use this.
    *Import brushes to create 'texture' style brushes (what Add used to do)
    *Brushes can now be cloned
    *Drawing in texture view has better precision - fixes for texel offset issues at varying scales.
    *Drawing with 1-3 pixel brushes isn't a sharp, crinkly mess now (thanks to new brushes)
    *Fixed a spacing issue that could cause spacing to sometimes be slightly erratic on brushes
    *Wireframe mode should be more clean and solid
    *Fixed some buttons and controls that could be clicked through brush dropdowns.


  • PolyHertz
    Options
    Offline / Send Message
    PolyHertz polycount lvl 666
    The new soft brushes seem to have an issue with the spacing system; if they are set to a low spacing % they become almost exactly like the hard brush.

    Wires are better. Not as clean as Max/Maya/etc. but better.
  • xCyborg
    Options
    Offline / Send Message
    xCyborg null
    WOW, Photoshop-like, that's a million dollar idea, PS should had that ages ago. I would love to test it.
    So rare to see a Unity dev pull that off, May I ask what you used and how did you create that app?
    And can you add baking ability, like AO and whatnot?
13
Sign In or Register to comment.