Age | Commit message (Collapse) | Author |
|
Instead of keeping a list of allocations, write to unique addresses
based on the BLI_mempool address since we know this is unique.
|
|
Since moving to MLoopTri this is no longer needed.
|
|
Checking if faces exist was a bottleneck,
use a simpler version of this function for triangles.
Gives approx 1.6x overall speedup (when many edges are being collapsed).
|
|
|
|
When snapping to edge/vert, check the distance to the ray
instead of the screen-space pixel projection.
This also corrects the conversion of `dist_to_ray_sq` to `dist_px` which was being done incorrectly.
While this change was planned, it fixes T48791, caused by error in b01a56ee.
|
|
Differential Revision: https://developer.blender.org/D712
|
|
image.
|
|
full sample.
Differential Revision: https://developer.blender.org/D2080
|
|
PBVH-nodes attached to the vertex to be deleted were updated,
but not nodes attached to the other vertex in the edge.
|
|
|
|
This was checking vert/face for every lookup,
so far the type is always known, do a direct lookup instead.
|
|
Gives small performance boost.
|
|
Was just checking the value of the first
|
|
|
|
Two were actual bugs, though they existed only in unused code:
* In Freestyle it was unintentionally copying a scene rather than referencing it.
* In BLI_array_store_is_valid there was use of uninitialized memory.
|
|
|
|
As pointed by Brecht, previous fix in rB61b49de44940 was actually incomplete,
we could still hit float rounding issue and hence same value in more than one consecutive
items of element_sum.
New solution is a bit different, we remove the 'minimal weight' check, and rather simply
ignores an item when the sum of its normalized weight to previous item's sum does not add
anything. Shall be safe and 100% effective this time!
|
|
This patch is another step to achieve BI and it's Viewport consistency for cubemap textures.
{F318879}
To test world_space_shading flag D2072 is required.
Alexander (Blend4Web Team)
Reviewers: campbellbarton, brecht
Subscribers: homyachetser, Evgeny_Rodygin, AlexKowel, yurikovelenov
Differential Revision: https://developer.blender.org/D2074
|
|
This patch fixes shortcoming of D2046.
The original behavior without world_space_shading flag is that Texture node expects the reflected vector in view space. But with world_space_shading it should be in world space.
In attached file you will see a simple material setup and a node material analogue.
Simple material must have the same behavior regardless world_space_shading flag.
{F318866}
Alexander (Blend4Web Team)
Reviewers: brecht
Reviewed By: brecht
Subscribers: campbellbarton, homyachetser, Evgeny_Rodygin, AlexKowel, yurikovelenov
Differential Revision: https://developer.blender.org/D2072
|
|
Environment lighting (aka ambient) is a key component of any renderer.
It's implemented like the Environment lighting of BI render for Approximate Gather mode. It support "Sky Color" and "White" Environment lighting modes.
It would be great if the user could see actual lighting conditions right in the Blender viewport instead of waiting for the renderer to complete the final image, exporting for external renderer or for a game engine.
Before:
{F113921}
After:
{F113922}
Example file: {F319013}
Original author: valentin_b4w
Alexander (Blend4Web Team)
Reviewers: valentin_b4w, campbellbarton, merwin, brecht
Reviewed By: brecht
Subscribers: panzergame, youle, duarteframos, AlexKowel, yurikovelenov, dingto, Evgeny_Rodygin
Projects: #rendering, #opengl_gfx
Differential Revision: https://developer.blender.org/D810
|
|
|
|
|
|
A GL_INT buffer was reported as GL_BYTE.
|
|
|
|
This can be used to re-allocate bmesh data with/without tool flags.
Needed for Symmetrize since it uses bmesh operators from dyntopo.
|
|
|
|
|
|
This is in fact very hairy situation here... Objects are only refcounted by scenes,
any other usage is 'free', which means once all object instanciations are gone Blender
considers it can delete it.
There is a trap here though: indirect usages. Typically, we should never modify linked data
(because it is essencially useless, changes would be ignored and ost on next reload or
even undo/redo). This means indirect usages are not affected by default 'safe' remapping/unlinking.
For unlinking preceeding deletion however, this is not acceptable - we are likely to end with
a zero-user ID (aka deletable one) which is still actually used by other linked data.
Solution choosen here is double:
I) From 'user-space' (i.e. outliner, operators...), we check for cases where deleting datablocks
should not be allowed (indirect data or indirectly used data), and abort (with report) if needed.
II) From 'lower' level (BKE_library_remap and RNA), we also unlink from linked data,
which makes actual deletion possible and safe.
Note that with previous behavior (2.77 one), linked object would be deleted, including from linked data -
but then, once file is saved and reloaded, indirect usage would link back the deleted object,
without any instanciation in scene, which made it somehow virtual and unreachable...
With new behavior, this is no more possible, but on the other hand it means that in situations of dependency cycles
(two linked objects using each other), linked objects become impossible to delete (from user space).
Not sure what's best here, behavior with those corner cases of library linking is very poorly defined... :(
|
|
Also define single callback func typedef, cleaner this way!
Note: maybe we want to do that for the other callbacks too (data, etc.), but will be enough for now.
|
|
instanced operand
This is quite tricky situation which combined:
- Boolean modifier which accesses other object's derived mesh
(in fact, it's nothing to do with boolean modifier, any other
modifier which uses other's DM will have same bug).
- Dependency cycles in the scene which is rather russian-roulette
from the cycle solver point of view.
- Multiple instanced objects used as boolean operand.
With all this things combined boolean modifier was accessing operand's derived
mesh which was referencing data from Mesh datablock. The issue is that those
references are becoming invalid after EDBM_mesh_load().
This function already had code to make sure object itself does not end up with
dangling pointers from derived mesh. Make it now so no possible instanced objects
are left with dangling pointers.
And who said it's a good idea to reference something from derived mesh..
|
|
The Curves widget has buttons to zoom in on the curve. However the
click detection code doesn't take it into account, and at full zoom
in click on curve is detected very far from the actual visible curve.
Change it to compare the position to the actual line segments
in the UI coordinate space, i.e. with curve zoom applied.
|
|
|
|
When no triangulation runs we can skip re-calculating normals.
|
|
|
|
Saves 8 bytes per vert/edge/face.
Gives overall ~20-25% memory saving for dyntopo sculpting
and modifiers that use BMesh.
|
|
|
|
|
|
changes in BLI_kdopbvh:
- `BLI_bvhtree_find_nearest_to_ray` now takes is_ray_normalized and scale argument.
- `BLI_bvhtree_find_nearest_to_ray_angle` has been added (use for perspective view).
changes in BLI_bvhutils:
- `bvhtree_from_editmesh_edges_ex` was added.
changes in math_geom:
- `dist_squared_ray_to_seg_v3` was added.
other changes:
- `do_ray_start_correction` is no longer necessary to snap to verts.
- the way in which the test of depth was done before is being simulated in callbacks.
|
|
|
|
|
|
|
|
0b5a0d84 caused regression since edit-mesh BVH wasn't cached,
each shrink-wrap modifier created its own BVH.
|
|
This way we avoid regression of sculpt mode shading.
Hopefully now it's all fine.
|
|
|
|
Regression caused by own changes to make texture paint more efficient
from workflow point of view.
Now the idea is to use vertex color outside of paint mode, so we don't
break any compatibility here.
|
|
|
|
For simple cases bitmasks were OK, but didnt work for vert/edge, vert/edge tests.
Tag verts instead, makes logic easier to follow and gives minor speedup.
|
|
Quiets assert
|
|
|
|
Reviewers: juicyfruit
Reviewed By: juicyfruit
Differential Revision: https://developer.blender.org/D1892
|