利用者:Jwilkins/GSoC2011/SculptPaintFeedback
目次
- 1 General
- 2 Suggestions affecting all or many brushes
- 3 Performance
- 4 Interface
- 5 Tools
- 6 Brush Options
- 7 Stroke Options
- 8 Multires Related
- 9 Other
- 9.1 .PSD Support
- 9.2 Resymmetrize
- 9.3 Transfer sculpts between objects
- 9.4 Topological Based Mirroring
- 9.5 Cavity shader
- 9.6 Improved baking efficiency
- 9.7 Screen space ambient occlusion
- 9.8 Increase GLSL Viewport Speed
- 9.9 Sticky Keys
- 9.10 One-click element masking
- 9.11 BaseMesh Destruction Zone Marking
- 10 Resources
- 11 UI Mockups
General
Bugs
-Currently 'fast navigate' does not work on textured meshes. This would be really nice for us that use matcaps on our sculpts.
FIXED BUGS
Suggestions affecting all or many brushes
Editable stroke history
Ability to adjust propertys of a stroke after the fact such as the path, brush size, brush type, and strength
Straight stroke
create a straight stroke between two points
Consistent size for brush object space radius
The radius of the brush varies right now if you start at a object location that is close to the view plane, as opposed to far from the view plane. Thus a stroke going from near to far, and stroke going from far to near have different brush stroke sizes.
- This should not happen if you select "Use Blender Units" - jwilkins
Brush Strength Consistency
It would be good to have the brush strengths consistent across brushes. Right now 100% on a brush has a huge impact on some brushes, whereas others things barely change.
Scale spacing to stroke velocity
Increase the brush spacing for faster strokes
Editable Shape
ability to edit a simple brush's shape without having to load a texture. Use of settings like shape and spikes in Gimp's Brush Editor. http://docs.gimp.org/en/gimp-brush-d...-editor-dialog
Performance
use SSE or other vector operations for sculpt math
probably most of the math done in the sculpt calculations can be done via SSE and other math accellerators
run mirror instances in seperate threads
right now the mirrors are done in order, the code could be reordered to have the mirrors executed in parallel.
speculative sampling
Since the brush stroke generally heads in the same direction (85-95% of samples are linearly directly in front of the last sample) and each daub has significant overlap we can frequently do calculations up to 4 daubs in advance. Ie for a typical daub with an update of 15% radius that is something like 80% overlap between the first and second circle, 50% between the first and third. Thus we could have a massive amount of calculation savings in the typical case.
topological mirroring
If mesh are topologically identical and we mirror only on a single axis we can just add the displacement to the mirrored geometry doing an almost 50% reduction in calculations. Or just mirror the rendered image data update.
additional subdivision of the space for small brush sizes
If a brush is small then it will likely only travel a small distance across a grid for a daub. Currently all data in the PBVH grid that it is in has to be calculated again and again with the vast majority of the data outside the brushes radius. A brush that is 1/10th the diameter of a grid edge could in the pathological case, end up doing calculations on 1596 times more data than is needed for each daub. Thus additional subdivision, even on demand, for small brushes can be a massive win.
- I think this is pointless and adding code complexity for no good reason, it can be a massive win yes, but for a case that is already supposed to be very fast. If a few nodes can't be sculpted interactively with a small brush, something is already broken. --Brecht 14:06, 22 June 2010 (UTC)
Sampling for large brush areas
When calculating the brush area normal, only do additional calculations on every nth face within the brush radius.
Interface
UI naming
Please suggest items that should be renamed in the form
old name - new name
Shortcuts
Please suggest shortcuts and key combinations here
Fast keyboard brush switching
Add an operator that brings up a palette of all the brushes, showing name and perhaps a small icon. Typing while this palette is open will do a live search, narrowing down the selection of brushes based on the input (e.g. typing "pi" would show "Pinch" and "Pillow" brushes, but not the "Pumpkin" brush.) Add a default binding to this palette such as BKEY. Purpose of this suggestion is to quickly find the brush you want even if you have a large set of brushes. --nicholasbishop 18:16, 13 June 2010 (UTC)
LMB drag in viewport for orbit view - DONE
Bring back the dragging on the viewport outside the model rotates the canvas.
Gustav Göransson #3
- This is already in 2.5 trunk, it's somewhat non-obvious though. You need to edit the interface settings to turn on "ignore background click" for sculpt operator, and change leftmouse to not move the 3d cursor, but rather to rotate the view. So three changes total, I think. --nicholasbishop 18:19, 13 June 2010 (UTC)
Using more then one brush
LMB/RMB - Add/Sub Brush 1
HOLD shift + LMB/RMB - Add/Sub Brush 2
Tablet front/Eraser -Add/Sub Brush 1
HOLD shift + front/Eraser - Add/Sub Brush 2
FreeMind
Last sculpt point as pivot
Bring back the rotation around a pivot (last sculpt point).
Snap view to nearest orthographic view
A key that will snap to the nearest orthographic view
--Holding the alt key after starting to rotate will snap to nearest orthagraphic view already in trunk Sean Olson
Display
Monacle for viewing zoomed in part of mesh without having to zoom
A monacle (a small zoom circle) beside the brush that shows greater detail, and follows the brush location so that the user can be zoomed out somewhat but still see the location and response of detail to a stroke with precision.
Better and more precise feedback when resizing the brush with F key
When changing the brush values with F key, display a small field with values next to the brush / mouse for clearer and more precise feedback on how big/strong a brush is, without having to look at the side panels. The field is only used to inform the user, there's no clicking on it or anything, as you're already changing the values with the mouse / tablet movement. http://www.pasteall.org/pic/show.php?id=3758
It would be nice if the 'brush resizing' circle centered on the mouse cursor instead of having the cursor on the edge and center at a point in space to the left. This way the user can center her mouse directly where they want to make the stroke and size the stroke to the exact size they want it to be while lining it up with the 'background'.
Panel
Drag and drop textures to brush texture
The ability to drag images, singularly, a group, or folder of images to the brush texture selector to have them loaded
MichaelW #5
Have size and strength sliders update as you scale the brush
Have interactive update of the brush size and strength as they are resized via FKey or via pen pressure (ie see how scale is updated in NKey panel as you interactively scale the object).
Brush and Texture Preset Selection Sets
A grouping of textures and or brushes, so you can load a bunch of related brush or texture presets at one time. Ie load all of your cloth texturing/brush presets, load all of your skin texturing presets, etc.
MichaelW #5
Additionally, a good default set of alpha textures would be nice to have. Skin, Cloth, Zippers, Buttons, Etc
Sean Olson
Picture to select falloff
It would also be good to have the falloff curve selection to be like the texture selection method.
Brush UI simplification
declutter most brush settings to secondary location...(edit brush)
MichaelW #7
Brush
Display the brush rotated along the surface normal
Meaning the flat brush circle as a 3d circle rotated along the surface normal under the brush. For visual feedback for when e.g. 'original normal' is used. To previsualize the plane one is going to get.
Display brush texture conforming to model contour
Same idea as above but for the brush texture instead of just the radius.
Gustav Göransson #5
Visual Feedback of texture size and pressure
Probably good to have an icon either the brush itself or in the panel that indicates what the pressure, brush size, and brush rotation, and possibly barrel roll are as feedback for pen tablet users.
Real-time preview of the brush displacement on-mouse-over
An option to see how the brush will affect the surface (like the actual drag-and-drop option) when the mouse is over the mesh, allowing to preview the brush displacement while we tweak the brush settings without making any real change to the mesh.
Brenner ====
Here are some things that I think would be nice
-fast navigate defaults to the preview multires level not the lowest level -faster smooth -more efficient way to switch between brushes (that's a big one for me) maybe using the spacebar in sculpt mode would show a pie menu with the sculpt brushes divided into general types and from the general types you could quickly select a specific subtype? just an idea...
-the remaining features from last summers branch into the trunk -Nicholas Bishop's gsoc from last year into the trunk (this maybe the wrong thread for that) -cavity shader
For Paint - more brushes - faster - layers - better stencils
I'm honestly super psyched about this gsoc.... last years was an incredible success and I can't wait to see what Jason does this summer...
Other
Sculpt On multiple objects at once
If multiple objects are selected then they should all enter sculpt mode, and the artist should be able to do a continuous stroke across them.
Eclectiel #9
Tools
Masking Tools
This has already been (partially) implemented in NBishops Branch from Gsoc 2010. Masking tools are a major part of sculpting and the lack of them cause frequent headaches. (Try opening a mouth without them). This might not be within scope of the project, but having this working would be great.
Sean Olson
Transpose
A transpose tool could be very valuable. This would alieviate the need for modelers who are only interested in static meshes the need to use full rigs to change poses.
See http://www.pixologic.com/docs/index.php/Posing_a_Model Sean Olson
Slide
A slide brush would slide the geometry along the surface of the mesh but keep the original brush topology.
Smooth Directional
Smooths using only infomation along the stroke direction. So a face in front or behind the face is used to determine the faces smoothness, but not to the left of right.
Smooth perpendicular
Only smooths faces that are at a high angle relative to a neighboring face.
Smooth Cavity
A combination of fill and smooth. Ignore peaks and only smooths valleys.
Smooth Peaks
A combination of scrape and smooth. Ignore valleys and only smooth peaks.
Magnify - Is magnify same as Blob
Draw+Pinch Inverse
Blob might actually be Clay+Pinch Inverse
Smooth
- its kinda slow now
Last stroke path's tweaking brushes.
Brushes that allow to tweak the shape of the last stroke. Mockup: http://img38.imageshack.us/img38/7095/laststroketweakbrushes.png
Smooth Scale
it would be very helpful to have some kind of uniform-nonuniform scale transform tool. This would work based on the brush size. Basically the mesh area under the brush area can be scaled up - down or squeezed after the first click down. The scaling operation would be active until the mouse click is released.(kursad)
Brush Options
Stencil overlay on the viewport
The ability to overlay a image or texture on the viewport, and to scale, translate, and rotate the image to use it for sculpting and texturing. stencils in Zbrush stencils in Mudbox
Gustav Göransson #1 Jeepster #2
You might have a look at NBishops Ptex work. He has some very nice texture overlay code that works very nicely.
Sean Olson
lattice deformation of stencil/grid
The Ability to do a lattice deformation of a texture used for stenciling. Also might be useful for brushes also.
Set plane angle
this would override the sampled angle, could be set using the same way that ambient viewport lights are set (dragging a point on a sphere), possibly with a display for the euler angles.
Gravity
Multiple Stamps
This option would repeat a 'stamp' of the brush while the brush is moving until a threshold distance is reached, then a new stamp would be done at the current brush location
Stamp Sequence
This option would stamp a different image in a sequencer. Ie it could be letters in an alphabet, symbols, a tic tac toe pattern, etc. The sequencers could either be ordered or randomly selected. The spacing could either be predetermined or within a random range. Ie it could be a bunch of different flowers. Also other properties could be randomized and it could be used with a spray option with random rotation, scale, location, flip horizontal/vertical.
Stamp Snapping
Option to allow stamps to 'snap to grid'
Brush switching based on pen pressure - partially DONE
The ability to switch what brush tool or brush options are enabled based on pressure. So you can use say a brush with a curvy aspect at low pressures, and flatten aspect on higher pressure. This option exists for smooth only currently.
Jitter
Jitter (or Scattering) allows you to set the distance off the cursor that you want individual instances of the brush tip to occur. Would be adjustable by 'Scatter' option - Distance that each individual application of the brush can deviate from the exact path of your brush stroke.
- it may have possibly option 'Both Axes'. If Both Axes is selected, applications of the brush will stray both horizontally and vertically from your brush stroke; if unselected, applications will stray only vertically.
Angle ( for Texture Paint mode)
Still missing, still needed more details
Stroke Options
Curve Visualization on the cursor
Note the red line under the brush cursor in this video to vizualize the falloff http://www.youtube.com/watch?v=1qkz9B9PbEU
Stroke Direction Smoothing
Stroke Pressure Smoothing
Constrain to path
Straight path
Multires Related
Delete lower for multires
In 2.49b and previous you could 'delete lower' on multires. In effect this splits the multires into two multires modifiers and applys the lower modifier to the base mesh. This is very useful and would be good to have back.
Have multires affect the base mesh - DONE
In 2.49b and previously changes made by sculpting were propogated to the base mesh. Thus large deformations to the mesh at a high level would be reflected in the base mesh. This would keep the base mesh appropriate for baking high res as a normal map as the base mesh. In 2.5 this option was lost.
Fix is in the multires branch.
allow edit mode for layers higher than the base mesh
In 2.49b you could enter edit mode for multires layers above the base mesh, and use the editmesh tools for tweaking the location of vertices with the greater control allowed with edit tools. It would be nice to have this ability back.
sculpting layers
allow sculpting changes to be made in a layer that can be turn on/off and which can have intensity scaled. It could work like the displaement modifier works now, but editable with the sculpt tools. Should work with morph and correction targets etc.
MichaelW #3
Gustav Göransson #9
Eclectiel #4
editable multires with edits not destructive to higher layers
right now if you edit the base mesh of an object in order to allow higher detail on upper layers, the effect can cause massive changes in your already sculpted geometry. It would be desirable to instead have the sculpt shape retained in higher levels and have the edited base mesh conform to the higher level geometry. Possibly only allow adding of loops and other things for which are easier to predict/project changes for.
Eclectiel #5
Right now the fast navigate mesh remains unchanged when higher level changes are made, it would be good to propogate the changes to it.
Other
.PSD Support
Most Brush alphas found on the WWW are in .psd format. Native support would be nice. http://www.adobe.com/devnet-apps/photoshop/fileformatashtml/PhotoshopFileFormats.htm#50577409_pgfId-1030196
Resymmetrize
An option to update the mesh so that both sides of a topologically symmetrical object match - doing either match left, match right, or average
MichaelW #2
Gustav Göransson #7
ndee #4
Eclectiel #2
Transfer sculpts between objects
easy transfer of one mesh sculpt to another
MichaelW #8
Topological Based Mirroring
have mirroring be based on mesh topology instead of object space geometry.
Cavity shader
To be able to use with matcaps. Allows for easier visualization of valleys, bumps, and details.
Jeepster #1
Improved baking efficiency
Gustav Göransson #2
Eclectiel #8
Screen space ambient occlusion
MichaelW #10
Gustav Göransson #8
ndee #8
Increase GLSL Viewport Speed
If Matcaps will be added, the GLSL Viewport needs to be improved. Also "fast navigate" should be implemented
ndee # 9
Eclectiel #10
Sticky Keys
It would be nice to have sticky keys-shortcuts. For example when I press and hold "g" while I am in draw mode could activate the grab tool temporarily, and it would deactivate when I release the key("g"), it is similar to brush sizing key("f").
kursad #10
One-click element masking
Being able to mask a full element (each piece of connected geometry) with one click. You could add /remove an element from the mask, or you could designate one element to be the only available for editing. This way, when having characters with cloth and accessories, each accessory can be quickly "isolated" to sculpt it without affecting the other elements.
BaseMesh Destruction Zone Marking
Sometimes we realize a bit late that it would be useful to add extra flow control in a more lowlevel mesh. At the moment adding edgeloops is not a destructive modification, but adding or subtracting faces/verts/flipping edges can be instant loss of higher level sculpting. Would it be possible to mark out a zone, in advance to editing on such a low level way, and say "changes in this area will affect only geometry / sculpt in this area".
Resources
patch for paint tilt
http://www.pasteall.org/13677/c
script to make black-white brushes from objects
here is a little prototype script to convert objects directly to brush depth textures:(it currently changes some scene settings and doesn't put them back so use only with test files! ) http://www.pasteall.org/13537/python
just run the script to register it and then search for the 'convert to brush' operator. Select object/s which you want to convert to alpha, then run the operator. It just renders an black-white image, and you have to save it afterwards, but still saves some time with setup of the rendering. Currently works only in z direction(normalizes the bounding box to certain resolution and depth of the range of image, so you always get image from complete black to total white). When in the future (in my dream) sculpting and texturing get somehow connected and enable you to paint/sculpt simultaneously color/specularity/depth, It would be lovely to have such a tool for all these channels (which I could co-develop).
old patch which added more blending modes to texpaint
It has also 3 experimental normal map painting modes which correctly mix normals, so if you have a normalmap brush, it seems to work. But after a while, you always get an idea of the fact that it's not correct, only way to get correct nmap is to paint bump and convert the painted areas on the fly. patch: http://plant.ffa.vutbr.cz/~novak/dwnflz/relief/blendmodes17.txt sample picture: http://plant.ffa.vutbr.cz/~novak/dwnflz/relief/nmappaint.jpg
test meshes
test blend - this uses the head from http://cgsculpt.org/sculpt/viewtopic.php?f=24&t=262
I've set up the defaults to be conducive to getting good performance. Head is on layer 1, spherized cube on 2, and a plane on 3. http://wiki.blender.org/uploads/1/19/Sculpt_test_objects.blend
ndee comic female base mesh
http://dl.dropbox.com/u/1250100/Blender/BaseMesh.blend
jeepster human base mesh http://speedmodeling.org/smcfiles/Jeepster%5B%5D_human.blend
jeepster quadruped cow base mesh http://speedmodeling.org/smcfiles/Jeepster%5B%5D_cow.blend
ape head base mesh http://speedmodeling.org/smcfiles/Jeepster%5B%5D_apeHead.blend
seanJM base mesh http://blenderartists.org/forum/showthread.php?t=170349
piladnovak cow and bull base mesh http://plant.ffa.vutbr.cz/~novak/dwnflz/krava_a_byk_dwn.blend
reconstruct lower subd levels script
reconstruct lower subd levels http://blenderartists.org/forum/showthread.php?t=135617
UI Mockups
http://gustavgoransson.com/temp/blender_ui/sculpt_mockup.jpg
http://img59.imageshack.us/img59/1930/sculptuifinal.png
http://img193.imageshack.us/img193/9256/quicksettingsresize.png
http://img229.imageshack.us/img229/7354/brushpresetsminimizing.png
original SVG to start mockups from: http://www.4shared.com/file/GdFVavNl/Sculpt_UI_SVG.html
Based off of the above ui mockups, here is a variation that colorizes the background for faster brush identification http://www.pasteall.org/pic/show.php?id=3932
Another alternative for brush thumbs coloring:
http://img718.imageshack.us/img718/5530/brushescoloring.png
Proposal for arranging the most used brushes:
http://img25.imageshack.us/img25/8450/mostusedbrushes.png
Falloff maps for custom brushes:
http://img820.imageshack.us/img820/3824/brushfalloffmaps.png