http://www.miikahweb.com/feed.php MiikaHweb - Blender Commits By Kevindietrich http://www.miikahweb.com/ MiikaHweb - Blender Commits By Kevindietrich fi Tue, 15 Jun 21 09:31:21 +0000 MiikaHweb RSS contact at miikahweb.com <![CDATA[[05a3652] cycles_procedural_api: Import changes from code review branches.]]> http://www.miikahweb.com/en/blender/git-logs/commit/05a3652edaf4bb1878fa60c658c95562e831b287 05a3652
Branches : cycles_procedural_api
Author : Kévin Dietrich (kevindietrich)
----------------------------------------
Import changes from code review branches.

----------------------------------------
36 Paths Changed]]>
Tue, 15 Jun 2021 07:00:46 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/05a3652edaf4bb1878fa60c658c95562e831b287Kévin Dietrich
<![CDATA[[ec44b4a] cycles_procedural_api: Merge branch 'master' into cycles_procedural_api]]> http://www.miikahweb.com/en/blender/git-logs/commit/ec44b4a3d73416678d09d7a03749072e9f0e052b ec44b4a
Branches : cycles_procedural_api
Author : Kévin Dietrich (kevindietrich)
----------------------------------------
Merge branch 'master' into cycles_procedural_api

----------------------------------------
0 Paths Changed]]>
Tue, 15 Jun 2021 06:38:39 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/ec44b4a3d73416678d09d7a03749072e9f0e052bKévin Dietrich
<![CDATA[[87a9d26] cycles_procedural_api: Merge branch 'master' into cycles_procedural_api]]> http://www.miikahweb.com/en/blender/git-logs/commit/87a9d26c1ed2e7316c3c6e30eedde2327eb98139 87a9d26
Branches : cycles_procedural_api
Author : Kévin Dietrich (kevindietrich)
----------------------------------------
Merge branch 'master' into cycles_procedural_api

----------------------------------------
0 Paths Changed]]>
Fri, 11 Jun 2021 17:05:48 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/87a9d26c1ed2e7316c3c6e30eedde2327eb98139Kévin Dietrich
<![CDATA[[80811aa] override-recursive-resync: Fix T88515: Cycles does not update light transform from linked...]]> http://www.miikahweb.com/en/blender/git-logs/commit/80811aa581361b3a03df9c1b84af70218847f188 80811aa
Branches : override-recursive-resync
Author : Kévin Dietrich (kevindietrich)
Committed By : Bastien Montagne (mont29)
----------------------------------------
Fix T88515: Cycles does not update light transform from linked collections

When moving a linked collection, we seem to only receive a depsgraph update
for an empty object so the Blender synchronization cannot discriminate it
and tag the object(s) (light or geometry) for an update through
id_map.set_recalc.

This missing transform update only affects lights since we do not check
manually if the transformations were modified like we do for objects.

To fix this, add a check to see if the transformation is different provided
that a light was already created.

Reviewed By: brecht

Maniphest Tasks: T88515

Differential Revision: https://developer.blender.org/D11574

----------------------------------------
1 Path Changed]]>
Mon, 14 Jun 2021 14:34:45 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/80811aa581361b3a03df9c1b84af70218847f188Kévin Dietrich
<![CDATA[[b313525] master: Fix T88515: Cycles does not update light transform from linked...]]> http://www.miikahweb.com/en/blender/git-logs/commit/b313525c1bd031792dbfb82979eb62d9a927b111 b313525
Branches : master
Author : Kévin Dietrich (kevindietrich)
----------------------------------------
Fix T88515: Cycles does not update light transform from linked collections

When moving a linked collection, we seem to only receive a depsgraph update
for an empty object so the Blender synchronization cannot discriminate it
and tag the object(s) (light or geometry) for an update through
id_map.set_recalc.

This missing transform update only affects lights since we do not check
manually if the transformations were modified like we do for objects.

To fix this, add a check to see if the transformation is different provided
that a light was already created.

Reviewed By: brecht

Maniphest Tasks: T88515

Differential Revision: https://developer.blender.org/D11574

----------------------------------------
1 Path Changed]]>
Sat, 12 Jun 2021 02:13:43 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/b313525c1bd031792dbfb82979eb62d9a927b111Kévin Dietrich
<![CDATA[[4fbdfe3] cycles_procedural_api: Support reading per vertex UVs on a meshes.]]> http://www.miikahweb.com/en/blender/git-logs/commit/4fbdfe30d9d7f5c7091eb5129307b43f79e3b0c9 4fbdfe3
Branches : cycles_procedural_api
Author : Kévin Dietrich (kevindietrich)
----------------------------------------
Support reading per vertex UVs on a meshes.

----------------------------------------
2 Paths Changed]]>
Thu, 10 Jun 2021 19:38:29 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/4fbdfe30d9d7f5c7091eb5129307b43f79e3b0c9Kévin Dietrich
<![CDATA[[7d44672] cycles_procedural_api: Support reading UVs at the vertex scope.]]> http://www.miikahweb.com/en/blender/git-logs/commit/7d4467210fa5259d496687ce5cc69fdbfeb03bf4 7d44672
Branches : cycles_procedural_api
Author : Kévin Dietrich (kevindietrich)
----------------------------------------
Support reading UVs at the vertex scope.

Such UVs may be generated by Houdini or Maya.

----------------------------------------
1 Path Changed]]>
Thu, 10 Jun 2021 18:31:43 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/7d4467210fa5259d496687ce5cc69fdbfeb03bf4Kévin Dietrich
<![CDATA[[a58b7e3] cycles_procedural_api: Fix RNA name.]]> http://www.miikahweb.com/en/blender/git-logs/commit/a58b7e3b3ec0fc259c0d2ecd79bdccbac2a28b8f a58b7e3
Branches : cycles_procedural_api
Author : Kévin Dietrich (kevindietrich)
----------------------------------------
Fix RNA name.

----------------------------------------
1 Path Changed]]>
Thu, 10 Jun 2021 17:51:46 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/a58b7e3b3ec0fc259c0d2ecd79bdccbac2a28b8fKévin Dietrich
<![CDATA[[3d04228] cycles_procedural_api: Merge branch 'master' into cycles_procedural_api]]> http://www.miikahweb.com/en/blender/git-logs/commit/3d04228e49b692aa2448ddf8ce10680ad64795b9 3d04228
Branches : cycles_procedural_api
Author : Kévin Dietrich (kevindietrich)
----------------------------------------
Merge branch 'master' into cycles_procedural_api

----------------------------------------
0 Paths Changed]]>
Thu, 10 Jun 2021 17:35:05 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/3d04228e49b692aa2448ddf8ce10680ad64795b9Kévin Dietrich
<![CDATA[[ab183dd] subdivision_work: Subdivision: basic GPU subdivision for OpenGL]]> http://www.miikahweb.com/en/blender/git-logs/commit/ab183dde948be8a63f7e1449aa9a32cb65236bbf ab183dd
Branches : subdivision_work
Author : Kévin Dietrich (kevindietrich)
----------------------------------------
Subdivision: basic GPU subdivision for OpenGL

This implements GPU subdivision via OpenSubDiv for OpenGL based render
engines. At the moment only uniform subdivision is supported. Adaptive
subdivision still lacks a way to render triangles from the subdivision
patches.

The GPUBatch is extended with a new VBO and a new IBO to gather
subdivided points and indices. This allows to render the subdivided
surface and the original control cage in edit mode without disrupting
too much the code.

To generate triangles from the subdivided index buffer, a compute
shader is used. Although, at the moment normals are not computed there
so a CPU fallback is used, where data is read from the GPU, processed
on the CPU to generate triangles and normals, and then sent back to
the GPU. To compute normals, a secondary compute shader might be used.
This is not ideal for performance, but allows to validate that
subdivision is indeed performed properly on the GPU.

Attributes (including UVs and vertex colors) are not supported yet.

For performance, some proper caching mechanism will need to be used.
There currently is some logic to cache the subdivision structures that
can be reused between updates. However, it is deactivated as it does
not properly detect when changes occur, and causes crashes in edit
mode.

Performance can be further improved by reducing data transfer to the
GPU, since OpenSubDiv asks us to allocate buffers big enough for the
refined and coarse mesh we also allocate such buffer on the host, and
transfer the entier buffer worth of data to the device, although only
the coarse part need to be truly allocated on the host and sent to the
device. This will require some change to the vertex buffer structure.

----------------------------------------
23 Paths Changed]]>
Tue, 08 Jun 2021 02:42:05 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/ab183dde948be8a63f7e1449aa9a32cb65236bbfKévin Dietrich
<![CDATA[[0b22e86] subdivision_work: Subdivision: store settings in the Mesh datablock]]> http://www.miikahweb.com/en/blender/git-logs/commit/0b22e868ae7f26aa60bebb1575e32af544780b0a 0b22e86
Branches : subdivision_work
Author : Kévin Dietrich (kevindietrich)
----------------------------------------
Subdivision: store settings in the Mesh datablock

This stores the subdivision settings in the Mesh datablock in order to simplify
detection of whether subdivision is needed, especially for rendering to avoid
subdividing a Mesh twice, one on the Blender side, and once on the render engine
side.

Ref T68891

----------------------------------------
12 Paths Changed]]>
Tue, 08 Jun 2021 02:39:23 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/0b22e868ae7f26aa60bebb1575e32af544780b0aKévin Dietrich
<![CDATA[[260c7c5] subdivision_work: Subdivision: initial support for face holes]]> http://www.miikahweb.com/en/blender/git-logs/commit/260c7c508d10857c6d942b7eace4bd8722a9f45f 260c7c5
Branches : subdivision_work
Author : Kévin Dietrich (kevindietrich)
----------------------------------------
Subdivision: initial support for face holes

----------------------------------------
20 Paths Changed]]>
Tue, 08 Jun 2021 02:39:08 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/260c7c508d10857c6d942b7eace4bd8722a9f45fKévin Dietrich
<![CDATA[[b558cd2] subdivision_work: Subdivision: add support for vertex creasing]]> http://www.miikahweb.com/en/blender/git-logs/commit/b558cd26f09caf1ac3ea62a1322963e070476f07 b558cd2
Branches : subdivision_work
Author : Kévin Dietrich (kevindietrich)
----------------------------------------
Subdivision: add support for vertex creasing

This adds vertex creasing support for modeling, rendering, and Alembic IO. This is only implemented for OpenSubDiv.

For modeling, vertex creasing follows the edge creasing implementation with an operator accessed through the Vertex menu in Edit Mode, and some parameter in the properties panel.

Also added options to the Subsurf and Multires modifiers to disable vertex creasing, the existing option is only affecting edge creasing. Not sure if this is desirable, but I think it makes sense to separate them, as it can help people understand and study the effects of each of them.

For Cycles this adds a couple of sockets on the Mesh node to hold data about which vertices are creased (one socket for the indices, one for the weigths). We could have a single socket with a value for every vertex, but this helps reducing memory usage a bit. Crease weights for vertices are then merged with the ones for edge creasing when setting up data for OpenSubDiv.

For rendering vertex creasing in the viewport in Edit Mode, I tried to have a similar rendering as for edge creasing, that is with a colored outline, but I could not get it to work properly, so I resorted to mixing the vertex selected color with the edge crease color so the creasing is shown to emanate from the vertices, along the edges. If both vertices of an edge are creased, this would render the edge as creased. This needs improvement.

To support rendering vertex and edge creases differently, `EditLoopData` was modified to hold `ushorts` instead of `uchars` in order to store more bit flags as all available bits in `EditLoopData.e_flag` were used. (For those unaware, this structure maps to an `ivec4` in the GLSL shader, so adding another member to hold vertex creasing is not really possible.)

For Alembic, vertex creases are read and written in a similar fashion as edge creases (vertex creases are called "corners" in Alembic), so this is only written if a subdivision modifier is present on the Blender Mesh.

----------------------------------------
33 Paths Changed]]>
Tue, 08 Jun 2021 02:38:53 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/b558cd26f09caf1ac3ea62a1322963e070476f07Kévin Dietrich
<![CDATA[[c59d2c7] master: Cleanup: spelling in comments]]> http://www.miikahweb.com/en/blender/git-logs/commit/c59d2c739d078f4a7a613a05995002cfdbdca303 c59d2c7
Branches : master
Author : Kévin Dietrich (kevindietrich)
----------------------------------------
Cleanup: spelling in comments

----------------------------------------
2 Paths Changed]]>
Mon, 31 May 2021 23:45:17 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/c59d2c739d078f4a7a613a05995002cfdbdca303Kévin Dietrich
<![CDATA[[5ce092f] cycles_procedural_api: Import changes from code review branches.]]> http://www.miikahweb.com/en/blender/git-logs/commit/5ce092f6b0d52d97b86b6ba64d9dd54d09c82fcc 5ce092f
Branches : cycles_procedural_api
Author : Kévin Dietrich (kevindietrich)
----------------------------------------
Import changes from code review branches.

----------------------------------------
33 Paths Changed]]>
Mon, 31 May 2021 15:37:58 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/5ce092f6b0d52d97b86b6ba64d9dd54d09c82fccKévin Dietrich
<![CDATA[[036e8ec] cycles_procedural_api: Merge branch 'master' into cycles_procedural_api]]> http://www.miikahweb.com/en/blender/git-logs/commit/036e8ec339894a37316e375f4bbe157250609e93 036e8ec
Branches : cycles_procedural_api
Author : Kévin Dietrich (kevindietrich)
----------------------------------------
Merge branch 'master' into cycles_procedural_api

----------------------------------------
0 Paths Changed]]>
Mon, 31 May 2021 15:22:11 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/036e8ec339894a37316e375f4bbe157250609e93Kévin Dietrich
<![CDATA[[2a59ca7] cycles_procedural_api: Merge branch 'master' into cycles_procedural_api]]> http://www.miikahweb.com/en/blender/git-logs/commit/2a59ca7dc97494706f812e486abbd6ecdca862e0 2a59ca7
Branches : cycles_procedural_api
Author : Kévin Dietrich (kevindietrich)
----------------------------------------
Merge branch 'master' into cycles_procedural_api

----------------------------------------
0 Paths Changed]]>
Wed, 26 May 2021 10:24:41 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/2a59ca7dc97494706f812e486abbd6ecdca862e0Kévin Dietrich
<![CDATA[[12a0629] master: Cycles: optimize attributes device updates]]> http://www.miikahweb.com/en/blender/git-logs/commit/12a06292af8678c2371b36369a96c088f438c9dd 12a0629
Branches : master
Author : Kévin Dietrich (kevindietrich)
----------------------------------------
Cycles: optimize attributes device updates

When an `AttributeSet` is tagged as modified, which happens after the addition or
removal of an `Attribute` from the set, during the following GeometryManager device
update, we update and repack the kernel data for all attribute types. However, if we
only add or remove a `float` attribute, `float2` or `float3` attributes should not
be repacked for efficiency.

This patch adds some mechanisms to detect which attribute types are modified from
the AttributeSet.

Firstly, this adds an `AttrKernelDataType` to map the data type of the Attribute to
the one used in the kernel as there is no one to one match between the two since e.g.
`Transform` or `float4` data are stored as `float3s` in the kernel.

Then, this replaces the `AttributeSet.modified` boolean with a set of flags to detect
which types have been modified. There is no specific flag type (e.g.
`enum ModifiedType`), rather the flags used derive simply from the
`AttrKernelDataType` enumeration, to keep things synchronized.

The logic to remove an `Attribute` from the `AttributeSet` and tag the latter as modified
is centralized in a new `AttributeSet.remove` method taking an iterator as input.

Lastly, as some attributes like standard normals are not stored in the various
kernel attribute arrays (`DeviceScene::attribute_*`), the modified flags are only
set if the associated standard corresponds to an attribute which will be stored
in the kernel's attribute arrays. This makes it so adding or removing such attributes
does not trigger an unnecessary update of other type-related attributes.

Reviewed By: brecht

Differential Revision: https://developer.blender.org/D11373

----------------------------------------
4 Paths Changed]]>
Wed, 26 May 2021 10:18:28 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/12a06292af8678c2371b36369a96c088f438c9ddKévin Dietrich
<![CDATA[[6b8ffaf] cycles_procedural_api: Merge branch 'master' into cycles_procedural_api]]> http://www.miikahweb.com/en/blender/git-logs/commit/6b8ffafbf20ca5229409cad1e469e34e65c6a987 6b8ffaf
Branches : cycles_procedural_api
Author : Kévin Dietrich (kevindietrich)
----------------------------------------
Merge branch 'master' into cycles_procedural_api

----------------------------------------
0 Paths Changed]]>
Mon, 24 May 2021 12:01:10 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/6b8ffafbf20ca5229409cad1e469e34e65c6a987Kévin Dietrich
<![CDATA[[8bdbe4a] cycles_procedural_api: Cleanup: format]]> http://www.miikahweb.com/en/blender/git-logs/commit/8bdbe4a03a28eca09d10e1ddeec717e81b7cc658 8bdbe4a
Branches : cycles_procedural_api
Author : Kévin Dietrich (kevindietrich)
----------------------------------------
Cleanup: format

----------------------------------------
6 Paths Changed]]>
Mon, 24 May 2021 11:58:26 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/8bdbe4a03a28eca09d10e1ddeec717e81b7cc658Kévin Dietrich