Commit Graph

42273 Commits

Author SHA1 Message Date
b408d8af31 Freestyle Python API: Updates and speedups for the parameter editor
In addition to D319, this patch updates the parameter editor, the UI of Freestyle.

Using new API functionality and experience gained in making D319, this patch
provides a quite noticable speedup for commonly-used Freestyle linestyle modifiers.

As this patch touches a lot of code (and mainly the foundations) it is likely that
mistakes are made.  The patch has been tested with a regression suite for Freestyle
(https://github.com/folkertdev/freestyle-regression-tests/tree/master), but testing
with scenes used in production is very much appreciated.

Differential revision: https://developer.blender.org/D623

Author: flokkievids (Folkert de Vries)

Reviewed by: kjym3 (Tamito Kajiyama)
2014-07-24 14:29:35 +09:00
4eedec8681 UI: Correct code cleanup
Old code commented to reverse list in fact did nothing, replacing with call to reverse broke menu arrowkeys direction.
2014-07-24 15:08:52 +10:00
ffea67ca57 Updates/fixes for new UI messages. 2014-07-23 20:59:40 +02:00
af162658e1 Texture painting:
Add ability to select UV layer from the layer panel.
2014-07-23 20:06:41 +02:00
1f55044617 Editmesh: Add option to tear boundary vertices when dissolving 2014-07-24 03:29:17 +10:00
Dalai Felinto
e0d4047136 Bake-API: Test for cyclic node connection
If the active image node contributes to the final material shader
(meaning it's either directly or indirectly connected to an Output Node)
the user will receive an alert about circular dependency.

Similar to what we do for Blender internal the baking will still happen,
but the user will receive the alert which should prevent the image
saving to happen if the result was not intentional.

Core function to check for node output written by Lukas Toenne.

Reviewers: lukastoenne, campbellbarton

Differential Revision: https://developer.blender.org/D673
2014-07-23 11:46:13 -03:00
8d3bfef538 Extended mathutils.Vector.orthogonal() to accept a 2D vector.
Reviewer: Campbell Barton

Differential revision: https://developer.blender.org/D668
2014-07-23 23:10:03 +09:00
17021171f1 Occlusion Query based selection.
This patch creates an interface for selection mechanisms in opengl. This
makes it possible to switch between occlusion query based or select
rendermode based selection transparently.

This is really useful on graphics drivers that do not accelerate the
select rendermode path (some ATI cards are notorious for this, and the
new path is used by default there), since occlusion queries are always
hardware accelerated due to their use in games.

The option can be found under system - selection. Auto just enables
occlusion queries for ATI users while the rest of the options enforce
one of the two methods always.

There is just one known change, previous code enforced nearest bone to
always get selected, even when mouse selecting near the same position, I
couldn't replicate the behaviour though.

patch by me with edits and review by Campbell.

Thanks!
2014-07-23 15:26:08 +02:00
cf9d5db75b Fix T41156: UILayout.prop_enum() does not observe "text" parameter override
We do have odd behaviors with name and expanded enums, but in this case it did
not made any sense at all! :)

Note the error was not in RNA, but in C UILayout api itself...
2014-07-23 14:34:21 +02:00
82f16f81fd Cleanup: BKE_scene_set_name mixed G.main & bmain arg 2014-07-23 20:30:55 +10:00
f88593df69 Fix for mixup in startup.blend data init when userprefs.blend was missing
Rename UI_init_userdef_factory to BLO_update_defaults_userpref_blend
This closely matches BLO_update_defaults_startup_blend so makes sense for them to be together.
2014-07-23 20:23:05 +10:00
54109add65 Freestyle: minor speedup by omitting unnecessary transform matrix operations in the file loader.
Previously the imported mesh data were transformed by a local-to-world projection matrix
through NodeTransform.  Now that the file loader assumes the imported mesh data already
in the camera coordinate system, an indentity matrix was supplied to NodeTransform.
The present commit avoids this redundant matrix operation by using NodeGroup instead of
NodeTransform, recalling the latter is a subclass of the former with extra matrix computations.
2014-07-23 13:03:55 +09:00
c32a671b3a Fix T41141, can't paint texture in cycles.
The issue is actually that creating a new image in texture paint mode
will set it always as a stencil image. Internally, the code checks if
the painted image is the same as the stencil and if it is, no painting
is done.

Solution is to expose a boolena to the operator for setting the image as
a stencil (could be an enum in th future for more uses)

Stencil UI is a bit weird here, will definitely redesign.
2014-07-22 21:06:10 +02:00
65d135a040 Texture paint:
* paint slots from cycles only include texture image types
* tweaking with select mouse no longer confirms on release
2014-07-22 19:55:00 +02:00
c2ef52c5e8 Tiny change for gsoc paint curve drawing: numpad enter now draws the curve too. 2014-07-22 19:12:34 +02:00
5215ab0acf Code cleanup, unneeded variable, always true when used, not used when
set
2014-07-22 11:57:03 +02:00
aa7f9197c7 Freestyle: added a note on #include "DNA_material_types.h". 2014-07-22 12:24:44 +09:00
8cf2b3879a Freestyle: Fix for UI text of the "use_tips" line style property. 2014-07-22 12:24:43 +09:00
2e436173aa Fix T41086: VSE separate images increases file size abnormally.
We were copying everything from the old sequence into each new ones... including the stripdata,
which for image sequences is an array with one item per image!

So bug was an exponential one, separating strips of a few tens of images was insensible, while
separating a strip of 1000 images would add above 250MB to file size (and RAM usage too)!
2014-07-21 22:55:06 +02:00
6a2cefc061 Fix T40839: Object Font Text Rendering Bug
The issue was caused by the wrong objects order for
convertblender.c. Dependency graph totally missed
handling of this situation.

Fixed now, but it's not that pretty, don't try this
at home obviously. But consider this to be good enough
for the current dependency graph.

Details are in the build_dag_object().
2014-07-21 21:32:58 +06:00
577bdfbb5b Transform: edit to recent commit
Copying long comments about & `#if 0` is hint it could be defined in one place.
2014-07-22 01:24:43 +10:00
1526620416 Fix T40432: Scaling to zero with manipulate center points works precisely on second time
Commented out the 'no zero' protection of scaling transforms for numinput.

Issue is, once an axis has null scale, you can't regrow it from transform code
(you have to directly edit the scale property). This is not ideal, but getting
good behavior in this case is hairy...

Yet, when using numinput, you type precise values, so if you want to set it to zero,
set it to zero. User is assumed responsible, we should avoid too much 'invisible magic'
when handling precise inputs. ;)

Note: an idea for possible future feature would be to have an 'absolute' mode for numinput
(allowing to type in real value, not factors).
2014-07-21 17:13:48 +02:00
6a43ee6e38 Fix T41128: Box selection bug with armatures.
Calling `glLoadName()` was possible with '-1' value (65535 actually), in `draw_pose_bones()`...

Note I think bug exists since ages (at least, seems to be already present in 2008
when drawarmature.c was added in repo)!

Odd behavior reported (issue only affected objects once parented to the armature) was
due to ordering stuff, since only objects drawn *after* the armature were affected.
2014-07-21 15:54:32 +02:00
a7d8f602a6 Py/API: Improve intersect_line_line with parallel lines
Now comparing the distance between line-intersection points
to see how close lines are - doesn't fail in the parallel case.
2014-07-21 23:22:10 +10:00
25fab54e09 Fix errors in hsv calculation from recent optimization patch.
Code was different from original here, result was apparent in color
picker wedge position.
2014-07-21 12:34:45 +02:00
256706ce7e Cleanup 2014-07-21 20:23:17 +10:00
f745564e4e GSOC 2013 paint
Yep, at last it's here!

There are a few minor issues remaining but development can go on in
master after discussion at blender institute.

For full list of features see:

http://wiki.blender.org/index.php/Dev:Ref/Release_Notes/2.72/Painting

Thanks to Sergey and Campbell for the extensive review and to the
countless artists that have given their input and reported issues during
development.
2014-07-21 12:02:05 +02:00
8489b94e07 Math Lib: rename mul_serie_m3 to mul_m3_series & reorder args
Importantly, reversed mul_serie_m3 argument order (so it matches the m4 function)
2014-07-21 18:57:35 +10:00
1fdaf5862f Optimisation to rgb <-> hsv/l conversion
Basically avoid redundant computations. Gives ~1-4% speedup in the compositor depending on the use case.

For more info see: http://lolengine.net/blog/2013/01/13/fast-rgb-to-hsv

Reviewers: psy-fi, sergey

Subscribers: campbellbarton

Differential Revision: https://developer.blender.org/D596
2014-07-21 09:26:39 +02:00
ce47231cdb Math Lib: Add isect_point_tri_v3
Add to Python via mathutils.geometry
2014-07-21 16:58:17 +10:00
cbde56572f bmesh py api: face_split_edgenet missed NULL check 2014-07-21 12:42:00 +10:00
13a8f650df Cleanup 2014-07-21 10:53:07 +10:00
6f1f5771ff Correction to 7c7b730, multiplication order was flipped
That's really annoying that multiplication order is flipped
comparing mat3 and mat4 cases, but for the purposes of not
breaking all the branches which might use this stuff we'd
better keep order consistent with old version for now.

Suggestion here would be to make order consistent but rename
this functions to mult_* to make compilation fail instead
of failing and using wrong order silently.
2014-07-20 20:44:42 +06:00
5f3fc624a5 Sequencer: Fix wrong blur result when one of the sizes is zero 2014-07-20 15:37:07 +06:00
5290c3a145 Early out from gaussian blur if both sizes are zero 2014-07-20 14:32:28 +06:00
73d157e6f5 Bugfix T41042: Irrelevant Bezier handles still affect Graph Editor Show All
The "Show All" and "Show Selected" operators in the Graph Editor was taking into
account all handles on keyframes, even when some of those would be invalid and/or
set to nonsense values (e.g. for any interpolation mode other than "Bezier")
2014-07-20 19:22:22 +12:00
c03d8a17f1 Bugfix T41077: Dope sheet's column select (alt + click) gets ignored with NLA Strips
NLA mapping corrections were being applied twice, causing column select to fail
2014-07-20 17:19:46 +12:00
7c7b7302d3 Math Lib: use variable length args for mul_serie_m3,m4 (instead of trailing NULL's) 2014-07-20 14:01:42 +10:00
3ca78a40e8 Fix T41122: Mask modifier followed by hair particles causes crash on render (cycles).
There were several small issues/inconsistencies if how particles' org face index was checked,
leading in some cases to invalid indices and hence mem access, in RNA UV/VCol compute for particles.
Note org code RNA one was copied from (in BI's convertblender.s) is much more complicated,
and seems to never reach those breaking conditions.

Also deduplicated most code in those UV/VCol particles funcs, they were doing mostly the same thing!

Finally, also got rid of annoying `NO CD_ORIGSPACE, error out of range` error message in console,
was another case of not checking whether we did have any faces in final mesh!
2014-07-20 00:52:36 +02:00
3b2f6dbf98 Sequencer: Add gaussian blur effect
Currently this gaussian blur implementation accumulates values in the
square kernel rather that doing X direction and then Y direction because
of the lack of using multiple-staged filters.

Once we can we'll implement a way to apply filter as multiple stages we
can optimize hell of a lot in here.

Another thing we can do is to use SSE2 instructions here.
2014-07-19 22:17:22 +06:00
00b29156e0 Defines: replace ELEM3-16 with ELEM(...), that can take varargs 2014-07-20 01:33:40 +10:00
7e8626bbce Code cleanup: warnings 2014-07-20 00:38:52 +10:00
1161b00c76 Fix T40658: UV map node not working for GLSL materials. 2014-07-19 14:59:41 +02:00
1f3c8466a8 Fix T41100: draw other object UVs doesn't work when both objects have no image. 2014-07-19 14:26:24 +02:00
00cb9e5f1c Editmesh: Add options for selecting manifold
Manifold was defined as any edges not using 2 faces,
however its useful to have some options here.

You can now select between Wire/Boundary/Multi-Face/Non-Contiguous/Verts

Note the Non-Contiguous option is new,
it selects edges between faces pointing in different directions.
2014-07-19 21:25:53 +10:00
8ad607bbe0 Cleanup: Use more logically constructed ELEM macros
- name primary comparison var 'v'
- names remain same when expanded
- no odd mixing of macros, use prev ELEM + extra arg
- use 16, even if not used yet, saves adding more in future
2014-07-19 15:00:09 +10:00
e0d8e62f2b Fix T41010: MetaBall Duplivert Unwanted Movement Bug.
BKE_scene_base_iter_next() was completely messing poor dupli objects' matrices...

Note this func should be reworked, but as stated in comments, it should not exist at all,
DAG should be used here, so until we have new shinny one we can live with this.

Also, mballs do not behave correctly when used as duplis (org object remains visible/rendered,
unlike any other object type). This will be fixed in a separate patch/commit,
since it proved to be rather tricky to handle.
2014-07-19 00:41:13 +02:00
a474125893 MBall cleanup: remove unused F_ERROR references, als fix/enhance BKE_mball_basis_find()
BKE_mball_basis_find() was making a bunch of string manipulations for all MBall objects
(including duplis), and then making a (broken!) check to do nothing in case of duplis mball!

Now it makes correct check in early stage.
2014-07-19 00:40:58 +02:00
eb7eafbf19 Fix RGN_DRAW_REFRESH_UI flag being overwritten 2014-07-19 08:11:52 +10:00
78d84d78a1 Cleanup: warning 2014-07-19 08:11:41 +10:00