Blender 源码分析(2)

本文详细介绍了Blender中的核心数据结构ID,包括ID类型、IDTypeInfo和数据块的概念。ID是Blender中所有持久数据的基础,如对象、网格、材质等。IDTypeInfo是一个运行时数据结构,用于封装ID管理任务。文章还提到了ID的命名规则、用户自定义数据存储、引用以及其他相关管理细节,强调了正确管理ID以避免复杂性和错误的重要性。

        由于现在在了解ID, ID_Type, IDTypeInfo这几个概念,也可以看看官网对这几个概念的解释:

        IDs (also known as data-blocks, especially at user level) are the main core data structure in Blender. Almost any persistent data is an ID, or belongs to an ID, even mostly UI-related data like the WindowManager or Screen ID types.

        IDs(也称为数据块,尤其是在用户级别)是Blender中的主要核心数据结构。几乎所有的持久数据都是一个ID,或属于一个ID,甚至大部分与UI相关的数据,如WindowManager或Screens都属于一个ID类型。

        可见ID对于Blender的重要性,下面主要时对官网的一些翻译。

ID Type【ID类型】

        ID, ID_Type, IDTypeInfo:ID的基本结构和ID所代表的类型系统。

        ID Datablocks:Objects,meshs,materials,scenes,这些都是ID数据块的例子,从C++的角度来讲,这些都是继承自ID类,这些类通常被定义在DNA_{sometype}_type.h头文件中。

        ID Datablocks是带有一系列通用属性的内存块(例如Object数据块),在C语言中使用一个结构体表示,结构体的第一个字段是一个ID类型的结构体,如果这个数据块包含了动画相关的数据AnimData,这个AnimData必须放在结构体的第二个字段。下面是一个具体的数据块:

// 网格数据
typedef struct Mesh {
  ID id;    // ID数据块
  struct AnimData *adt;  // 动画数据
  …
};

    

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值