Blender4.5 几何节点组织方式(对象,实例,几何,属性,域)

文章目录

  • [所有的都基于Blender4.5 TLS版本描述:](#所有的都基于Blender4.5 TLS版本描述:)
  • [Blender 几何组织方式详解](#Blender 几何组织方式详解)
  • 实例
  • [源码角度看,Blender Geometry 系统核心类图](#源码角度看,Blender Geometry 系统核心类图)

所有的都基于Blender4.5 TLS版本描述:

Blender 几何组织方式详解

Blender 中的几何数据有两种主要组织逻辑:

  • 传统建模模式:你在大纲视图(Outliner)中看到的对象结构。
  • 几何节点(Geometry Nodes)模式:程序化生成的运行时结构。

两者共享底层数据概念(如网格、属性),但生命周期、可见性和使用方式完全不同。


一、传统建模模式(大纲视图)

1.1 对象(Object)

  • 是场景中的可见实体(如立方体、灯光、空物体)。
  • 每个对象包含:
    • 变换信息:位置、旋转、缩放(可在右侧"物体属性"中查看)。
    • 一个数据块引用:决定它"是什么类型"以及"长什么样"。

📌 示例:新建一个立方体,会创建一个名为 "Cube" 的对象,它引用一个名为 "Cube" 的网格数据块。

1.2 数据块(Data-block)

  • 实际存储内容的数据,不直接出现在场景中,但被对象引用。

  • 可被多个对象共享:修改数据块,所有引用它的对象都会更新。

  • 常见类型包括:

    • 网格(Mesh):由顶点(点)、边、面、面拐(corner)组成。
    • 曲线(Curve):由控制点和样条线(splines)组成。
    • 点云(Point Cloud):无连接的点集合。
    • 体积(Volume):三维体素数据(如烟雾)。
    • 文本(Text)骨骼(Armature)灯光(Light) 等。

💡 在属性面板的"数据"标签页(绿色图标)中,可查看和重命名数据块。


二、几何节点模式(Geometry Nodes)

2.1 几何体(Geometry)

  • 运行时临时数据,仅在几何节点网络执行期间存在。

  • 不会自动保存到 .blend 文件,关闭文件或禁用修改器后即消失。

  • 一个几何体可同时包含以下组件(每种最多一个)

    • 网格(Mesh):所有网格被合并为一个组件。
    • 曲线(Curve):可包含多条样条线。
    • 点云(Point Cloud)
    • 体积(Volume)
    • 实例列表(Instances):可包含任意数量的实例。

✅ 优势:可在单个节点网络中混合多种几何类型(如建筑 + 电线 + 树木)。

2.2 实例(Instance)

  • 是一种轻量级引用 ,不复制几何数据,只记录:
    • 目标 :可以是:
      • 另一个几何体(Geometry)
      • 一个场景中的对象(Object)
      • 一个集合(Collection)
    • 自身变换:独立的位置、旋转、缩放。
  • 实例本身是运行时数据,不会自动变成真实对象
  • 若需"实体化",必须:
    • 使用 "实现实例(Realize Instances)" 节点,或
    • 应用几何节点修改器

三、属性系统(Attributes)与域(Domains)

无论传统建模还是几何节点,Blender 都通过 属性(Attributes) 附加额外数据(如颜色、UV、自定义向量)。

3.1 什么是域(Domain)?

  • 域是属性依附的拓扑单元类型
  • 不同几何类型支持不同的域:
几何类型 支持的域(Domain) 说明
网格(Mesh) Point(点) Edge(边) Face(面) Corner(面拐) 面拐 = 每个面中的每个顶点角,用于 UV、顶点色
曲线(Curve) Point(控制点) Spline(整条样条)
点云(Point Cloud) Point 每个点独立
实例(Instances) Instance 每个实例一个值(如 ID、缩放)

3.2 什么是属性(Attribute)?

  • 一组命名的数值数据,附加在某个域上。
  • 支持类型:浮点数、整数、布尔值、3D 向量、颜色、2D 向量等。
  • 在几何节点中:
    • 通过 Store Named Attribute 节点写入;
    • 通过 Named Attribute 节点读取;
    • 可在 电子表格(Spreadsheet) 面板中查看。
  • 在传统建模中:
    • UV、顶点组、顶点色等都是属性的特例。

🌟 应用示例:

将高维数据(如 (x, y, z, w))拆分为 Vector + Float,附加到点域,

然后用颜色或位移可视化第 4 维。


四、关键区别总结

特性 传统建模(大纲视图) 几何节点(GN)
数据载体 Object + Data-block Geometry(运行时)
是否持久化 ✅ 是 ❌ 否(除非应用修改器)
多类型混合 ❌ 一个对象只能一种类型 ✅ 一个 Geometry 可含 Mesh + Curve + Instances
实例实现 Collection Instance(持久化 Object) Instances(运行时引用)
属性编辑方式 属性面板(UV/顶点组) 节点(Store Named Attribute)
域系统 相同底层结构 相同,但更灵活、可程序化

实例

  • 首先建立一个4点的平面,仅仅建立一个空的几何节点修改器,数据如下
  • 对他执行一个散布点在面上的节点,那么数据就变为这样;
  • 合并几何输出
  • 使用一个圆锥mesh作为实例,执行实例化于点上

  • 若再使用另一个几何进行实例化于点上效果是类似的(用的同一个散布,重叠了,看不清cube见谅)
  • 这里使用Mesh对象(苏珊娜),而不是几何体进行实例化,效果是类似的;
  • 若想将instances容器内的实例转到mesh组件上,使用实现实例即可,像这样:

源码角度看,Blender Geometry 系统核心类图

以下类图展示了 Blender Geometry Nodes 中几何数据的组织方式,包括 GeometrySet、各类组件(Component)、实例(Instances)以及属性(Attributes)系统。来自源代码:source/blender/blenkernel/BKE_geometry_set.hh
包含 1 持有 持有 引用目标 多 每个实例可带属性 网格属性(Point/Edge/Face/Corner 域) 曲线属性(Point/Spline 域) 点云属性(Point 域) GeometrySet name: string components_:指向包含GeometryComponent 的数组,注意,每一种类型的组件最多出现一次 (几何集合) ------ 容纳多种几何组件的顶层容器,允许 <<abstract>> GeometryComponent (几何组件基类) ------ 所有几何类型的抽象基类 MeshComponent mesh: Mesh* (网格组件) ------ 持有传统网格数据(顶点/边/面) InstancesComponent instances: Instances* (实例组件) ------ 持有一组实例,每个实例可引用其他 Geometry 或 Object CurvesComponent curves: Curves* (曲线组件) ------ 持有样条曲线数据 PointCloudComponent pointcloud: PointCloud* (点云组件) ------ 持有无连接的点集 VolumeComponent volume: Volume* (体积组件) ------ 持有体素数据(如烟雾、密度场) Mesh (网格数据块) ------ C 结构体,包含 verts/edges/polys/loops 等 Instances references: List[InstanceReference] transforms: List[Matrix4x4] attributes: AttributeContainer (实例集合) ------ 实例数组,每个带变换和属性 InstanceReference type: enum :GeometrySet, Object, Collection data: void* (实例引用) ------ 泛型指针,运行时指向 Geometry 或场景 Object AttributeContainer (属性容器) ------ 存储命名属性(Named Attributes),按 domain 组织 AttributeSet (属性集) ------ 用于 Mesh/Curve 等组件的属性存储(如顶点颜色、UV)

相关推荐
CoovallyAIHub5 小时前
一夜之间,大模型处理长文本的难题被DeepSeek新模型彻底颠覆!
深度学习·算法·计算机视觉
AI technophile5 小时前
OpenCV计算机视觉实战(27)——深度学习与卷积神经网络
深度学习·opencv·计算机视觉
heisd_17 小时前
OpenCV计算机视觉库
人工智能·opencv·计算机视觉
LabVIEW开发10 小时前
LabVIEW双目测距
数码相机·计算机视觉·labview·labview知识·labview功能·labview程序
Gloria_niki15 小时前
YOLOv4 学习总结
人工智能·计算机视觉·目标跟踪
FriendshipT15 小时前
目标检测:使用自己的数据集微调DEIMv2进行物体检测
人工智能·pytorch·python·目标检测·计算机视觉
Sunhen_Qiletian15 小时前
基于OpenCV与Python的身份证号码识别案例详解
人工智能·opencv·计算机视觉
qq_5469372717 小时前
Blender微细节纹理材质模型资产包 Micro-Details Premium Asset Pack
blender·材质
茜茜西西CeCe17 小时前
数字图像处理-图像的形态学处理(2)
计算机视觉·图像分割·数字图像处理·图像的形态学处理·顶帽变换·图像细化