Skip to content

feng3d-labs/feng3d

Repository files navigation

feng3d

feng3d是使用TypeScript进行编写基于WebGL的3D游戏引擎,致力于打造一个优秀的3d游戏引擎以及易用且可以快速开发项目的配套编辑器。

示例: https://feng3d.com/feng3d

源码:https://gitee.com/feng3d/feng3d.git

文档:https://feng3d.com/feng3d/docs

安装

npm install feng3d

快速开始

import { Color4, Node3D, ticker } from 'feng3d';

// 创建根结点
const root = new Node3D();

root.addComponent('WebGLRenderer3D');

const scene = root.addComponent('Scene3D');
scene.background = new Color4(0.408, 0.38, 0.357, 1.0);

const camera = new Node3D().addComponent('Camera3D');
scene.entity.addChild(camera.entity);

const cube = Node3D.createPrimitive('Cube');
cube.y = -1;
cube.z = 3;
scene.entity.addChild(cube);

ticker.onFrame(() =>
{
    cube.ry++;
});

模块

  1. @feng3d/event 基于TypeScript实现的事件系统。
  2. @feng3d/bezier 解决n次Bézier曲线拟合与求解问题。
  3. @feng3d/objectview 实现由数据对象自动生成界面的一套框架。
  4. @feng3d/polyfill 基础工具。
  5. @feng3d/task 用于处理同步或者异步任务。
  6. @feng3d/watcher 用于监听对象属性的变化以及同步两个对象的属性值。
  7. @feng3d/serialization 任意对象序列化反序列化。
  8. @feng3d/math 数学库。
  9. @feng3d/filesystem 文件系统。
  10. @feng3d/shortcut 快捷键系统。
  11. @feng3d/renderer 渲染库。
  12. @feng3d/core 核心库。
  13. @feng3d/terrain 地形库。
  14. @feng3d/particlesystem 粒子系统。
  15. @feng3d/assets 资源管理库。
  16. @feng3d/parsers 解析器。
  17. @feng3d/ui UI库。

特性

  1. 提供优质的typescript编辑器
  2. 支持脚本,你能够在这里实现所有你想做的事情。
  3. 支持自定义材质,只需要你提供shader代码以及所有到的数据结构就可以实现你想要的渲染效果。

引擎提供基础技术库支持,编辑器提供以及其插件系统提供多样化的开放设计平台,网站提供设计师学习沟通分享与资源交易平台。

系统

引擎

目的:为制作(游戏)项目提供常用的基础框架,缩短项目开发周期。
内容:2D、3D、常用工具、数学库、渲染库、物理库、文件管理、声音、网络通讯、动画、粒子、特效、地形、UI、插件等基本模块。
特点:易用、灵活、易扩展、开源、入门程序员可直接上手。

编辑器

目的:为引擎开一扇窗户,让每个人都可成为设计师;解放策划与程序员的无尽纠葛,策划可以尽情设计场景,程序可以尽情实现功能逻辑。最终目标是让设计师无需编程即可完成理想中的项目。
内容:属性编辑器、层级树、场景编辑器、资源管理器、(图像化)脚本编辑器、粒子编辑器、动画编辑器、地形编辑器、UI编辑器、账号系统、云存储、项目管理、(多平台多用户)协同设计、商场系统、插件管理器、等。
特点:易用、灵活、易扩展、小学门槛。

网站

目的:为程序员设计师轻易上手feng3d,交流展示作品。
内容:在线编辑器、示例、文档、资源商场、论坛、设计师空间等。
特点:学习、交流、分享。

功能清单

  • 引擎
    • 数学库
    • 渲染库
    • 物理库
    • 文件资源系统
    • 声音
    • 网络库
    • 寻路导航
    • 等等
  • 编辑器
    • 属性编辑
    • 场景编辑
    • 资源管理
    • 资源商城
    • 账号系统
    • 云存储
    • 协同设计
    • 粒子编辑器
    • 脚本编辑器
    • 动画编辑器
    • 地形编辑器
    • 导航网格生成
    • 各类插件
      • 设计图
      • UI编辑
      • 游戏制作套件
        • RPG游戏模板
      • 建模
      • 思维导图
  • 网站
    • 在线编辑器
    • 文档
    • 示例
    • 资源商城
    • 论坛
    • 设计师空间
  • 跨平台
    • 网页端
    • 客户端

功能清单

  • 引擎

    • 序列化系统
    • 事件系统
    • 监听器
    • 数学库
    • 数据结构库
    • 文件系统
    • 对象视图框架
    • 快捷键系统
    • 渲染库
    • 实体组件系统
    • 动画
      • 通用属性动画
      • 骨骼动画
      • 粒子系统
    • 音频
    • 资源系统
    • 摄像机
    • 控制器
    • 纹理
    • 材质
    • 几何体
    • 灯光
    • 天空盒
    • 地形
    • 场景
    • 射线拾取
    • 游戏对象支持鼠标事件
    • 布局组件
  • 2d模块

    • 画布
    • [x]
  • 编辑器

贡献

首先感谢天底下所有愿意奉献的人!

  1. 如果你有什么想法或者需求欢迎在 issues 发布

源镜像

  1. gitee 提供了不亚于github的功能。除了知名度,国内访问速度非常快,开发效率,作为主要仓库。

  2. github 国内访问较慢,有时甚至无法访问,放弃作为主仓库,将会不定期从gitee上同步。

关于

网站:http://feng3d.com/

gitlab: https://gitlab.com/feng3d/feng3d.git

getee:https://gitee.com/feng3d

github:https://github.com/feng3d-labs

feng3d交流QQ群:519732759