Commit Graph

1341 Commits

Author SHA1 Message Date
44aa221600 Utility functions for getting boundbox size/scale 2014-08-11 13:25:25 +10:00
e6957bc1d4 Correct change to dupli-drawing
Need exceptions so dupli-frames objects draw in render-only mode.
2014-08-06 04:57:11 +10: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
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
00b29156e0 Defines: replace ELEM3-16 with ELEM(...), that can take varargs 2014-07-20 01:33:40 +10:00
8620008ccd Fix T41113: Hide doesn't work on particle systems
Particles could completely cancel Hide flag! 'Accumulative' bool is not a really good idea here,
hide (or render-hide) are some kind of 'absolute' no-go.

Found another issue in that area, duplicated objects would still show in 'render override' mode,
when object was render-disabled.

Hopefully things are better now.
2014-07-17 23:49:08 +02:00
4236e3bebf Fix T40850: object emitter of particles not visible in viewport when GLSL and "only render" checked.
Objects were hidden in "only render" mode if they were duplicators. This is correct in general, but for particles should be disabled by the "show emitter" option.
2014-06-29 13:31:46 +02:00
7df2717727 Add ED_paint.h, split out ED_sculpt.h
also rename some functions to match our convention
2014-06-23 22:00:44 +10:00
74f2e7fbc7 View3D: Handle un-weighed vertex color properly
D608 by Gaia Clary
2014-06-19 22:34:52 +10:00
ce4256ce5e Code cleanup: replace odd pointer casting with structs 2014-06-19 18:38:37 +10:00
bf58bd10bb Correct error in last commit 2014-06-19 04:17:38 +10:00
bab75f8bf6 Editmesh: add ability to show weights on wire T39054, D585 2014-06-19 04:10:07 +10:00
c95d093e81 Code cleanup: move editfont drawing into its own function. 2014-06-16 17:23:44 +10:00
3f444d9984 Object Drawing: minor refactor, don't check glsl in wire-mode
also don't call glBlendFunc for hidden objects.
2014-06-16 17:23:44 +10:00
57372f4ef8 Curve: use zero length array for BevList for less confusing syntax 2014-06-15 14:23:23 +10:00
716430ab64 Code cleanup: comments 2014-06-15 12:15:53 +10:00
fa17e3b14c UI: refactor text cache to use zero length arrays
also correct some bad casts
2014-06-15 04:32:41 +10:00
04c2e5d593 Fix T40543: Duplicators draw with 'Render Only' 2014-06-09 15:55:18 +10:00
fc1c7635e8 Optimize editmode drawing edgees
Was interpolating and setting the color twice per edge.
Now only set the color when needed (can be once per draw),
~2x speedup for edge drawing.
2014-06-04 20:44:26 +10:00
5ee55caba5 Fix for dupli's ignoring color in set-scenes
also skip setting wire color drawing depth
2014-06-04 14:24:05 +10:00
b3e9a71a3d Fix T40489: Curve drawing skipped loose-wire when mixed with solid faces 2014-06-04 08:39:49 +10:00
6bb459f6d7 Fix T40403: Particles disappear after rendering
Read the comment in ensure_curve_cache, it tells it all.
2014-05-28 15:28:52 +06:00
049b6cfa6d Fix for image garbage collection failing to run for render-only views
Check for freeing old images was running per-object, move this to viewport drawing.
2014-05-22 11:58:07 +10:00
90db85a263 Fix T40283: Matcaps disables GLSL shadows 2014-05-22 11:28:03 +10:00
be980b9f7d 3D Text: Change textbox placement to ignore font scale
Logic here was very stupid, texboxes would have their initial
locations scaled by font size but not their width/height.

Now its possible to change font size while keeping the textbox layout.

Other fixes

- tab character didn't work properly with textboxes.
- memory leak when VFontData was missing.
2014-05-16 10:32:29 +10:00
4ca67869cc Code cleanup: remove unused includes
Opted to keep includes if they are used indirectly (even if removing is possible).
2014-05-01 04:47:51 +10:00
27591458aa Correct own regression drawing lamp outline 2014-04-30 04:52:31 +10:00
d30988bbf1 Code cleanup: avoid sin/cos calls when drawing sun lamp 2014-04-30 02:12:11 +10:00
c67bd49e56 Code cleanup: use 'const' for arrays (editors) 2014-04-27 00:25:15 +10:00
d4261d02bd Quiet warnings 2014-04-24 02:34:34 +10:00
70fdcebb93 Fix T39781: Autosmooth feature: erroneously showing hidden vertices' normals too when in "vertex per face" display
So, turned out after all we need a foreachmapped helper for loops as well... :/

CDDM and EBDM were reasonably simple, but I fought hours with CCGDM (subsurf) to find only a
bad working solution (see D478). So I fallback to a code similar to CDDM one.
Probably not nice for performances, but loops and subsurf are not matching well...

Reviewers: campbellbarton

CC: brecht

Differential Revision: https://developer.blender.org/D478
2014-04-23 15:25:12 +02:00
fc28732ba6 Blender Internal: Add material property "Cast" which can disable both ray and buffer shadows.
Also refactor:
- Material property UI related to shadows
- Preparation of OR-ed mode flags (ma->mode_l) of render materials

Reviewers: brecht

Reviewed By: brecht

Differential Revision: https://developer.blender.org/D313
2014-04-23 15:03:34 +09:00
f55ca54be1 Object drawing: test the flag, without comparing the value 2014-04-21 19:29:48 +10:00
55d75f5020 Code cleanup: correct abs use
also minor cleanup to rotation code
2014-04-21 02:02:21 +10:00
ddc88ea419 Fix T39765 crash on text with generative modifiers. 2014-04-17 15:58:40 +03:00
1c0b6c4f30 Code cleanup: use bools for DM 2014-04-17 20:03:39 +10:00
55c9b352c2 Fix mistake in recent DM material changes 2014-04-17 18:05:57 +10:00
3e3efae7e9 Viewport Text Drawing: replace single allocs with a memarena
- pass label strlen since in many cases its already known.
- use single linked list for cached text drawing.
- add BLI_link_utils.h for single linked list macros.

own tests give approx 22% overall speedup.
2014-04-17 16:04:28 +10:00
ea610e655c Style cleanup: C & pep8 2014-04-15 13:11:48 +10:00
18e4224142 Split Normals I (1/5): basis for split normals (nearly nothing user-visible here):
* Add a new calcLoopNormals function to DerivedMesh struct, and implement it for CDDM and CCGDM (subsurf).
  EditDerivedBMesh (edit mode DM) only gets a dummy one in this commit.
* Add a tessellated version of CD_LOOPNORMAL layer (CD_TESSLOOPNORMAL), with relevant code to handle it
  (tessellation, rna access, etc.).
* Change auto_smooth options of Mesh (angle now in radian internaly, and toggle is now used to enable/disable
  split normals in DM creation process). Note BI render code is not touched here, hence its behavior regarding
  this option is now incoherent, will be addressed in a separate commit.

Reviewers: campbellbarton

CC: brecht

Differential Revision: https://developer.blender.org/D365
2014-04-13 12:19:00 +02:00
88298f1c40 Drawing: use const for wire color 2014-04-11 15:41:20 +10:00
3216e4b202 API Cleanup: Use BKE_constraint prefix for constraint api 2014-04-11 11:47:07 +10:00
c3fefebe47 More instances of needed material initialization. 2014-04-10 01:16:40 +03:00
c782505775 Back buffer selection needs updates to materials. 2014-04-09 19:51:29 +03:00
9de24c82ba View3D: disable LOD when game engine is disabled or ifdef'd 2014-04-09 11:52:34 +10:00
b5d3f183b0 Add material storage to derivedmesh.
The variables are considered invalid unless DM_update_materials is
called prior to use. Only use case currently is
mesh drawing. This helps with excessive allocation on the stack during
GPUObject creation, but may help elsewhere in the future as well.
2014-04-09 04:03:44 +03:00
cced07661a Matcaps.
Instead of setting color every time, just set it on material enable.
Handles all cases of surfaces. Thanks to Campbell for pointing out!
2014-04-08 01:25:49 +03:00
574b0e2c30 Fix T39626 Matcaps not working in edit mode.
Set a while color before the draw call. This will be ineffective in GLSL
but will affect matcaps.
2014-04-07 21:49:02 +03:00
3ed49a810d Make matcaps suck less
This commit does various changes for matcaps:

One is taking advantage of drawing with pbvh (which would only happen
with dyntopo previously) and drawing with partial redraw during
sculpting.

The second one is support for masks. To make this work in the special
case of multires, which uses flat shading, I use the only available flat
shaded builtins in OpenGL 2.0 which are color and secondary color.

Abusing colors in that way is also essential for flat shading to work if
we are to use pbvh draw in multires, since it is the color that is being
interpolated flatly, not the normal (which can only interpolated
smoothly). The pbvh drawing code for multires used last triangle
element's normal to compute the shading which would only produce smooth
results. This could change if we did the shading in the vertex shader
for flat shaded primitives, but this is more complex and makes it harder
to have one shader to rule the mole.

Also increased the brightness of the default diffuse color for
sculpting. This should be useful since artists like to tweak the
lighting settings and it will give them the full dynamic range of the
lights, but also it helps with correct brightness of sculpted matcaps.

Reviewers: brecht

Differential Revision: https://developer.blender.org/D435
2014-04-01 19:27:13 +03:00
617557b08e Code cleanup: remove TRUE/FALSE & WITH_BOOL_COMPAT define 2014-04-01 15:22:28 +11:00