http://www.miikahweb.com/feed.php MiikaHweb - Blender Viewport_bvh_select Branch http://www.miikahweb.com/ MiikaHweb - Blender Viewport_bvh_select Branch fi Tue, 24 Nov 20 15:09:17 +0000 MiikaHweb RSS contact at miikahweb.com <![CDATA[[788c75e]: Merge branch 'master' into viewport_bvh_select]]> http://www.miikahweb.com/en/blender/git-logs/commit/788c75ed879fb25a35c0a0e9245df7aeaae2f4ab 788c75e
Branches : viewport_bvh_select
Author : Julian Eisel (Severin)
----------------------------------------
Merge branch 'master' into viewport_bvh_select

----------------------------------------
0 Paths Changed]]>
Thu, 08 Sep 2016 10:16:41 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/788c75ed879fb25a35c0a0e9245df7aeaae2f4abJulian Eisel
<![CDATA[[1ffd971]: Add/use BKE_object_boundbox_to_worldspace]]> http://www.miikahweb.com/en/blender/git-logs/commit/1ffd9714b930dbef8059403d69650476f625f554 1ffd971
Branches : viewport_bvh_select
Author : Julian Eisel (Severin)
----------------------------------------
Add/use BKE_object_boundbox_to_worldspace

----------------------------------------
3 Paths Changed]]>
Sun, 28 Aug 2016 13:59:39 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/1ffd9714b930dbef8059403d69650476f625f554Julian Eisel
<![CDATA[[f501e49]: Merge branch 'master' into viewport_bvh_select]]> http://www.miikahweb.com/en/blender/git-logs/commit/f501e495fbe42421626b866a085a7546d6cd634b f501e49
Branches : viewport_bvh_select
Author : Julian Eisel (Severin)
----------------------------------------
Merge branch 'master' into viewport_bvh_select

----------------------------------------
0 Paths Changed]]>
Sun, 28 Aug 2016 13:27:30 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/f501e495fbe42421626b866a085a7546d6cd634bJulian Eisel
<![CDATA[[286a4ad]: Avoid allocating bounding boxes]]> http://www.miikahweb.com/en/blender/git-logs/commit/286a4ad6f9f773d2862530227b61a8aacfb253b9 286a4ad
Branches : viewport_bvh_select
Author : Julian Eisel (Severin)
----------------------------------------
Avoid allocating bounding boxes

----------------------------------------
11 Paths Changed]]>
Sun, 28 Aug 2016 02:21:48 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/286a4ad6f9f773d2862530227b61a8aacfb253b9Julian Eisel
<![CDATA[[68a891f]: Support selecting empties using new BVH selection]]> http://www.miikahweb.com/en/blender/git-logs/commit/68a891f2e5ebc2b6ea6c4a7c0ef991f789915585 68a891f
Branches : viewport_bvh_select
Author : Julian Eisel (Severin)
----------------------------------------
Support selecting empties using new BVH selection

Adding support for all empty draw types was a bit more involved, but things work now ;)

----------------------------------------
11 Paths Changed]]>
Sun, 28 Aug 2016 01:40:11 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/68a891f2e5ebc2b6ea6c4a7c0ef991f789915585Julian Eisel
<![CDATA[[af248f4]: Support selecting speakers using new BVH selection]]> http://www.miikahweb.com/en/blender/git-logs/commit/af248f4941f94a9adf549fcfab9e34ecb05793fd af248f4
Branches : viewport_bvh_select
Author : Julian Eisel (Severin)
----------------------------------------
Support selecting speakers using new BVH selection

----------------------------------------
3 Paths Changed]]>
Sat, 27 Aug 2016 21:59:00 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/af248f4941f94a9adf549fcfab9e34ecb05793fdJulian Eisel
<![CDATA[[c69f623]: Support selecting lamps using new BVH selection]]> http://www.miikahweb.com/en/blender/git-logs/commit/c69f6236993790e6dbe6121bd78c3d1be3f52876 c69f623
Branches : viewport_bvh_select
Author : Julian Eisel (Severin)
----------------------------------------
Support selecting lamps using new BVH selection

----------------------------------------
7 Paths Changed]]>
Sat, 27 Aug 2016 21:34:36 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/c69f6236993790e6dbe6121bd78c3d1be3f52876Julian Eisel
<![CDATA[[1063405]: Merge branch 'master' into viewport_bvh_select]]> http://www.miikahweb.com/en/blender/git-logs/commit/106340521978b31fc7bc7b1e61d37d070868b4f5 1063405
Branches : viewport_bvh_select
Author : Julian Eisel (Severin)
----------------------------------------
Merge branch 'master' into viewport_bvh_select

----------------------------------------
0 Paths Changed]]>
Thu, 25 Aug 2016 15:46:07 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/106340521978b31fc7bc7b1e61d37d070868b4f5Julian Eisel
<![CDATA[[ba938f1]: Correct license header]]> http://www.miikahweb.com/en/blender/git-logs/commit/ba938f10127b0ff0911affb733e5ba481e122530 ba938f1
Branches : viewport_bvh_select
Author : Julian Eisel (Severin)
----------------------------------------
Correct license header

----------------------------------------
1 Path Changed]]>
Thu, 25 Aug 2016 22:24:46 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/ba938f10127b0ff0911affb733e5ba481e122530Julian Eisel
<![CDATA[[61c972c]: Fix crash on undo and file read]]> http://www.miikahweb.com/en/blender/git-logs/commit/61c972c3ef2c4c8a540f342bcfedf92f17dee5f3 61c972c
Branches : viewport_bvh_select
Author : Julian Eisel (Severin)
----------------------------------------
Fix crash on undo and file read

----------------------------------------
2 Paths Changed]]>
Thu, 25 Aug 2016 15:45:01 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/61c972c3ef2c4c8a540f342bcfedf92f17dee5f3Julian Eisel
<![CDATA[[695da4f]: Initial BVH based object mode selection]]> http://www.miikahweb.com/en/blender/git-logs/commit/695da4fd62a4ade9c47005ca032930ff3dabb28c 695da4f
Branches : viewport_bvh_select
Author : Julian Eisel (Severin)
----------------------------------------
Initial BVH based object mode selection

As part of the viewport project, we wanted to switch from OpenGL based to BVH based selection (see https://wiki.blender.org/index.php/Dev:2.8/Viewport#Discussion_Items). This should increase performance and make selection drawing and hence driver independent. (OpenGL selection was always an issue with buggy drivers.)

This commit adds initial functions for building and visualizing an object BVH (AABB) using the multi-threaded BLI_bvhtree and uses it for object mode selecting. Only basic selection works now, not taking care for movie clip editor selection syncing or so. One idea was to keep the actual BVH part a bit separate from selection, so that it can be reused e.g. for culling out objects out of view frustum before drawing.
Quite some speedup is already visible, but it's not fair to compare to previous selection, since we're only doing bounding box intesection checks currently. Detailed geometry intersection checks are not done yet, neither are overlapping objects handled.

One issue I faced was that some object types (cameras, lamps, speakers) are basically infinite small points with no visible bounding box. I added some functions to get the visual bounding box for those, but only implemented it for cameras so far.

Main TODOs I can see (random order):
* Selection should behave just like current OpenGL based selection.
* Lasso, Circle & Box select.
* The BVH tree is currently recreated on every redraw, more reasonable updating needs to be checked on. It's unsure if it's better to commonly recreate the entire tree or if we can use some more advanced caching and updating. The BLI_bvhtree isn't really flexible when it comes to updating (e.g. you can't insert objects after initial creating), so maybe adding a different BVH type will be needed.
* Do more detailed geometry intersection checks. OpenSubdiv needs some special attention here, since its geometry only lives on the GPU (AFAIK). It should be possible to send geometry patches from GPU to CPU so we can create AABBs for BVH ray casting.
* Better handling for overlapping geometry.
* BVH based selection for other modes (edit mode, pose mode, etc). I'd like to make the edit mode BVH lookups efficient enough to allow performant pre-selection highlighting.
* Allow selecting lamps and speakers (not possible currently).

----------------------------------------
14 Paths Changed]]>
Thu, 25 Aug 2016 15:21:44 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/695da4fd62a4ade9c47005ca032930ff3dabb28cJulian Eisel