利用者:Jwilkins/GSoC2011/SculptPaintFeedback

提供: wiki
< 利用者:Jwilkins
2018年6月29日 (金) 04:43時点におけるYamyam (トーク | 投稿記録)による版 (1版 をインポートしました)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
移動先: 案内検索

目次

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)

Navigation

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

have mesh changes propogated to fast navigate mesh

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


Painting gui integration + suggestions (explanation post)

Sculpting gui integration

Popup panels