Dandelion 1.0.2
A light-weight 3D builder for educational usage
载入中...
搜索中...
未找到
Dandelion 开发者文档
我们希望 Dandelion 成为一颗蒲公英种子,传播渺小的热爱和友善

Dandelion 是一个轻量级的跨平台三维实验框架,适合用于图形学课程教学。本文档介绍了 Dandelion 的开发思路、项目结构,并尽可能全面地列出类和函数参考。

功能定位

当我们开设计算机图形学这门课程时,必然需要设计相应的实验。而实现一个“好看”(甚至有时只是“能看”)的图形应用,往往需要编写上千行的代码。为了在十分有限的课时约束下开展实验,最成熟的办法就是设计一个代码框架。我们对 Dandelion 的期望是:核心功能有限(但可扩展)、界面足够简单、尽可能不涉及和特定平台相关的细节。

目前 Dandelion 提供(或计划提供)的功能包括:

  • 常见格式三维 Mesh 模型的加载、预览
  • 离线渲染:指定相机和光源,用 CPU 将场景渲染为一张图片
  • 几何编辑:基本的几何变换、Mesh 几何操作
  • 物理仿真:简单物体的运动、碰撞

诸如 Blender / Maya / 3Ds MAX 这样的工业级软件拥有丰富而强大的功能,但功能丰富难免导致使用复杂。我们希望在课时很少(比如只有 32 课时)的情况下,同学可以在半小时内学会使用 Dandelion 的绝大部分功能,将精力集中在完成实验上。为此,Dandelion 将不会显式使用任何配置文件、不在 UI 界面上设计复杂的数据观察和调试功能、不设置两位数以上的快捷键。这些约定无疑会限制熟练工作者的创作自由和效率,但对于时间紧张的教学来说未必是坏事。

出于同样的理由,Dandelion 将不会实现实时渲染(至少需要掌握一门着色器语言)和脚本指令(需要额外理解脚本),因此它也不是一个小型的游戏引擎。另外还有一些功能因我们开发能力有限而目前不会实现,例如:

  • 纹理贴图的加载和编辑
  • 多种类型的光源(例如面光源)
  • 对 Mesh 以外的三维表示形式的支持(例如体素、点云、符号距离场等等)

鸣谢

感谢卡内基-梅隆大学 15/462 课题组开源了 Scotty3D 实验框架,我们在很大程度上参考了它。

感谢 GAMES 开放的 GAMES 系列课程,我们参考了 GAMES 101 / 102 的课程、文档和实验框架。