For the strokes drawn using OpenGL lines, moderately-sized changes in the pressure between two points could result in the stroke being disjointed, since a new GL_LINE_STRIP would need to be created with the new line thickness due to the new pressure value.
(In reference to the summary of this commit, this bug was noticed by Matt Ebb (broken). This bug is also in 2.4x, but was suprisingly not really noticed.)
* Making single dots should be possible again.
* Wrapped the debug option, 'Show Points', for layers, which makes all the points on the layer get drawn with dots indicating positions of stroke points.
* Smooth strokes can now be drawn again, with normal (i.e. reasonably speedy feedback again).
Previously slow drawing was caused by a bad notifier being used - the full screen was redrawn each time instead of just the relevant region. Now, only the relevant region is redrawn while drawing, and a proper flush is done for the rest of the screen at the end.
* Made drawing straight lines a proper drawing 'mode' for Grease Pencil now. Use the Ctrl-D-LMB hotkey to draw straight lines in this way. The (buffer) line drawn now will accurately represent the final straight line instead of drawing the freehand path taken as before.
- mesh face properties that have no data are tested for length.
- the rawtype of MFace.verts is not set, defaulting to CHAR, meaning only verts with 256 verts could be added from python. temp workaround by making PROP_RAW_INT the first in the enum. For some reason makesrna.c doesn't set the raw type MFace.verts at all.
* Don't do shared vertex colors for every vpaint dot. Profiling on a large mesh showed vpaint spent about 65% of the time in this function, but most of the time no difference will be apparent in the result. (Could make an operator so the user can force this operation after doing some painting.)
TODO:
Profiling now shows most time spent in drawing the mesh. (This is done twice for vpaint, the first time for finding backbuf sampling.)
- Baked point caches for particles, cloth and softbody can now be edited in particle mode.
* This overwrites the old cloth/sb cache editmode editing.
* The type of editable system is chosen from a menu.
* For particles the current particle system and it's current cache are used.
- Currently this only works for caches that are in memory, but some automatic conversion from disk to memory and back can be implemented later.
- All tools from hair editing can't be applied to point caches and are hidden in the tool panel and specials menu. Some functionality like subdividing paths can be later implemented in a slightly different way from how it works for hair.
- Code is not yet optimized for speed, so editing might be slow sometimes.
Known issues:
- Cloth doesn't update properly while in particle mode, due to the way cloth modifier currently works. Daniel can you check on this?
- As "particle mode" is not only for particles any more some other name would be in place?
- Better icons are needed for the path, point, and tip-modes as the current icons from mesh edit mode are quite misleading.
- Direct editing of point velocities is not yet implemented, but will be in the future.
Other changes:
- Hair editing doesn't require a "make editable" button press any more.
- Multiple caches in single particle system disables changing emission properties.
- Unified ui code for all point cache panels.
* Defined in buttons_particle.py and imported for cloth, smoke & softbody.
- Proper disabling of properties in ui after baking point caches. (Daniel could you please make needed disable code for smoke panels as their functionality is not familiar to me.)
- Hair weight brush has been removed. Once hair dynamics is re-implemented I'll code a more useable alternative to the functionality.
Bug fixes:
- Unlinking particle settings crashed.
- Deleting the active object with particles in the scene crashed.
- Softbody didn't write point caches correctly on save.
Restored the UI for access to the GP layers.
There are still a few minor bugs here:
* Wrong icons on the toggles - even when they're enabled, they only show a single state
* The ID-template doesn't seem to be showing up. Dunno what's going wrong there...
* When starting Grease Pencil from the toolbar, strokes are now started only when a click-drag begins.
* Made the 'straight-lines' option an RNA property for the operator
* Added an exec() callback and relevant stroke-collection stuff so that interactive redo/changing settings can work.
WARNING: this is highly unstable here - keeps crashing though I cannot determine the cause yet.
renamed RNA properties.
x_offset, y_offset -> offset_x, offset_y, this order is more common in rna.
render.border -> render.use_border
render.placeholders -> render.use_placeholder
render.no_overwrite -> render.use_overwrite
Again, please try not to break scripts - at least grep the release dir for the names you change.
- rna material property rename
gloss_amount -> gloss_factor, since its from 0.0 to 1.0, prefix factor is used on other material settings.
reflectivity -> reflect_factor
* Shuffled some code around, and renamed some functions used for getting context info
- Split UI-buttons into a separate file from stroke-drawing code
- Removed some obsolete code (i.e. old paint code that used to be in _edit, but which has been moved to _paint).
* Made drawing in 3D-View default to using the active object as the owner of the Grease Pencil data. For now, the drawing code will therefore only show the GP data for the active object only. More work to come on this.
* Fixed freeing code for Objects/Scenes with GP data.
Also ported some name changes from the materials UI script to RNA to keep these consistent. Animation editors always show the RNA name after all, so it's good to keep the names similar.
* Wrapped Grease Pencil datatypes in RNA.
* Hooked up Grease Pencil access in RNA (i.e. via Main, ID, and Scene)
TODO:
Updates to properties are currently lacking property-update calls, since there's no good notifier for this.
* Changed the hotkey to simply be:
Hold DKEY, click+drag using Left-Mouse (draw) or Right-Mouse (erase). How to get tablet erasers to work (via keymaps) is on todo...
You can simply hold DKEY until you've finished drawing, thanks to the nice way that keymaps can support standard-key modifiers now.
* Eraser works now too.
* Realtime updates now work again
* Fixed problems with clicks to start drawing resulting in a stroke being ended.
* Changed the hotkeys to Ctrl-Alt-Shift-LMB (draw) and Ctrl-Alt-Shift-RMB (erase). Still very temporary stuff, will probably change these a few more times as I experiment with new approaches.