BlenderCN论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1812|回复: 1

Blender Modifier 源码学习

[复制链接]
发表于 2014-8-23 20:40:47 | 显示全部楼层 |阅读模式
本帖最后由 Randon 于 2014-8-23 20:39 编辑

reference:Creating_a_custom_modifier TutorialModifier
创建一个 Modifier 需要涉及修改的文件有点多, 又因为 blender 是纯 C 架构, 不少定义和声明都在两个完全不同的文件里, 对于一个刚接触blender 的菜鸟来说头都大了, 这里先简单整理了一下需要修改的各个文件之间的关系:

1.        `properties_data_modifier.py`: Modifier 的 UI 界面, 接口是 SCALING
2.        `DNA_modifier_types.h`: 这里有两个东西需要修改
        a.        在这里添加 `ModifierType` 枚举类
        b.        声明和 UI 交互的数据结构
3.        `RNA_access.h`: 添加 StructRNA 的声明, 而定义是自动生成的
4.        `rna_modifier.c`: 这里有三处需要修改
        a.        这里添加的是 **添加Modifier下拉列表UI** 的值, 同时指向 1 和 2.a
        b.        修改`rna_Modifier_refine`, 这里相当于定义了从 2.a 到 3 的链接
        c.        在 `RNA_def_modifier` 中创建 `StructRNA`, 然后由系统自动生成定义, 和 3 链接
5.        创建 Modifier 所需的文件 `MOD_xxx.c`, 这个文件包含所有算法, 以及事件处理, 修改 cmakelists 加入编译列表
6.        在 `MOD_modifiertypes.h` 中声明 modifier 所需要的类型, 将会在 5 中定义
7.        在 `MOD_util.c` 创建 `INIT_TYPE`, 相当于从 2.a 到 6 的链接


这里画了张简单的草图


以及相关的patch 文件

相关代码还是因为太长了放不下, 放外链了, 大家可以戳这里

本人小白一只, 希望大大们拍砖


发表于 2014-9-10 06:09:23 | 显示全部楼层
多谢Randon对wiki示例的研究总结。

关于开发示范这块的官方文档已经在老化了,如果没更新,照着做是无法编译通过的。

现在有了Randon的探索,大家照着做就可以方便的写自己的代码了。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

Blender最新中文教学视频|Blender头条|小黑屋|手机版|Archiver|Blender中国 ( 蜀ICP备17002929号 )360网站安全检测平台

GMT+8, 2019-3-23 05:25 , Processed in 0.014754 second(s), 17 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表