1.1.23 • Published 2 years ago

@xbcx/xb-three-frame v1.1.23

Weekly downloads
-
License
MIT
Repository
-
Last release
2 years ago

XBTHRREFRAME

version:1.0.x

更新说明

1.1.x

  1. 暂无

解决问题

threejs和项目混写的封装方案.

使用方法

  1. 引用npm,Xbthreeframe用于实现,Module用于继承,包内的一些封装需要去包内引入.
  2. 初始化threeframe单例
  3. 配置conf文件
  4. 把conf配置传递给threeframe单例初始化
  5. 继承module写模块,threeframe单例装载该模块
  6. 模块中声明依赖的模型,纹理,和别的模块(控制台打印了一定的模块加载信息)
  7. 模块init处理初始化代码,sence,camera需要自己创建,render处理每一帧代码
  8. 框架包含一些修改适配过的外部包和内部gl封装.按需引入.并未直接暴露

示例

初始化

    import Xbthreeframe from "@jspatrick/xb-three-box";
    let xxx = new Xbthreeframe();

继承

    import {Module} from '@jspatrick/xb-three-box';
    class Xxx extends module{}

引用封装

    import {MathUtil} from "@jspatrick/xb-three-box/src/gl/MathUtil";

API文档

Xbthreeframe.Xbthreeframe 类

做成插件后,返回单例,全局使用

属性类型说明
scenethree.scenethree的场景,threeframe会对世界有封装,不建议直接使用
worldthree.group统一的mesh存在group.在这里统一做矩阵变化
camerathree.camera
widthNumber容器宽度
heightNumber容器高度
pauseBoolean是否暂停
rendererthree.renderer
方法参数返回值说明
initmap:Mapbox,modelConf:Array,textureConf:Array,module:Array做成插件后,直接返回单例,该方法丢弃
getXylngLat:Arrayxyz:three.Vector3xyz三个元素的数组,相对地图中点的xy偏移量,单位是mapbox地图上的米
oneventName:String,callback:Function通过单例监听一个自定义事件
dispatcheventName:String,everyThing触发一个自定义事件
modelConf.element类型说明
nameString模型名,期望唯一
pathString模型的地址
typeString模型的类型
indexNumber加载顺序(暂不支持)
staticBoolean设置为true,改模型会在内存中被释放.节约内存(白膜等模型很需要),但是del后会无法再次上图(visible无影响)
textureConf.element类型说明
nameString纹理名,期望唯一
pathString纹理的地址
事件参数说明
onLoaded加载完所有的模型和模块后,会触发
onLoadingtype:Enum ,info:String, progress:Number每加载成功一个,会触发
onLoadStart刚开始加载时触发

Xbthreeframe.module 类

项目代码写成模块,模块方法继承此基类

成员类型说明
threeframeXbthreeframeXbthreeframe实例对象
nameString模块的名字,用于被依赖
方法参数返回值说明
接口参数返回值说明
getNameString申明模块的名字,用于别的模块依赖
dependencyModelsArray申明依赖的模型资源
dependencyTexturesArray申明依赖的贴图资源
render每一帧要执行的代码.
initmeshes:Object,textures:Object,module:Objecteverything执行模块函数,这三个参数会传递依赖的模型,纹理,模块,如果有需要提供给别人的资源,return任意.别的模块即可拿到

部分示例

  1. 找出未被使用的模型,需要保证模型和贴图文件部署在public/model文件夹下, 运行命令node node_modules/@jspatrick/xb-three-box/bin/UnUsedFileChecker.js来生成 对应的临时文件,启动项目后控制台打印xbthreeframe.resourcesManager.ModelsUnUsed

项目结构

xbthreeframe                    //module基类,和xbthreeframe类
  └─src                       //框架代码
      ├─prototype             //框架基础代码
      ├─lib                   //框架整合的需要修改的外部文件(项目按需引入)
      ├─gl                    //框架整合的webgl封装(项目按需引入)
      ├─indexDB               //框架indexDB相关
      ├─Loader                //框架indexDB相关
      ├─custom                //根据用户项目生成的临时文件
      └─worker                //框架indexDB相关
        

问题清单

  • 暂无

功能展望

  • 模块render函数,提供delta时间
  • dispatch 语义的正确性

依赖

1.1.23

2 years ago

1.1.22

2 years ago

1.1.21

3 years ago

1.1.20

3 years ago

1.1.19

3 years ago

1.1.18

3 years ago

1.1.17

3 years ago

1.1.16

3 years ago

1.1.15

3 years ago

1.1.12

3 years ago

1.1.11

3 years ago

1.0.22

3 years ago

1.0.26

3 years ago

1.0.25

3 years ago

1.0.24

3 years ago

1.0.23

3 years ago

1.0.29

3 years ago

1.0.28

3 years ago

1.0.27

3 years ago

1.0.33

3 years ago

1.0.32

3 years ago

1.0.31

3 years ago

1.0.30

3 years ago

1.0.35

3 years ago

1.0.34

3 years ago

1.1.1

3 years ago

1.1.0

3 years ago

1.1.9

3 years ago

1.1.8

3 years ago

1.1.7

3 years ago

1.1.6

3 years ago

1.1.5

3 years ago

1.1.4

3 years ago

1.1.3

3 years ago

1.1.2

3 years ago

1.1.10

3 years ago

1.0.19

3 years ago

1.0.21

3 years ago

1.0.20

3 years ago

1.0.188-test

3 years ago

1.0.186-test

3 years ago

1.0.185-test

3 years ago

1.0.184-test

3 years ago

1.0.183-test

3 years ago

1.0.182-test

3 years ago

1.0.18-test

3 years ago

1.0.181-test

3 years ago

1.0.18

3 years ago

1.0.17

3 years ago

1.0.16

3 years ago

1.0.15

3 years ago

1.0.14

3 years ago

1.0.13

3 years ago

1.0.12

3 years ago

1.0.9

3 years ago

1.0.8

3 years ago

1.0.8-beta

3 years ago

1.0.11

3 years ago

1.0.10

3 years ago

1.0.7

3 years ago

1.0.6

3 years ago

1.0.5

3 years ago

1.0.4

3 years ago

1.0.3

3 years ago

1.0.2

3 years ago

1.0.1

3 years ago

1.0.0

3 years ago