软件案例分析
这个作业属于哪个课程 | 2025春软件工程 |
---|---|
这个作业的要求在哪里 | [I.2] 个人作业:软件案例分析](https://edu.cnblogs.com/campus/buaa/BUAA_SE_2025_LR/homework/13367 |
我在这个课程的目标是 | 开发可以实际投产的软件项目 |
这个作业在哪个具体方面帮助我实现目标 | 提供理论基础 |
简介
Blender是一款开源、免费的 3D 计算机图形软件,适用于建模、雕刻、动画、模拟、渲染、合成、视频编辑等多种任务。它广泛应用于 3D 设计、游戏开发、影视特效、建筑可视化等领域,并支持 Python 编程扩展功能,方便开发者进行定制和自动化操作。
以上内容由AI生成,本文仅有此处使用LLM
Blender的优点有
- 开源免费的顶尖建模软件
- 由于开源,可以很方便的自定义插件
- 有活跃的社区支持和大量插件
软件评测
软件使用
我曾经为了建模使用过一段时间Blender,后面玩了一段时间3D打印也是用Blender做的模型初处理,同时也用过一段时间Blender的雕刻功能。Blender绝对是一款全面的软件,甚至可能是业界唯一一个能打通从低模构建到雕刻再到材质、贴图最后到渲染的软件。
Blender的主界面,在这个编辑界面可以组织场景
Blender的Edit Mode,在这个界面可以对模型按照点、边、面做编辑
Blender的雕刻界面,有多种笔刷,也支持触控板
Blender中的修改器,可以很方便地提供一些对模型的处理功能
软件分析
要构建一个3D的场景,大概有以下步骤
- 从0开始构建低模
- 从低模用雕刻软件构建高模
- 绘制贴图,设置材料
- 放到渲染软件中渲染
一般,在工业界,这些步骤会被拆分到多个软件中进行,而在Blender中,这分别对应了编辑、雕刻、贴图、渲染这几个界面。Blender用一个软件打通了整个渲染流程,软件UI现代化,完善的不像一个开源软件。
另外,由于Blender有一个强大的社区,我们可以很容易的找到Blender的某个主题的教程,而且Blender的学习曲线相当友好。
当然,由于我并没有使用其他软件的经历,让我们来听听更专业的意见
用户调研
调研对象为一位美术专业的大二学生
总结
Blender算是开源软件中相当完善的一个了,非常推荐
今年奥斯卡最佳长篇Flow也是用Blender制作的
Bug分析和提交
测试环境:
CPU:i7-14700k
GPU:RTX4070ti super
内存:64Gb DDR5 6000MT/s
操作系统:Windows 11
Blender版本:4.32
Cycles渲染器设置消失,只剩下面板
更新到最新版本后,有时Cycles渲染器的设置会消失,只剩下一个空的面板,具体触发原因不详,触发频率大概1/10
图片来自https://projects.blender.org/blender/blender/issues/135965
搜索这个BUG时发现issue中有同样问题,可能是Blender中安装的第三方插件导致的,但是按照issue中尝试设置后,bug仍然会触发,目前仍然不确定触发原因
- bug严重性:弱(并非恶性bug,触发概率不高,且并非普遍存在)
- 为何没有被修复:触发条件不确定,可能涉及第三方插件的兼容性问题
编辑来自Ninja Ripper提取的场景时崩溃
编辑来自Ninja Ripper提取的游戏场景时,Blender没有任何提示直接崩溃
触发方式:选中整个场景,进入编辑模式就会直接崩溃
通过尝试发现崩溃源自场景中的一个特定的模型
搜索issue发现,大概率是因为模型文件本身被污染了
- bug严重性:中等(导致工作无法进行,但是不会损坏工作文件,有可能导致没有保存的更改)
- 为何没有被修复:Blender官方的意见是:对被污染的文件本身的编辑导致的崩溃is not considered a bug,实际上,大概因为难以定位具体可能产生崩溃的位置,为此而增加大量的错误处理代码违背了编码规范
分析
工作量分析
这是一款有着十多年积累、大量社区开发者和完整的委员会支持下开发的能够媲美工业界最好的产品的软件,这样的草台班子不可能开发得出来
软件质量分析
- 优势:强大的开源社区、基金会和委员会支持、学习曲线好、功能强大
- 劣势:在业界的工作流中占有率不高、比起专业软件更新慢,企业支持不好
在同类产品中至少能算作前二
规划和建议
市场现状
- 市场概况:游戏和影视界有对于建模软件的大量需求,并且随着这个产业的膨胀,这样的需求也会越来越大,直接用户至少是百万级别
- 竞争产品:maya、3dsmax、zbrush等专业工业软件
- 产品定位:开源免费的优质建模软件,虽然市场大,但是作为专业软件实际上竞争对手并不多(因为大量的市场份额被少量的产品占领,3维编辑、渲染领域需要很多年的积累),优劣势参照分析一节
市场与产品生态
核心用户群
动画、游戏、影视行业的从业者,需求是好用、高效的工业软件。作为生产类的软件,要有好的学习曲线,丰富的资源,强大的功能,方便的操作和够快的更新速度
用户群关系
工业界通常由少量的产品占据大量的份额,因此除了软件本身的质量,有一个活跃的社区和大量的教学资源也是很重要的
子产品
由于Blender本身功能很强而且是开源软件,很多学术界的前沿研究都可能被社区通过插件的方式加入软件
产品规划
目前软件本身已经相当完善,尝试添加更多功能很可能是画蛇添足
应该扩展开源软件更方便编写插件的特点,提供更加好使用的插件接口和插件开发工具包(甚至提供一些其他语言的binding),建立强大的插件生态。利用插件社区的优点可以让学术界的前沿研究,例如AIGC等技术进驻到软件本体,从而形成技术壁垒
为了开发更好的插件接口和工具包,首先要有一个产品经理去了解社区对目前的接口的看法和改进意见,然后剩下的人根据敏捷开发的原则自行选择改进什么功能,最后,由于是开源软件,可以发布preview版本让社区自行测试
- PM - 2
- dev - 3
- test - 1