Vanilla realtime rendering engine

转到项目主页

最近更新

功能介绍

引擎截图

文件下载

引擎文档

技术文档
联系方法
 
 
 
 
 
  • 引擎简介

    Vanilla是一款基于GNU LGPL授权协议的开放源代码的跨平台实时三维渲染引擎,使用C++语言开发,目标是实现一套高效率并且易于使用的3D开发接口和一套完备的创作工具,并且支持主流的3D显示硬件能够充分发挥硬件的加速功能。

  • 功能介绍及开发进度

    对象管理:采用基于类工厂的插件模式,使用智能指针来自动管理对象的生存期。基本对象和派生类本身具有可持久化的属性,并且根据此特性实现对象的自动持久化功能,也就是说从基本类派生出来的子类无需编写特定的代码就具有持久化能力。对象的所有属性和方法都可以通过其名称使用统一的接口来存取。(进度:100%)

    脚本系统:Vanilla引擎自带一套类C语言语法的脚本系统,支持大多数分支和循环流程,并且完全支持调用对象的方法和存取对象的所有属性。脚本可以直接由引擎核心调用执行也可以通过引擎核心调度在一个单独的伪线程中执行。每个伪线程可以被随时挂起或唤醒。(进度:80% ----需要完善)

    VFS系统:功能完备的内存虚拟文件系统,支持文件或目录的几乎所有操作,可以Mount一个VFS目录到另一个VFS目录下,目前支持物理文件系统和ZIP文件。(进度:95% ----ZIP文件系统尚有BUG)

    底层渲染引擎:使用抽象接口来实现API的无关性。目前仅实现了OpenGL的后端。VS/PS使用Nvidia的Cg语言。(进度:60% ----需要支持VBO/PBO/FBO,GLSL,PointSprite, NPO2以及其他一些OpenGL2.0新特性。)

    字体渲染:支持TrueType字体的读取和渲染(通过FreeType库)。(进度:50% ----尚未集成到统一的渲染体系中)

    场景管理:所有场景物体通过层次的节点结构来管理,采用LooseOctree实现场景分割,配合ProgressiveMesh以及OcclusionCulling来实现高效率的隐面剔除。(进度:40% ----LooseOctree已经完成,ProgressiveMesh通过HalfEdge Collapse实现,不过现在只能支持Manifold Mesh,OcclusionCulling采用层次ZBuffer,功能测试通过,尚未集成到引擎中)

    光影:(进度:0% ----尚未开工!计划支持BumpMapping/ParallaxMapping,ToonShading, ShadowMapping,全局光照)

    物理系统:(进度:0% ----尚未开工!计划使用ODE实现)

    角色动画:(进度:0% ----尚未开工!SkeletonAnimation, MorphTarget, IK)

    GUI系统:(进度:0% ----尚未开工!)

    其他:自动生成物体的法线和TangentSpaceVector(使用NVMeshMender),JPG/PNG/BMP/TIFF/3DS图像文件读取。