加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

Blender代码分析汇总

(2013-11-16 15:11:24)
标签:

blender

it

http://wiki.blender.org/uploads/thumb/e/e9/Eventrecode1.png/480px-Eventrecode1.png

Blender的代码学习可以分成很多的阶段或者层次。

从宏观上来说,Blender的架构,一个操作视觉系的软件肯定离不开mvc的模式。当然这种模式又可以用很多种模式组合而成,包括notify等等。

从数据功能化的方式来观察Blender,那么又有很多的模块,包括内部消息传输的kernel,数据结构的sdna,数据api的srna,接收外部输入的events handle,反馈和显示的window manager等

从3D功能业务模块化的角度来,功能模块就如,mesh,曲线曲面,subdivision,rig,animation,lighting,color manager,动力学(刚体,流体,软体,粒子,毛发),图像合成,nla,scripting等。

从程序语言,和计算机交互的角度,Blender现在使用的c/c++,python,和基于c的oo语言。用到的系统API(IO),图形API(opengl,glsl),计算API(opencl),声音api等,比较底层的编程技术。

从开发管理角度去研究Blender,如软件的开发模式,编译工具,开发工具等等。

通过不同层次不同维度不同业务逻辑去研究Blender最后会发现Blender其实不仅仅是一个源代码开发的东西,其中包含的内容和方法都值得大家去揣摩学习,各个方面都有前人。如果要把所研究的内容汇编成册,也许,是一部非常庞大的,值得深入研究的长卷。也许这个时间会非常漫长。现在没有一个人敢说他完全懂Blender的代码,很正常。Blender融合的CG技术绝对够一个初学者茫然,一个专家汗颜。

讨论会在论坛分别开各类专门的帖子,并链接到这个帖子里面。





Blender代码阅读 

Blender的开发组织:
http://bbs.blendercn.org/forum.php?mod=viewthread&tid=1388&extra=page=1

一切从int main()出发的c/c++

Blender代码的层次结构 :
http://bbs.blendercn.org/forum.php?mod=viewthread&tid=276&extra=page=1 

blender的MVC机制

Blender的数据结构 main scene listbase Bmesh editmesh derivemesh

ghost--blender中的窗口管理基石

UI--Blender开发的灵魂

sDNA sRNA Blender的数据库和数据库API


rna:http://bbs.blendercn.org/forum.php?mod=viewthread&tid=1547&extra=page=1

wmmanger wmOperatortype
http://www.nicksbest.com/blenderarchitectrue/ba_event_and_operator.html

wmOperator invoke call exec cancel

http://www.nicksbest.com/blenderarchitectrue/ba_operator.html

editor-operator的超集

pyObject分析

cycles and lux render render() GPUGI : 
http://bbs.blendercn.org/forum.php?mod=viewthread&tid=233&extra=page=1 


0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有