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.
That seems to be my experience with Photoshop soft brushes too - based on the way they blend. I can play with the falloff ramp on the softness though to see if that makes a difference?
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?
So it's just C++ code and based off my current game engine (actually the game I'm working on now has 3D painting as part of it, so this grew out of it)
AO baking is already in there!
If you'd like to test, shoot me an email at travisbadlree@gmail.com
Actually yea, PS does something similar. I dunno...doing some side-by-side tests with similar settings, the TetraPaint soft brush just looks harder / less soft then in PS...
Actually yea, PS does something similar. I dunno...doing some side-by-side tests with similar settings, the TetraPaint soft brush just looks harder / less soft then in PS...
I'm doing the same tests - PS is softer - they have a funky ramp that is sinusoidal. I'm trying to replicate it now - it's definitely not-linear.
Really nice to see level headed approach to 3D software, no right click is the new left click Blenderisms or Zbrushisms, which is really relaxing thought, plain pragmatic approach.
Didn't read all the comments, but here are some thoughts based on watching OP video;
1. Is there any kind of reference image viewer? A sort of drawer where one could import images, for reference, color picking and such. This could be just a blank resizable window, with scroll bar, maybe even one image at time, and some keys/list to pick active image.
2. View controls. This sucks in any current 3d painting software IMO. Mudbox comes close to usable, it even has zoom to viewport. 3DCoat has shortcuts for main directions, and whatnot, but ZBrush for example is totally horrible in this sense.
3. View controls (continued) Stored views. It might not be for everyone, but for precision work, having views that one can return to is really useful. I could imagine something like this: have adjustable static center point, and distance to it. Then for example arrow keys / num pad to change to Front/Back, L/R, T/B views. Then a view picker window, where one could store predefined views that get saved to some mobile config file. Rotating around model can be very frustrating, after all one does see very little area of sphere without tumbling, and using hot keys to swap between views. Even better, having "free roaming view" and saved view would even better. Think about painting face, the press key to look it from side, then immediate back with one key press. In Zbrush, this is horrible, at best it has some hacky view storing methods that (at least used to) ruin grids and such.
4. Viewport. Also, I think all 3D painting software I've used fail in this; none have proper calibrated scene view, where views are relative to some ideal viewport. Think about 1:1 or 4:3 view that shows portrait of character from front view. Now, in most software, adjusting window size, or even worse, adding docked panels ruin this view. Horrible. It would be great to see this locked view frustum as edge in viewport (like in Maya camera). Then, when you reset tumbled, moved view, if for example can just reset to predefined front view. And sizing of view window, *would not affect view composition* - this seems to be ignored by mostly all software... just wonder why. Then, if one setups some specific views (if there was such option), next time if the same scene is opened, no matter what screen size, views show exactly the same framing. Imagine having stored stencil planes, face references floating next to face, view specific (aligned) reference/plane schematic images - these all would be able to be transferred from artist to artist or to different workstation intact. Sorry for too long day dreaming!
5. Emissive map channel in 3D view? Maybe I missed it.
6. Is the mirror option based on topology or position? Would be great to be able to paint at least non projection brushes on topologically symmetric models, that have slightly different pose.
7. Multi UV tile handling? Is there support for tiles outside 0-1 UV space?
8. Material / model management. Really hard to see exactly how everything works, but everything looks really promising.
Anyway, looking great, and really nice demo video (cool models too).
1. Is there any kind of reference image viewer? A sort of drawer where one could import images, for reference, color picking and such. This could be just a blank resizable window, with scroll bar, maybe even one image at time, and some keys/list to pick active image.
He's working on a way to let the color picker work anywhere on the screen, so you can use any image viewer you want
2. View controls. This sucks in any current 3d painting software IMO.
Mudbox
comes close to usable, it even has zoom to viewport. 3DCoat has
shortcuts for main directions, and whatnot, but ZBrush for example is
totally horrible in this sense.
There are currently two naviagation styles, one of which basically mirrors the Maya control sceme (alt+lmb/mmb/rmb), and full customization is coming.
Whew, hoped to get more in today, but I spent a silly number of hours dissecting the gradient ramp of photoshop brushes, measuring spacing, and comparing brightness swatches. Real fun! Anyway.
Ver .40
*Brushes now conform MUCH closer to PS brushes as far as hardness goes, and buildup over the stroke *Even more spacing fixes - mine was based on radius, PS was based on diameter, and now mine matches (And some erratic bits are ironed out) *dynamic brushes are now calculated on-request, or deferred, so adjusting hardness is now fast instead of laggy *Dynamic brushes have very subtle gaussian disturbance, ala PS *Fixed a startup crash on some desktop resolutions when maximized *Fixed some more cases where you could hover tooltips on a button that was underneath a panel *Blur, Sharpen, and Clone now interact properly with transparent regions of a 1-layer texture *Brush location projector now projects to a greater depth (less 'broken' looking rings on the size indicator in 3D mode) *Ensure (hopefully?) that at max zoomout you can still paint properly. *Always hide 3d projector when in 2d drawing area
6. Is the mirror option based on topology or position? Would be great to be able to paint at least non projection brushes on topologically symmetric models, that have slightly different pose.
7. Multi UV tile handling? Is there support for tiles outside 0-1 UV space?
Would be nice to test it!
Hey S-S -
Mirror is based on position, not topology -
UVs can be outside 0-1 space (although it's possible there would be some fun bugs for me to find as you paint across the border?)
If you'd like to test, shoot me an email at travisbaldree@gmail.com!
Brush strokes still seem lumpy, like there is a small amount of jitter being applied no matter what, and the dots themselves don't seem to be evenly spaced. If you move up/down the hardness slider with high spacing you can even see the dots moving around slightly in the stroke preview.
Brush strokes still seem lumpy, like there is a small amount of jitter being applied no matter what, and the dots themselves don't seem to be evenly spaced. If you move up/down the hardness slider with high spacing you can even see the dots moving around slightly in the stroke preview.
Hmm. Maybe screenshot what you're seeing? Basically the way PS works is that it 'stamps down' the image at the spacing % you specify. Default is 25%, so every quarter-of-a-width it will stamp. 1% of course is denser and smoother (but also darker in soft modes) You can try this out in PS and see the variation pretty easily with a straight vertical stroke, especially with a soft brush. So, high-spacing it will DEFINITELY be lumpy - as that's basically what it does - if you go high spacing in PS you'll see they stagger out too.
Here's a comparison - PS on the left, TP on the right. You can see my solid brush at 25% is a tiny bit lumpier, which is probably down to the antialiased falloff. I think they are slightly softer on theirs (almost positive, in fact) , which I'll attempt to tweak to resemble with a hair more softness.
Ah, I see what you're saying. Not positive if that's just an artifact of the preview itself or not - I'll look at how I'm handling the offset there from centerpoint. Basically as PS brushes become softer, they actually get larger than the actual brushsize. A 100pixel solid brush is actually 100pixels wide - but a 100pixel fully soft brush is 160 pixels wide. As the hardness changes the brush scale changes to compensate.
Pretty sure I have all the preview stuff worked out, and the base jitter you're seeing in preview eliminated, as well as other spacing issues in preview (they were preview only). I think that the lumpiness you're seeing on the 3d paint though has to do with lack of half-texel painting. From some scrutiny, I believe Photoshop does half-texel brushes, so I'm going to do some poking around to see if I can work it tonight
Great work with the app!, been playing a while now and as everyone I agree with the user configurable navigation and tools would be the most likely choice for making it available for old-fashioned workflows (draw outside for rotation, ALT click, etc...) Regarding performance, i've found issues while trying to paint 4K textures, the viewport becomes extremely laggy. While painting 1k textures there's no issue.
This is not a gpu or cpu as I'm on a workstation so i believe is due to the way the textures are loaded or the memory handling but i'm not that technical.
I think making it user configurable for all shortcuts and navigation should be on top of the list
Things like FLIP Y or Z axis while importing options and stuff could be in there too.
The propietary format could be a xml based file so it would point to the required files without increasing file size itself.
Great work with the app!, been playing a while now and as everyone I agree with the user configurable navigation and tools would be the most likely choice for making it available for old-fashioned workflows (draw outside for rotation, ALT click, etc...) Regarding performance, i've found issues while trying to paint 4K textures, the viewport becomes extremely laggy. While painting 1k textures there's no issue.
This is not a gpu or cpu as I'm on a workstation so i believe is due to the way the textures are loaded or the memory handling but i'm not that technical.
I think making it user configurable for all shortcuts and navigation should be on top of the list
Things like FLIP Y or Z axis while importing options and stuff could be in there too.
The propietary format could be a xml based file so it would point to the required files without increasing file size itself.
Great work
Yeah, 4k is tough in real 3d and not prebaked chunked out textures. it's basically a 4k movie getting uploaded to the GPU - crazy expensive. VERY GPU dependent as far as how fast it can push the textures up onto the card. I can do ok on my GTX 570 (although if I had a better card I imagine response would be considerably improved.) 2k textures seem snappy throughout.
User config is NEARLY the top of the list - this sub-texel pixel accuracy on the brushes has it beat out though. If you felt like opening wordpad you could even customize the shortcuts now, because they ARE configurable. I'll get to that dialog when these brushes are smoothed out.
You're in luck though - you CAN flip the y/z axis when importing. Pull down the Options menu and check 'Z-Up mode' then import your mesh. Voila!
Got the sub-pixel accuracy working! Too tired to roll a build tonight, but tomorrow morning after I migrate it to non-brush tools, I'll put one up. Whee! Getting there.
Yeah, 4k is tough in real 3d and not prebaked chunked out textures. it's basically a 4k movie getting uploaded to the GPU - crazy expensive. VERY GPU dependent as far as how fast it can push the textures up onto the card. I can do ok on my GTX 570 (although if I had a better card I imagine response would be considerably improved.) 2k textures seem snappy throughout.
Nice work!
Have you considered doing all the pixel operations on GPU? That would avoid a lot of this data transferring. It's a trend to keep latency low. Using the stencil buffer you can mask regions well, and the graphics cards have high precision color formats.
Alternatively make use of tiling, chunk the image in tiles and only upload the ones that got "dirtied" by the brush. That way you only pay higher costs for large brush usage, or "full image" effects. You can encode "dirty masks" in bit-streams (one bit per tile) and have each layer get its own dirty bitstream. Then you only need to experiment with a good tile-size.
What ive tried so far has been awesome. Hoping to get more time with this soon.
A couple of notes:
Would love to have uv2 support and be able to set it per map. Could be cool to have diffuse in uv1, than have a secondarry diffuse in uv2 that can have its own blend mode. Im thinking about, for example, the ability to paint your own lightmaps. But definitely a uv2 option i believe would be useful.
Any plans for selection modes? Marquee, lasso, etc.
Could we possibly have light intensity or the ability to add more lights?
I know you are still early in development and still pulling feedback, but i still feel like i cant avoid photoshop using this. It would be fantastic if this became a complete replacement.
Thanks for making this, im looking forward to seeing where it goes.
Yeah, 4k is tough in real 3d and not prebaked chunked out textures. it's basically a 4k movie getting uploaded to the GPU - crazy expensive. VERY GPU dependent as far as how fast it can push the textures up onto the card. I can do ok on my GTX 570 (although if I had a better card I imagine response would be considerably improved.) 2k textures seem snappy throughout.
Nice work!
Have you considered doing all the pixel operations on GPU? That would avoid a lot of this data transferring. It's a trend to keep latency low. Using the stencil buffer you can mask regions well, and the graphics cards have high precision color formats.
Alternatively make use of tiling, chunk the image in tiles and only upload the ones that got "dirtied" by the brush. That way you only pay higher costs for large brush usage, or "full image" effects. You can encode "dirty masks" in bit-streams (one bit per tile) and have each layer get its own dirty bitstream. Then you only need to experiment with a good tile-size.
GPU : I have considered it, but as the layer stack grows and I need to compile it (and take into account adjustment layers) - I haven't come up with a good way to keep that offloaded - too complicated, too much data. I also have to sample from it for things like clone and smudge, so unless I find a way to basically implement ALL tools on the GPU I'm not sure exactly how. I have some weird ideas about having a duplicate local copy, and using a rendertarget to 'GPU-assemble' dirty regions on the GPU that I'm still turning over. We'll see!
I do keep track of the areas that are dirtied, only modify those, and attempt to have DX11 do subregion updates of only the dirties regions, but it makes only a minor difference, and all still a big upload hit, especially for brushes with low spacing and thus a higher update frequency.
Chunking is the only other alternative I CAN think of right now, although there's a lot of complexity to that too, and painting across the chunks (or cloning/smearing) - but more than that, UVs that cross chunks, which I haven't come up with any clever way to deal with as of yet.
Anyway, I'll keep poking at it And GPUs will continue to get more amazing.
What ive tried so far has been awesome. Hoping to get more time with this soon.
A couple of notes:
Would love to have uv2 support and be able to set it per map. Could be cool to have diffuse in uv1, than have a secondarry diffuse in uv2 that can have its own blend mode. Im thinking about, for example, the ability to paint your own lightmaps. But definitely a uv2 option i believe would be useful.
Any plans for selection modes? Marquee, lasso, etc.
Could we possibly have light intensity or the ability to add more lights?
I know you are still early in development and still pulling feedback, but i still feel like i cant avoid photoshop using this. It would be fantastic if this became a complete replacement.
Thanks for making this, im looking forward to seeing where it goes.
Selection modes definitely on the list, as are adjustment layers.
I'm not sure I'll EVER be able to supplant Photoshop with my one-man-fun-side-project, but my aim is to try to get big-ticket stuff that requires me to jump back and forth taken care of. If you had to list your most important features that you'd want to make it as standalone as possible, what would you list?
Mine are: 1) project files that maintain my layers and fx between sessions 2) Adjustment layers and whole-image fx (blur,sharpen,noise,etc.) 3) Masking/selection w copy & clear 4) moving/nudging layers
If you had to list your most important features that you'd want to make it as standalone as possible, what would you list?
*proceeds to list all the most complex Photoshop features*
I'd like to see really strong PSD support. Even if the app becomes a Photoshop replacement, most clients are still going to want PSD files.
I've poked around and there are some libraries I can use to do that. The most complicated part is probably re-saving them after modification and preserving whatever weird stuff PS might (potentially) keep in there.
*Sub-pixel accurate painting! Should get rid of those lumpies, much smoother strokes *Various improvements to stroke preview - doesn't 'jiggle' when hardness changes, now previews line thickness also, and has sub-pixel accurate rendering as well *Hardness can be adjusted with the PS hotkeys { and } *Texture pane zoom can be adjusted with the PS hotkeys SHIFT+ and SHIFT- *Color dropper can now get desktop color! Works just like photoshop - select the actual dropper tool, press and hold the dropper, then release on the color you want. Will update the color in realtime as you drag *Normal color dropper/alt also does continuous colorpick on hold, not just on press *Stroke spacing now responds to size changes based on pressure *Brush hardness tweaked to be even closer to PS (slightly softer on the most hard setting)
Brush strokes are MUCH cleaner with this build. There does seem to be some sort of paint intensity issue though. A light dot in PS will almost be a solid one in TetraPaint...video: https://dl.dropboxusercontent.com/u/4210886/TetraPressure.flv Also, the color picker works correctly if started from the UI, but not if done via hotkey (holding or otherwise).
Brush strokes are MUCH cleaner with this build. There does seem to be some sort of paint intensity issue though. A light dot in PS will almost be a solid one in TetraPaint...video: https://dl.dropboxusercontent.com/u/4210886/TetraPressure.flv Also, the color picker works correctly if started from the UI, but not if done via hotkey (holding or otherwise).
Yes, that's the way the color picker has to work for desktop - PS is the same way. (at least I'm pretty sure it is)
Wait, maybe you're right. I'll look into it.
Also, my PS brush doesn't behave that way - it looks the same as TP. There must be another setting at play - pressure sensitivity override? Opacity slider? (I can't see the PS value in your video)
The only setting other then what was shown in the video is Opacity set to pressure (flow control is off. Preview didn't show fadeout correctly though cause it hadn't refreshed between me switching from mouse to tablet), and no custom settings for my tablet either. In the video I was pressing very lightly on the stylus for both apps. Buildup is crazy fast in Tetra, but I can build up the paint gradually in PS.
The only setting other then what was shown in the video is Opacity set to pressure (flow control is off. Preview didn't show fadeout correctly though cause it hadn't refreshed between me switching from mouse to tablet), and no custom settings for my tablet either. In the video I was pressing very lightly on the stylus for both apps. Buildup is crazy fast in Tetra, but I can build up the paint gradually in PS.
I'm using PS CS6 if that makes a difference?
Oh. You have min opacity set to full in TP - which means it isn't going to be pressure sensitive to opacity.
Basically, in PS you have it set to override pressure always which obliterates your min opacity settings in photoshop. It's that little toggle button up top with the checkerboard circle and a pencil.
If you slide the min opacity in your TP brush to 0 you should find it behaves the same as PS.
Eh? In the video I have it set to 0% as the minimum opacity, and 100% as the (maximum) opacity...Although the preview doesn't show the strokes start/end opacity at all for some reason...
Eh? In the video I have it set to 0% as the minimum opacity, and 100% as the (maximum) opacity...Although the preview doesn't show the strokes start/end opacity at all for some reason...
Oh! Ha! you have your pen stiffness set to 0. That means that the lightest touch is full strength. It defaults to 50%. setting it to 100% makes the pen super stiff - you have to exert full pressure to get opacity. That control doesn't exist in PS, but I hate having to tweak Wacom settings to adjust my stiffness so I added a per-brush setting.
I was just looking at your stroke preview which started at max size and opacity and didn't think about the stiffness setting.
There seams to be a bug or maybe its just the way projection works. If you paint on a new layer with the projection brush, then paint with another brush, the project brush strokes show above the newly painted strokes. This doesnt happen on the first/background layer.
There seams to be a bug or maybe its just the way projection works. If you paint on a new layer with the projection brush, then paint with another brush, the project brush strokes show above the newly painted strokes. This doesnt happen on the first/background layer.
Hmm - I'm not able to reproduce this - I'm in diffuse view, I make a new layer and select it, paint with a black projection brush in the 3D view, then select standard brush and white color, and paint a stroke over the top and it seems to work as expected - same result making the stroke in 2D view. Is there something else interesting about the setup? Or the blend mode that you're using?
I've noticed that the brush seems to skew quite a bit depending on
how the UVs are done. Here's a box with some skewed UVs, you can easily
see issues by simply laying down paint dots on just about any part of
it: https://dl.dropboxusercontent.com/u/4210886/badBox.FBX ...Seems it's not doing real projection? Just mapping the brushes position from the 3D view to 2D one and painting in there?
I've noticed that the brush seems to skew quite a bit depending on
how the UVs are done. Here's a box with some skewed UVs, you can easily
see issues by simply laying down paint dots on just about any part of
it: https://dl.dropboxusercontent.com/u/4210886/badBox.FBX ...Seems it's not doing real projection? Just mapping the brushes position from the 3D view to 2D one and painting in there?
It SEEMS like it's working correctly to me - here's a shot -
I painted right on a stretchy seam. The dot in the bottom left is using the projection brush (so it's 1-1 with the preview), and the top right is using a normal paintbrush (so it's all wonky since it wrote to UV space not screen space).
Is that not what you're seeing? Or not what you're expecting? Or are you just expecting the normal brush to act like a projection brush?
Yea I was expecting the normal brush to act like the projection brush, just instead of projecting from screen space it projects from the normal that the brush is following (of course while maintaining volume without stretching/streaking if its on the border of a sharp angle). That's typically how brushes work in 3D painting apps. 3D-Coat has a 'volume' setting which also makes the brush work radially in all three axis which can be pretty nice for more densely detailed geometry.
Gotcha - yeah, it actually (as you've observed) paints in real UV space because I like it for 'clean' diffuse painting where I know exactly how many pixels are getting pushed to the final texture. Maybe a toggle on the projector from screen-space to normal-space or something.
This has happened on 2 different machines. Desktop with an ati video card, and a laptop with a gtx 550. Left is painted on diffuse layer 1, right is on 2nd layer. Opacity is set to 43 and I laid to strokes with the projection in green, the one on red using the standard brush.
This has happened on 2 different machines. Desktop with an ati video card, and a laptop with a gtx 550. Left is painted on diffuse layer 1, right is on 2nd layer. Opacity is set to 43 and I laid to strokes with the projection in green, the one on red using the standard brush.
OK, that's fixed and live as version .42 How embarrassing! I should have caught that. That's what I get for using black and white in the transparency layer tests I run :P
did some testing with 0.42 version. Only doodling on supplied demo models, but here are some thoughts on feel/functionality of tools.
Edit: Well - it's easy to ask for features, any way great work so far! This could end up being a true alternative for quick texture painting.
Small issues 1. Couldn't get picker work Tried all kinds of Photoshoppy ways to set source, tried on layer and base layer of space pirate girl demo model. Maybe this could be clearer how it works.
2. Projection of brush dab from longer distance creates lines For example, with demo model space pirate girl, dolly far away, and drop one brush dab on center of torso, on cloth from front view. Dab is half solid, half line pattern filled. Not too big a issue, as this seems to happen only from far away position.
Questions 1. Multi channel painting Is it possible to paint diffuse+bump or any other combination at once? It seems like it's not possible at this stage. This would make big difference on non hand painted look models. It would be really neat to have bar, where d/n/e/s channel colors could be picked / shown.
2. Is it possible to branch per/model area/material stacks? It seems like not, but adding different stacks of channels for each texture would be nice. But this combined with multi channel painting can become horrible experience if not done properly.
Ideas 1. On spot color picker Could be same as now, but under cursor, invoked by key press. Color panel is already non-modal, so it could be just activated, then disable when clicked outside panel.
2. Lock camera rotation to main directions When rotating by pressing some modifier key (like shift).
3. Alternative background gradient / color Dark grey instead of light grey, or picker to pick one solid. This default setup looks really neat and Autodesky combined with PS like look, but different background color could be nice.
4. Lock lighting to camera toggle A mode when activated, lighting would be oriented in model space, instead of world space. Second click to release lighting back to world position like it was.
5. Ambient lighting / flat lighting Adding more ambient color allows flatter lighting mode, but it also brightens background. This would be nice, it wouldn't do that, even though it might be more expected behavior from PBR viewpoint.
6. Orthographic camera I always personally am looking for this on any software. Could be really helpful. Most of the time, I find that perspective cameras are more than often set to wide angle, which ruins working on faces and such from close distance, and in addition to that, it also reduces uniform surface area, when noses and other extrusions expand to fill canvas, it also is a problem for proper projection work.
7. Rotate around last stroke location. This is many times helpful, I find it that now rotating model moves area I'm focusing on too easily out of view.
1. Couldn't get picker work Tried all kinds of Photoshoppy ways to set source, tried on layer and base layer of space pirate girl demo model. Maybe this could be clearer how it works.
*Do you mean the color picker? Or the direct select tool? I'm not sure I'm following what you're trying to do -
2. Projection of brush dab from longer distance creates lines For example, with demo model space pirate girl, dolly far away, and drop one brush dab on center of torso, on cloth from front view. Dab is half solid, half line pattern filled. Not too big a issue, as this seems to happen only from far away position.
*Yeah, at extreme distances the interpolation can break down. I'm looking at other ways to quickly do projection that can avoid those kinds of artifacts. I basically render a UV map from perspective to a big texture, sample from that, and interpolate between the UVS, then lookup into a bilinear filtered version of your brush for painting, but there is probably some other, smarter way that I just haven't figured out yet.
2. Is it possible to branch per/model area/material stacks? It seems like not, but adding different stacks of channels for each texture would be nice. But this combined with multi channel painting can become horrible experience if not done properly.
*I'm maybe misunderstanding this, but every material can have different channels and layers -
And all your ideas sound like good ones! I'll add to my list
OK - took a bit longer than I'd planned because key remapping is boooooring and I played Dark Souls 3 instead this past weekend.
Anyway, version .43 is up -
*Key remapping! Available from the options menu. Note the previous 'standard & 3D-style' settings are still available. Press the 'Defaults' button in the remap dialog and you can select which default set to apply. Conflicts will show up in red if you double-map something.
*Colorpicker now works to grab desktop colors with hotkey as well, Photoshop style. Hold down the click and release over what you want. I.E. hold ALT, depress mouse button, drag over the desktop color, and release. Voila.
*You can now choose background styles from the Options menu (light vs dark for right now, but dark seems to be the consistent ask)
*Lighting no longer affects the backdrop
Current roadmap is selection/masking, project files, and investigating PSD support.
On customization / keymapping ; -For navigation, now that we can customize it do you think we could get a
way to set which direction the cursor needs to move for zoom/pan? -For key stacking purposes, instead of doubling up entries (like 'Zoom In 2D' / 'Zoom Out 2D'), it would probably be better to have a text entry field next to the command like 3DSMax does. -The current font used in the customize menu makes it somewhat difficult to read.
Background color is still affected by Bloom (tested on lighter background), even though lighting doesn't. Also, Effects on/off settings aren't saved between app sessions.
On customization / keymapping ; -For navigation, now that we can customize it do you think we could get a
way to set which direction the cursor needs to move for zoom/pan? -For key stacking purposes, instead of doubling up entries (like 'Zoom In 2D' / 'Zoom Out 2D'), it would probably be better to have a text entry field next to the command like 3DSMax does. -The current font used in the customize menu makes it somewhat difficult to read.
Background color is still affected by Bloom (tested on lighter background), even though lighting doesn't. Also, Effects on/off settings aren't saved between app sessions.
Yep, Bloom is a posteffect based on the primary target, so it'll always incorporate something from the background (unlike emissive).
I can tweak that font size up (presumably it's a size thing)
I may not mess with a text entry field for keystacking right now just to move on to more pressing macro-stuff.
I should be able to add a few radio buttons for axis flips, and also for dragging-in-empty-space rotations.
So I'm loving your app so far. It's fairly easy to use, i haven't read the manual, i just look at short cuts.
Some request though... 1. Can there be an option to see the uv wires in the texture window? 2. View to snap to 2d view, while you are holding shift and rotating the 3d view, like in zbrush or blender. 3. Marque select tools from photoshop, plus being able to cut, clone, by holding alt in the texture view.... 4. Shape tools 5. Possiblity to just have a 2d background where the user can assign a shade of gray, gradient and edit it 6. Can the brush engine have a shape engine? Like say say you have a circle, square, you can round the corners?
small harmless bug with a multi monitor setup, the following effects get activated when Tetrapaint is moved to another screen; Ambient Occlusion Glow Motion Blur Bloom
Replies
That seems to be my experience with Photoshop soft brushes too - based on the way they blend. I can play with the falloff ramp on the softness though to see if that makes a difference?
Actually I'm not a Unity dev - this is me -
http://rebelgalaxy.com
So it's just C++ code and based off my current game engine (actually the game I'm working on now has 3D painting as part of it, so this grew out of it)
AO baking is already in there!
If you'd like to test, shoot me an email at travisbadlree@gmail.com
I'm doing the same tests - PS is softer - they have a funky ramp that is sinusoidal. I'm trying to replicate it now - it's definitely not-linear.
Really nice to see level headed approach to 3D software, no right click is the new left click Blenderisms or Zbrushisms, which is really relaxing thought, plain pragmatic approach.
Didn't read all the comments, but here are some thoughts based on watching OP video;
1. Is there any kind of reference image viewer?
A sort of drawer where one could import images, for reference, color picking and such. This could be just a blank resizable window, with scroll bar, maybe even one image at time, and some keys/list to pick active image.
2. View controls. This sucks in any current 3d painting software IMO.
Mudbox comes close to usable, it even has zoom to viewport. 3DCoat has shortcuts for main directions, and whatnot, but ZBrush for example is totally horrible in this sense.
3. View controls (continued)
Stored views. It might not be for everyone, but for precision work, having views that one can return to is really useful. I could imagine something like this: have adjustable static center point, and distance to it. Then for example arrow keys / num pad to change to Front/Back, L/R, T/B views.
Then a view picker window, where one could store predefined views that get saved to some mobile config file. Rotating around model can be very frustrating, after all one does see very little area of sphere without tumbling, and using hot keys to swap between views.
Even better, having "free roaming view" and saved view would even better. Think about painting face, the press key to look it from side, then immediate back with one key press. In Zbrush, this is horrible, at best it has some hacky view storing methods that (at least used to) ruin grids and such.
4. Viewport. Also, I think all 3D painting software I've used fail in this; none have proper calibrated scene view, where views are relative to some ideal viewport.
Think about 1:1 or 4:3 view that shows portrait of character from front view.
Now, in most software, adjusting window size, or even worse, adding docked panels ruin this view. Horrible. It would be great to see this locked view frustum as edge in viewport (like in Maya camera). Then, when you reset tumbled, moved view, if for example can just reset to predefined front view.
And sizing of view window, *would not affect view composition* - this seems to be ignored by mostly all software... just wonder why. Then, if one setups some specific views (if there was such option), next time if the same scene is opened, no matter what screen size, views show exactly the same framing.
Imagine having stored stencil planes, face references floating next to face, view specific (aligned) reference/plane schematic images - these all would be able to be transferred from artist to artist or to different workstation intact. Sorry for too long day dreaming!
5. Emissive map channel in 3D view? Maybe I missed it.
6. Is the mirror option based on topology or position?
Would be great to be able to paint at least non projection brushes on topologically symmetric models, that have slightly different pose.
7. Multi UV tile handling?
Is there support for tiles outside 0-1 UV space?
8. Material / model management. Really hard to see exactly how everything works, but everything looks really promising.
Anyway, looking great, and really nice demo video (cool models too).
Would be nice to test it!
There are currently two naviagation styles, one of which basically mirrors the Maya control sceme (alt+lmb/mmb/rmb), and full customization is coming.
Ver .40
*Brushes now conform MUCH closer to PS brushes as far as hardness goes, and buildup over the stroke
*Even more spacing fixes - mine was based on radius, PS was based on diameter, and now mine matches (And some erratic bits are ironed out)
*dynamic brushes are now calculated on-request, or deferred, so adjusting hardness is now fast instead of laggy
*Dynamic brushes have very subtle gaussian disturbance, ala PS
*Fixed a startup crash on some desktop resolutions when maximized
*Fixed some more cases where you could hover tooltips on a button that was underneath a panel
*Blur, Sharpen, and Clone now interact properly with transparent regions of a 1-layer texture
*Brush location projector now projects to a greater depth (less 'broken' looking rings on the size indicator in 3D mode)
*Ensure (hopefully?) that at max zoomout you can still paint properly.
*Always hide 3d projector when in 2d drawing area
Onward and upward!
Hey S-S -
Mirror is based on position, not topology -
UVs can be outside 0-1 space (although it's possible there would be some fun bugs for me to find as you paint across the border?)
If you'd like to test, shoot me an email at travisbaldree@gmail.com!
Travis
Here's a comparison - PS on the left, TP on the right. You can see my solid brush at 25% is a tiny bit lumpier, which is probably down to the antialiased falloff. I think they are slightly softer on theirs (almost positive, in fact) , which I'll attempt to tweak to resemble with a hair more softness.
Also I noticed in the preview that the spacing seems to slightly different where the stroke curves?
I think that the lumpiness you're seeing on the 3d paint though has to do with lack of half-texel painting. From some scrutiny, I believe Photoshop does half-texel brushes, so I'm going to do some poking around to see if I can work it tonight
This is not a gpu or cpu as I'm on a workstation so i believe is due to the way the textures are loaded or the memory handling but i'm not that technical.
I think making it user configurable for all shortcuts and navigation should be on top of the list
Things like FLIP Y or Z axis while importing options and stuff could be in there too.
The propietary format could be a xml based file so it would point to the required files without increasing file size itself.
Great work
Yeah, 4k is tough in real 3d and not prebaked chunked out textures. it's basically a 4k movie getting uploaded to the GPU - crazy expensive. VERY GPU dependent as far as how fast it can push the textures up onto the card. I can do ok on my GTX 570 (although if I had a better card I imagine response would be considerably improved.) 2k textures seem snappy throughout.
User config is NEARLY the top of the list - this sub-texel pixel accuracy on the brushes has it beat out though. If you felt like opening wordpad you could even customize the shortcuts now, because they ARE configurable. I'll get to that dialog when these brushes are smoothed out.
You're in luck though - you CAN flip the y/z axis when importing. Pull down the Options menu and check 'Z-Up mode' then import your mesh. Voila!
Have you considered doing all the pixel operations on GPU? That would avoid a lot of this data transferring. It's a trend to keep latency low. Using the stencil buffer you can mask regions well, and the graphics cards have high precision color formats.
Alternatively make use of tiling, chunk the image in tiles and only upload the ones that got "dirtied" by the brush. That way you only pay higher costs for large brush usage, or "full image" effects. You can encode "dirty masks" in bit-streams (one bit per tile) and have each layer get its own dirty bitstream. Then you only need to experiment with a good tile-size.
A couple of notes:
Would love to have uv2 support and be able to set it per map. Could be cool to have diffuse in uv1, than have a secondarry diffuse in uv2 that can have its own blend mode. Im thinking about, for example, the ability to paint your own lightmaps. But definitely a uv2 option i believe would be useful.
Any plans for selection modes? Marquee, lasso, etc.
Could we possibly have light intensity or the ability to add more lights?
I know you are still early in development and still pulling feedback, but i still feel like i cant avoid photoshop using this. It would be fantastic if this became a complete replacement.
Thanks for making this, im looking forward to seeing where it goes.
I do keep track of the areas that are dirtied, only modify those, and attempt to have DX11 do subregion updates of only the dirties regions, but it makes only a minor difference, and all still a big upload hit, especially for brushes with low spacing and thus a higher update frequency.
Chunking is the only other alternative I CAN think of right now, although there's a lot of complexity to that too, and painting across the chunks (or cloning/smearing) - but more than that, UVs that cross chunks, which I haven't come up with any clever way to deal with as of yet.
Anyway, I'll keep poking at it And GPUs will continue to get more amazing.
Selection modes definitely on the list, as are adjustment layers.
I'm not sure I'll EVER be able to supplant Photoshop with my one-man-fun-side-project, but my aim is to try to get big-ticket stuff that requires me to jump back and forth taken care of. If you had to list your most important features that you'd want to make it as standalone as possible, what would you list?
Mine are:
1) project files that maintain my layers and fx between sessions
2) Adjustment layers and whole-image fx (blur,sharpen,noise,etc.)
3) Masking/selection w copy & clear
4) moving/nudging layers
I'd like to see really strong PSD support. Even if the app becomes a Photoshop replacement, most clients are still going to want PSD files.
I've poked around and there are some libraries I can use to do that. The most complicated part is probably re-saving them after modification and preserving whatever weird stuff PS might (potentially) keep in there.
http://everwas.com/2009/04/best-code-comment-ever/
*Sub-pixel accurate painting! Should get rid of those lumpies, much smoother strokes
*Various improvements to stroke preview - doesn't 'jiggle' when hardness changes, now previews line thickness also, and has sub-pixel accurate rendering as well
*Hardness can be adjusted with the PS hotkeys { and }
*Texture pane zoom can be adjusted with the PS hotkeys SHIFT+ and SHIFT-
*Color dropper can now get desktop color! Works just like photoshop - select the actual dropper tool, press and hold the dropper, then release on the color you want. Will update the color in realtime as you drag
*Normal color dropper/alt also does continuous colorpick on hold, not just on press
*Stroke spacing now responds to size changes based on pressure
*Brush hardness tweaked to be even closer to PS (slightly softer on the most hard setting)
There does seem to be some sort of paint intensity issue though. A light dot in PS will almost be a solid one in TetraPaint...video: https://dl.dropboxusercontent.com/u/4210886/TetraPressure.flv
Also, the color picker works correctly if started from the UI, but not if done via hotkey (holding or otherwise).
Wait, maybe you're right. I'll look into it.
Also, my PS brush doesn't behave that way - it looks the same as TP. There must be another setting at play - pressure sensitivity override? Opacity slider? (I can't see the PS value in your video)
I'm using PS CS6 if that makes a difference?
Basically, in PS you have it set to override pressure always which obliterates your min opacity settings in photoshop. It's that little toggle button up top with the checkerboard circle and a pencil.
If you slide the min opacity in your TP brush to 0 you should find it behaves the same as PS.
I was just looking at your stroke preview which started at max size and opacity and didn't think about the stiffness setting.
Note to self: Never touch that slider.
(just so others aren't confused by it too, might want to hide it behind an 'advanced settings' checkbox or something).
Hmm - I'm not able to reproduce this - I'm in diffuse view, I make a new layer and select it, paint with a black projection brush in the 3D view, then select standard brush and white color, and paint a stroke over the top and it seems to work as expected - same result making the stroke in 2D view. Is there something else interesting about the setup? Or the blend mode that you're using?
...Seems it's not doing real projection? Just mapping the brushes position from the 3D view to 2D one and painting in there?
here's a shot -
I painted right on a stretchy seam. The dot in the bottom left is using the projection brush (so it's 1-1 with the preview), and the top right is using a normal paintbrush (so it's all wonky since it wrote to UV space not screen space).
Is that not what you're seeing? Or not what you're expecting?
Or are you just expecting the normal brush to act like a projection brush?
How embarrassing! I should have caught that. That's what I get for using black and white in the transparency layer tests I run :P
Travis
did some testing with 0.42 version.
Only doodling on supplied demo models,
but here are some thoughts on feel/functionality of tools.
Edit: Well - it's easy to ask for features, any way great work so far!
This could end up being a true alternative for quick texture painting.
Small issues
1. Couldn't get picker work
Tried all kinds of Photoshoppy ways to set source, tried on layer and base layer of space pirate girl demo model.
Maybe this could be clearer how it works.
2. Projection of brush dab from longer distance creates lines
For example, with demo model space pirate girl, dolly far away, and drop one brush dab on center of torso, on cloth from front view.
Dab is half solid, half line pattern filled. Not too big a issue, as this seems to happen only from far away position.
Questions
1. Multi channel painting
Is it possible to paint diffuse+bump or any other combination at once?
It seems like it's not possible at this stage.
This would make big difference on non hand painted look models.
It would be really neat to have bar, where d/n/e/s channel colors could be picked / shown.
2. Is it possible to branch per/model area/material stacks?
It seems like not, but adding different stacks of channels for each texture would be nice.
But this combined with multi channel painting can become horrible experience if not done properly.
Ideas
1. On spot color picker
Could be same as now, but under cursor, invoked by key press.
Color panel is already non-modal, so it could be just activated, then disable when clicked outside panel.
2. Lock camera rotation to main directions
When rotating by pressing some modifier key (like shift).
3. Alternative background gradient / color
Dark grey instead of light grey, or picker to pick one solid.
This default setup looks really neat and Autodesky combined with PS like look, but different background color could be nice.
4. Lock lighting to camera toggle
A mode when activated, lighting would be oriented in model space, instead of world space.
Second click to release lighting back to world position like it was.
5. Ambient lighting / flat lighting
Adding more ambient color allows flatter lighting mode, but it also brightens background.
This would be nice, it wouldn't do that, even though it might be more expected behavior from PBR viewpoint.
6. Orthographic camera
I always personally am looking for this on any software. Could be really helpful.
Most of the time, I find that perspective cameras are more than often set to wide angle, which ruins working on faces and such from close distance, and in addition to that, it also reduces uniform surface area, when noses and other extrusions expand to fill canvas, it also is a problem for proper projection work.
7. Rotate around last stroke location.
This is many times helpful, I find it that now rotating model moves area I'm focusing on too easily out of view.
1. Couldn't get picker work
Tried all kinds of Photoshoppy ways to set source, tried on layer and base layer of space pirate girl demo model.
Maybe this could be clearer how it works.
*Do you mean the color picker? Or the direct select tool? I'm not sure I'm following what you're trying to do -
2. Projection of brush dab from longer distance creates lines
For example, with demo model space pirate girl, dolly far away, and drop one brush dab on center of torso, on cloth from front view.
Dab is half solid, half line pattern filled. Not too big a issue, as this seems to happen only from far away position.
*Yeah, at extreme distances the interpolation can break down. I'm looking at other ways to quickly do projection that can avoid those kinds of artifacts. I basically render a UV map from perspective to a big texture, sample from that, and interpolate between the UVS, then lookup into a bilinear filtered version of your brush for painting, but there is probably some other, smarter way that I just haven't figured out yet.
2. Is it possible to branch per/model area/material stacks?
It seems like not, but adding different stacks of channels for each texture would be nice.
But this combined with multi channel painting can become horrible experience if not done properly.
*I'm maybe misunderstanding this, but every material can have different channels and layers -
And all your ideas sound like good ones! I'll add to my list
Anyway, version .43 is up -
*Key remapping! Available from the options menu. Note the previous 'standard & 3D-style' settings are still available. Press the 'Defaults' button in the remap dialog and you can select which default set to apply. Conflicts will show up in red if you double-map something.
*Colorpicker now works to grab desktop colors with hotkey as well, Photoshop style. Hold down the click and release over what you want. I.E. hold ALT, depress mouse button, drag over the desktop color, and release. Voila.
*You can now choose background styles from the Options menu (light vs dark for right now, but dark seems to be the consistent ask)
*Lighting no longer affects the backdrop
Current roadmap is selection/masking, project files, and investigating PSD support.
On customization / keymapping ;
-For navigation, now that we can customize it do you think we could get a way to set which direction the cursor needs to move for zoom/pan?
-For key stacking purposes, instead of doubling up entries (like 'Zoom In 2D' / 'Zoom Out 2D'), it would probably be better to have a text entry field next to the command like 3DSMax does.
-The current font used in the customize menu makes it somewhat difficult to read.
Background color is still affected by Bloom (tested on lighter background), even though lighting doesn't. Also, Effects on/off settings aren't saved between app sessions.
I can tweak that font size up (presumably it's a size thing)
I may not mess with a text entry field for keystacking right now just to move on to more pressing macro-stuff.
I should be able to add a few radio buttons for axis flips, and also for dragging-in-empty-space rotations.
Some request though...
1. Can there be an option to see the uv wires in the texture window?
2. View to snap to 2d view, while you are holding shift and rotating the 3d view, like in zbrush or blender.
3. Marque select tools from photoshop, plus being able to cut, clone, by holding alt in the texture view....
4. Shape tools
5. Possiblity to just have a 2d background where the user can assign a shade of gray, gradient and edit it
6. Can the brush engine have a shape engine? Like say say you have a circle, square, you can round the corners?
Thx for letting me test this app.
the following effects get activated when Tetrapaint is moved to another screen;
Ambient Occlusion
Glow
Motion Blur
Bloom