zoukankan      html  css  js  c++  java
  • Egret3D 研究报告(一)初试

    了解的朋友应该知道我最近一直都在鼓吹webgl.

    今天有一点时间,加了一个Egret3D的群,就开始了这个坑。

    耳听为虚,眼见为实。让我们荡起双桨,一起去刷一下egret

    打开姿势

    至于以什么姿势打开,就让我用截图来解释吧。

    由于我是vs重度爱好者,egretWing用起来实在是苦不堪言,于是我又安装了

    基本的姿势问题,请询Egret各种社区,我们就来谈一谈代码。

    Egret3D基本概念

    第一眼看到的代码是这样的,我勒个擦,让构造函数直接解决问题,这如果是我的兄弟,已经可以领辞退补助了。

    不谈审美与爱好的问题,这个我们下一步会实际动手改一改,然我们看一下egret3D怎么玩。

    Egret3DDrive.requestContext3D是真正的入口。

    提供视口参数,初始化webgl对象,然后回调。(这种东西写在构造里我依然看不下去)

    然后初始化一个view3D对象,view3D对象差不多就是一个场景的概念。

    场景的组织也使用场景图的概念,view3d下面的节点可以组成一棵树。

    Cameracontroller这东西不属于很核心的代码,不理他也没所谓。就是一个控制摄像机转头的鼠标操作。反正是update驱动的。实际项目开发中面对各种各样的需求,不太会直接套用这个,把他作为一个示例就可以了。

    然后view3D.renden 就行了(喂,确认不是拼错了么,应该是render吧)

    然后就是最最常规的update驱动。(帧驱动,主循环,不太清楚的同学可以参考博主的c#入门文字)

    Egret3D的场景树

    有这个view3D,就可以构成一个场景树,既然是场景树结构,那我们来看看他的结点构成

    和Unity的场景树单一结点类型,但是关联到GameObject可以用组件聚合改变场景结点功能的设计不同。

    其实unity这种设计现在的引擎用的比较多。

    Egret3d使用一个更古老的设计方法,结点多态。

    结点基类是

    每个Object3D下面都可以再挂n个字节点。

    然后有五个类型继承自他

    分别是

    1.billboard(朝向摄像机的面片)

    2.Entity(一个空节点,设计意图不明)

    3.Mesh(模型结点)

    4. 摄像机

    5. 灯光们

    因为此时还没有官方文档,原谅我直接看源码

    Egret3D的资源管理

    Egret3D设计了AssetsManager,但是扩展性并不强,没有提供统一的二进制和字符串资源下载方式。

    设计了三种格式 ESM, EAM, ECA,分别是模型,动画模型,摄像机动画,但是未见诸文档。

    最关键的场景图,居然没有设计存取格式。

    小结

    Egret3D还处于一个比较早期的阶段,基础建筑尚不成熟。

    1. 存在renden这样的拼写错误
    2. 没有文档
    3. 资源管理不完善,没有提供统一的二进制资源和字符串资源下载方式,不易扩展
    4. 场景节点没有预留扩展性,连一个userdata:any 都没留
    5. 天空盒初始化接口不统一,资源不来自TextureLoader

    从设计上还是模仿as3的接口设计,但是毕竟是中国人在建设的开源引擎。

    从感情上我更愿意帮助egret3d去建设,更胜于使用相对成熟的babylon.js.

    这个blog系列的后续部分我们会一点一滴的去改善和建设Egret3D。

  • 相关阅读:
    (1)ASCⅡ码与一般乘除与逻辑指令
    (2)串指令的传送
    【转】伟大的代码(97年的Mekka ’97 4K Intro比赛的一等奖作品)汇编机器码
    第四次游戏革命:全息游戏 from:http://www.cnblogs.com/alamiye010/archive/2012/08/15/2640881.html
    sqlce wp
    wp7 blogs
    单例的两种实现方式
    C# event from:http://www.cnblogs.com/leslies2/archive/2012/03/22/2389318.html#a4
    wp7——sqlite数据库操作 from:http://blog.csdn.net/wp_lijin/article/details/7370790
    Linq C#增删改查
  • 原文地址:https://www.cnblogs.com/crazylights/p/5114449.html
Copyright © 2011-2022 走看看