Age | Commit message (Collapse) | Author |
|
|
|
Needed to add GL_TEXTURE_RECTANGLE support to basic-shader.
|
|
The basic shader needs to be temporarily disabled in this case.
Add macros for temp store/restoring the state.
|
|
This allows for it to be more easily tested.
|
|
|
|
Newly computed custom normals were forgotten during poly flipping, leading
to wrong custom normals being assigned to wrong loop...
Dead simple, but was tough to track down this one!
|
|
|
|
At the moment light shading in Blender is produced in viewspace. Apparently, that's why
shader nodes work with normals in camera space. But it is not convenient for artists.
The more convenient approach is implemented in Cycles where normals are represented in world space.
Blend4Web Team designed the engine keeping in mind shader parameters readability,
so normals are interpreted in world space as well. And now our users have to use some tweaks, like
empty node group with the name "Replace", which is replacing one input by another on the engine side
(replacing working configuration in Blender Viewport by the configuration that has the same behavior in the engine).
This patch adds the ability to switch to world space for normals and lamp vector in BI and Viewport.
This patch is very important to us and we crave to see this patch in Blender 2.7 because
it will significantly simplify Blend4Web material creation workflow.
{F315547}
{F315548}
Reviewers: campbellbarton, brecht
Reviewed By: brecht
Subscribers: homyachetser, Evgeny_Rodygin, AlexKowel, yurikovelenov
Differential Revision: https://developer.blender.org/D2046
|
|
Was using O(n^2) lookup on ID's with undo.
This caused undo to hang with 1000's of data-blocks
(especially with heavy scenes & outliner-space, which doesn't even need to be visible to cause a slow-down).
Internally this uses a ghash per id-type, which is lazy-initialized.
Each key uses the name and library since there may be name collisions between libraries.
Developer Notes:
- Adds small `BKE_main_idmap_*` API.
- Needed to change linking order for this to build.
|
|
This lets us use MAX_LIBARRAY to loop over id-codes in Main.
|
|
Instead index libraries, makes minor speedup when using many libraries.
|
|
Allows to avoid generating flipped faces when using extreme normal modifications.
Related to T48576.
|
|
The Shift key can be held while adjusting profile to make finer changes
to the profile (just as it already does when adjusting offset).
|
|
|
|
|
|
Being granular means we need to re-build depsgraph a bit more often..
The issue was caused by rigidbody requiring some special nodes to
handle physics which were not created with just tagging object for
update.
|
|
not in front
The issue was caused by non-watertight nature of intersection, which is now addressed.
Hopefully it doesn't cause any regression caused by uninitialized precalculated storage.
|
|
Makes behavior of proxy_from backlink working similar to the old dependency graph.
it's nasty, but needed here in the studio to get proxies fixes ASAP.
|
|
|
|
in this case we only need to check if any id's need to be read.
|
|
|
|
ID's have a flag member too, best avoid confusion here.
|
|
|
|
|
|
|
|
holes not supported)
|
|
|
|
FCurve evaluation depended on FCurve.curval, which isn't threadsafe.
Now only use this value for debug display,
and pass the value instead of storing in the FCurve for all but debug-display.
|
|
This covers the following workflow. Animator will disable Update All 3D views
in order to get quick playback in a particular 3D editor. However, it also
handy to see playback in all editors and image editors to see comparison of
animation and reference footage.
So the idea here is to refresh reasonable editors when playback is invoked
from animation editors.
Commit to make Hjalti happy.
|
|
- the name of the enumerator `SNAP_NOT_OBEDIT` was changed to `SNAP_NOT_ACTIVE`.
- the parameter `snap_to_flag` was moved to outside `SnapObjectParams`.
- the member `use_object_edit` was renamed to `use_object_edit_cage`.
- added the arg `params` in `ED_transform_snap_object_project_ray`.
- simplifications in the loop of the function `snapObjectsRay`.
|
|
Introduced in 0b5a0d84, thanks to Brecht for spotting.
|
|
Enabling auto-run, then excluding a path but leaving it set to a blank value would ignore all paths.
|
|
|
|
Using double pixel size prevented 1px brushes
D2044 by @jeske
|
|
That was a nice and funny hunt, albeit rather time consumming!
To summarize, so far code was using a static global gpu_buffer for pbvh vbo drawing
of 'grid' types (multires mostly?).
There were two issues here:
1) Global gpu buffer was assigned to GPU_PBVH_Buffers->index_buf, but then nearly no
check was done when freeing that buffer, to ensure we were not freeing the global one
(not totally sure this one was actually causing any issue, but was bad and unsafe anyway).
Was solved by adding a flag to GPU_PBVH_Buffers to indicate when we are using some
'common' buffer here, which freeing is handled separately.
2) Main issue: if several multires objects in sculpt mode with different grid size
were present simultaneously, the global gpu buffer had to be resized for each object draw
(i.e., freed and re-allocated), but then the pbvh nodes from other objects storing freed reference
to that global buffer had no way to know that it had been freed, which was causing the segfault & crash.
Was solved by getting rid of that global buffer, and instead allocating one 'grid_commmon_gpu_buffer' per pbvh.
Told ya baby, globals are *PURE EVIL*!
|
|
This seems to be illegal and not productive anyway. Do it ahead of
a time now, which solves shading issues in edit mode and prevents
assert from happening.
|
|
Moving ownership of the string to the button's 'rename_orig'
leaked when the button didn't have a uiAfterFunc.
|
|
|
|
Failed with chunk merging disabled
|
|
Minor optimization, avoid some checks each iteration.
|
|
|
|
|
|
missed from 7a8bd2eae
|
|
|
|
|
|
Useless change in fact, sorry for the noise.
This reverts commit b08473680e141ab6f28f99fc3b1dbbc4add89bed.
|
|
loading in Blender.
Issue here is that for Blender, any pass which name starts with 'Diffuse' is considered
a diffuse pass - and it does not really support several passes of the same type in renderresult.
So for now, passtype_from_name() is now checking whether a pass of same type already exists
in render layers, and return 0 (uknown passtype) in this case.
|
|
Around ~10% improvement in own tests.
|
|
saved in Edit mode.
In that case, surface modifier won't run (until surface object goes back to Object mode),
and its bvhtree remains NULL.
|
|
This reverts commit d5e0e681cea846facb4f2777921f6612be3ee193.
Tsk, these functions return false on a match.
|