我正在写一个Blender (2.81) Python插件,它需要在视口中显示一个网格(低分辨率)和一个渲染(高分辨率)(这些是植物/树木)。我目前创建了两个对象,并使用低分辨率对象作为高分辨率对象的父对象。虽然这是可配置的,但默认情况下,高分辨率对象在视口中不可见,并且不可选择。这将在视口中向用户显示低分辨率对象,用户可以在视口中移动、旋转和缩放该对象,并使这些更改在渲染时影响高分辨率的子对象(用户根本不必考虑高分辨率对象)。
我目前遇到的挑战是删除视口中的父对象,将子对象留在场景中,我希望能够通过在视口中单击“树”并按X键来删除“树”。
我在这里思考对象组合的方式是正确的,还是我的大脑仍然停留在SketchUp领域,我需要调整以使用混合术语进行思考?
父/子机制是这种组合的正确方法吗?
我是否应该使用自定义集合来包含这两个对象?(仍然不能在三维视口中使用X进行删除)。
例如,在下图中,默认情况下视口看起来像左上角。可以将其配置为在视口中显示高分辨率,如左下角所示,但只有低分辨率是可选的(如果高分辨率可见,则在线框中)。无论哪种方式,只有高分辨率的才会像右下角那样渲染:

发布于 2020-01-12 13:08:49
有能力使用无限数量的集合,是的,创建一个集合将您的对象分组在一起。在大纲视图中,您可以在集合上单击鼠标右键,然后选择删除层次结构以一次完成所有这些操作,这就是您所能做的最好的工作。
对象也有一个可选择的选项,您可以使雇用不可选择,以便只能选择lores父对象。
要知道,任何人都可以在您的插件创建对象后更改这些选项。它只是一个选择,你认为是最好的方式来最初呈现对象。
另一种考虑的可能性是将它们合并到一个对象中。可以使用两个mask modifiers来隐藏渲染中的lores网格和视口中的租用网格。只需要一个顶点组,因为您可以在第二个蒙版中反转选择。您需要查看这是否提供了与拥有两个对象时相同的性能优势。

https://stackoverflow.com/questions/59690836
复制相似问题