Skip to content

Releases: Wonder-Technology/Wonder.js

add asset

22 Jun 15:09
Compare
Choose a tag to compare

Add

  • convert gltf to wd

  • assemble wd

  • generate wd

  • load wd

benchmark report

https://www.zybuluo.com/yangyc/note/1190365

Bug Fixes

  • basicMaterial: fix BasicMaterialAPI->hasLightMaterialMap: rename to hasBasicMaterialMap (4fd3f83)
  • boxGeometry: fix front render light->boxGeometry->normals: now can send normals (47b3cfe)
  • shader: fix "should send uniform data which has different shaders but the same materials" (e638a0e)
  • texture: fix Gl.re->getRepeat: now use REPEAT (5ed078c)

Features

  • asset: add "generateEmbededWD" logic(draft); rename GameObjectAPI->unsafeGetGameObjectCustomGeometryComponent to unsafeGetGameObjectGeometryComponent (decc286)
  • asset: add "load wd" (d9bb3d2)
  • asset: add asset_benchmark.html (d0e8c17)
  • asset: add basicSourceTexture,lightMaterial->name (39a110f)
  • asset: add gameObject->name (503620a)
  • asset: assemble: add "basicCameraView", "perspectiveCameraProjection" logic (fe0ae1b)
  • asset: assemble: add "lightMaterial", "texture", "image" logic(pass compile) (8d301e8)
  • asset: assemble: add "meshRenderer" (f76a26f)
  • asset: assemble: add light (2e063a9)
  • asset: assemble: pass test (1db1ec4)
  • asset: begin asset: add WDType (3745e0a)
  • asset: convert: add "default scene", "default material" (a3fe47b)
  • asset: fix assemble->camera->aspect->not has aspect data: now compute it in initCameraJob,updateCameraJob (ba45f43)
  • asset: fix assemble->texture: now not flipY (904b31a)
  • asset: fix convert->camera->fovy: now convert radians to degree (aeb3e58)
  • asset: fix convert->convert default material: add default material to node->extension prior (de3ea86)
  • asset: fix convert->multi primitives: now newNodesOfMultiPrimitives should has no matrix data (f1c0dec)
  • asset: fix convert: should only exec convert once (30c178a)
  • asset: fix generate->generate by gltf->camera: can handle no aspectRatio,zfar data case (106ac90)
  • asset: fix generate->generate by gltf: if gltf->mesh has no normal, the result should has no n (8bd47b0)
  • asset: fix generate->light->nodes->extensions (b679f97)
  • asset: generate: add "build material data" logic (fdcf9b1)
  • asset: generate: add "camera" (7618ce2)
  • asset: generate: add light (3276c86)
  • asset: gltf->node add extension->material (754981a)
  • asset: optimize assemble: remove curry->texture (674575a)
  • asset: optimize ConvertBufferSystem->_decodeArrayBuffer: use for instead of range (7c570cb)
  • asset: optimize generate: get image base64 from map (84e326a)
  • asset: rename "extension" to "extra" (4f6144e)
  • camera: fix camera compile error;pass all u,i tests (41d51a8)
  • convert: add "assemble wd" -> "custom geometry" logic (66a591d)
  • convert: add "assemble wd" -> "gameObject, transform, scene" logic (f184a10)
  • convert: add "convert gltf to wd" (20e935e)
  • convert: optimize ConvertGLTFSystem->_convertGLTFJsonToRecord-> parse "nodes": use optimized o (e5cbc8d)
  • customGeometry: add "compute vertex normals" logic (8f070fe)
  • customGeometry: now "compute vertex normals" when get normals(when render) (c966d70)
  • data-json: update data/ shader.json,shader_lib.json data (53ef9c0)
  • gameObject: add name (5d7bb71)
  • gameObject: now can replace component (e290abe)
  • light: ambient light now set to scene; asset->convert: add light (e889e2f)
  • shader: basic_map, diffuse_map shader now use u_color/u_diffuse (83a121c)
  • shader: fix render_basic shader->basic_map: u_color should only define once (eadd92d)
  • texture: add "generateMipmap" (c96b71c)
  • texture: fix TextureFilterService.re->getGlFilte->NEAREST_MIPMAP_LINEAR (e2e107c)
  • texture: set unpack_colorspace_conversion_webgl to be none (c568d3c)
  • lightMaterial and basicSourceTexture: add name (69162e1)
  • remove unused log (cfa8118)
  • transform: add "rotation", "scale" logic; asset->assemble->transform: add correspond logic (652de3f)
  • transform: fix matrix->"get rotation tuple" (9259867)
  • upgrade reason,bs-platform version (0ba4e04)

Performance Improvements

  • shader: shader_libs.json->buffer use VboBufferType.bufferEnum instead of string (4dcc937)
  • transform: updateTransformMainService->updateAndSetPositionByTuple: now not markHierachyDirty( (7a74160)

add texture

21 May 13:11
Compare
Choose a tag to compare

Bug Fixes

  • clone: fix clone gameObject->basicMaterialRecord.index should be correct after clone (0a26ff3)
  • customGeometry: change infos typeArray from Uint8 to Uint32 (6efce9f)
  • customGeometry: fix "RecordCustomGeometryMainService->set typeArray default data" bug; vbo->redo_undo add test cases (1665314)
  • instance: fix "basic material box with map + instance basic box, basic box not show map!" bug; add run test:"fix_bug.html"html (42371ce)
  • instance: fix batch->"dispose error" (3c8cbf5)
  • render-worker: fix Worker->newSharedArrayBuffer (53b2fb6)

Features

  • arraybuffer: fix "lightMaterial arrayBuffer typeArrays bug" (4e4891a)
  • arraybuffer: reduce setting->textureCountPerMaterial from 32 to 16 (d2fabcc)
  • data-json: update data/ json files (29d045b)
  • detect: add "detect browser" logic(draft) (6402239)
  • redo-undo: add "basic material->map,texture" related logic (7ec46cb)
  • render-worker: add "setSourceMap" logic (343e1af)
  • render-worker: add "texture" logic(draft) (faa8d46)
  • render-worker: pass compile (de3cfdc)
  • setting: reduce default setting buffer count->texture count to 64 (4167740)
  • texture: "init gameObject" add "init light material->map" logic (0996bd1)
  • texture: add "arrayBufferViewSource texture" draft logic (1708d05)
  • texture: add "diffuse map","specular map" for light material(pass compile) (1f6f79a)
  • texture: add "dispose texture data" logic(not add "dispose texture" logic yet!) (241e520)
  • texture: add "init basic map shader" and "render->bind, update, send" logic(draft) (fed1194)
  • texture: add formats, types type array data (0224826)
  • texture: add run test->render_lightMaterial_map_benchmark.html (7f3bdcb)
  • texture: add shader, texCoord, get/setMap logic(draft) (6bb6935)
  • texture: add texture->create, init, bind, update logic(draft) (d2e35eb)
  • texture: detect gl->texture capability: add contract check->maxTextureUnit should >= textureCountPerMaterial (f5d392f)
  • texture: fix "redo_undo->map" bug (7e42993)
  • texture: fix init gameObject->init texture: if has no map, not init (9299805)
  • texture: fix: "init gameObject" will init texture (6ccc8d4)
  • texture: optimize bind texture: add cache (fc81863)
  • texture: optimize: if lastSendMaterial === materialIndex, not bind and not update texture (361ede3)
  • texture: optimize: remove curry (764f640)
  • texture: pass clone (3e95611)
  • texture: pass compile (db7c118)
  • texture: pass instance->basic material map (7b19cec)
  • texture: remove widths, heights;remove setWidth, setHeight;add filter, wrap data (1744f04)
  • texture: support change basic material->map (c4564c1)

Performance Improvements

  • customGeometry: optimize memory: reduce infos typeArray size (cb82115)

fix bug

03 May 11:37
Compare
Choose a tag to compare

Bug Fixes

  • arraybuffer: fix CopyArrayBufferService->copyArrayBuffer (64277f6)
  • instance: fix batch->draw sourceInstance gameObject (af0bbfe)
  • package.json: update resolutions->wonder-commonlib version (333d266)
  • redo-undo: fix "redo-undo arraybuffer" bug (265a1c9)
  • redo-undo: if restore to the same state, not change typeArrays (a8f7e6d)

Features

  • job: initState job now enable depth test (b2fe490)
  • redo-undo: optimize restore: now only setDefaultTypeArrData of specific data (d63d7da)

add render worker

30 Apr 13:54
Compare
Choose a tag to compare

Add

add multi thread

add render worker, which runs parallel with main worker

benchmark report

https://www.zybuluo.com/yangyc/note/1129458

Bug Fixes

  • fix "unknonw" to "unknown" (315dde9)
  • fix debugJson bug (d652bda)
  • instance: fix "batch->front render light" (747220d)
  • instance: fix InstanceBufferRenderService->getOrCreateMatrixFloat32Array->get typeArr from pool (7147ff0)
  • perspectiveCameraProjection: fix "update after dispose" bug (7f78424)
  • redo-undo: fix "1.create box1; 2.get copied state by deepCopyForRestore; 3.dispose box1; 4.add box2; 5.restore to copied state. the box1's vertices from copied state is wrong!" bug (05b691a)
  • render-worker: fix "worker data" bug: use "##data" instead of "##record" (3315b20)
  • transform: fix "created transform not dirty" bug: mark it dirty (be240da)

Features

  • arraybuffer: fix BufferSettingService->getLightMaterialDataBufferCount: now get lightMaterialD (0a1926d)
  • boxGeometry: not reallocate (df2298d)
  • boxGeometry: remove computeDataFuncMap (1bc16cc)
  • customGeometry: fix "new one after dispose(cause reallocate) should has its own geometry point" bug (3f87fde)
  • customGeometry: now can get custom or box geometry data when render (161a3e9)
  • dispose: begin add "worker->dispose logic"(add dispose boxGeometry vbo buffer logic)(pass compile) (b000a4e)
  • dispose: add batchDisposeGameObjectKeepOrder (e7c0d01)
  • dispose: add no worker->"defer dispose all other components" logic (3150a00)
  • dispose: add no worker->"defer dispose basicCameraView component" logic (91c1c41)
  • dispose: add no worker->"defer dispose gameObject" logic (12e771d)
  • dispose: begin no worker "defer dispose" logic: defer batch dispose gameObjects (7ff6b68)
  • dispose: fix "dispose box geometry->vbo buffer" (3161dc6)
  • dispose: fix "dispose custom geometry->vbo buffer" (ab097d4)
  • dispose: fix DisposeJob bug (76b1e38)
  • dispose: fix no worker->basic box->create and dispose (5087132)
  • dispose: fix worker->basic box->create and dispose->change to mutable (7e9917d)
  • dispose: fix worker->basic material->the material data send to render worker for init should remove the disposed ones (bd4f175)
  • dispose: optimize "dispose sourceInstance" (78f771d)
  • dispose: optimize "dispose->material->removeDisposedOnesFromMaterialArrayForWorkerInit" (dba75f0)
  • dispose: optimize "dispose->meshRenderer->_batchRemoveFromRenderArray" (5dc0c6d)
  • dispose: optimize "reallocate cpu memory" (95f8dfb)
  • dispose: optimize DisposeComponentService->batchRemoveFromArray; not print,log (6e71844)
  • dispose: remove "dispose gameObject/component" logic, only remain "batch dispose" logic (c27ab5a)
  • gameObject: add custom geometry related api (cd1e0e7)
  • gameObject: fix GameObjectAPI->unsafeGetGameObjectGeometryComponent (2cc7474)
  • geometry: add custom geometry component(pass compile) (3b970bc)
  • geometry: change current geometry data: remove buffer map, func (3be89e1)
  • geometry: change to array buffer(pass compile) (ea0f448)
  • geometry: change to array buffer(pass render test) (7b78dfa)
  • geometry: change to array buffer(pass unit, integration test) (fe05dc9)
  • geometry: currentComponentDataMapRenderService->getCurrentGeometryBufferMapAndGetPointsFuncs a (7619b93)
  • geometry: fix "draw diferent geometry gameObjects" bug (3a79af2)
  • geometry: fix gameObject->batch add components, dispose components (0b1465a)
  • geometry: fix instance->"draw different geometry gameObjects" bug (9378882)
  • instance: disposeSourceInstanceMainService->handleBatchDisposeComponent add ensure check: boxG (cbad729)
  • instance: sourceInstanceAPI-> use getSourceInstanceObjectInstanceTransformArray instead of get (a7504d1)
  • job: "add custom no worker job" now need "action" (cb84c91)
  • job: add "operate custom main init worker job" logic (7693a97)
  • job: add "operate custom main loop worker job" logic (255a55f)
  • job: add update_transform job (483c3b7)
  • job: main_loop_pipelines add "sync" group job (2f83f92)
  • job: update data/ json files (e779c15)
  • job: update e2e, test/benchmark loop_pipelines, loop_jobs json files (f415dad)
  • job: worker job add "front_render_light" (6fbd414)
  • json: fix "parse render config json" (ac8371a)
  • lightMaterial: optimize "ModelMatrixTransformService->getNormalMatrixTypeArray" (8dca36d)
  • material: change to array buffer (fa8202b)
  • microservice: begin implement InitBasicMaterialRenderWorkerJob(draft) (f3ee31d)
  • microservice: fix "send attribute and send shader uniform data" (131a12d)
  • microservice: fix "send camera, model, light, material uniform data" (2076ba0)
  • microservice: fix InitBasicMaterialRenderWorkerJob related logic(draft) (3a9c937)
  • microservice: pass src compile (ec19af8)
  • microservice: pass test compile (fc037f3)
  • pf-test: add gulp->generatePerformanceReport task (91b3441)
  • render: add "create basic render object buffer" logic (deb0f78)
  • render: add "create light render object buffer" logic (ddc08be)
  • render-worker: fix "CreateBasicRenderObjectBufferTypeArrayRenderWorkerJob->renderRecord->basicRenderObjectRecord wrong" bug (e06e945)
  • render-worker: add "create_canvas", "set_full_screen" main init jobs; add "set_viewport" worker job (a44c698)
  • render-worker: add "detect_gl" render worker job (ca56a80)
  • render-worker: add "dispose sourceInstance->dispose source ins...
Read more

change to microservice architecture; unify logic, render job to be no worker job; add worker job

15 Mar 09:06
Compare
Choose a tag to compare

Features

  • gameObject: add "disposeGameObjectKeepOrder" api (51f3965)
  • light: fix OperatePointLightService->get/setLinear (94a735f)
  • microservice: change service module name (e2afd7d)
  • microservice: extract array service (be62d92)
  • microservice: extract color, hashMap, sparseMap, matrix3, vector3 service (5e9ee4e)
  • microservice: extract cpu memory service (e1936c9)
  • microservice: extract DeviceManager service (f4bdfd8)
  • microservice: extract gameObject service (524f460)
  • microservice: extract geometry service (8871b08)
  • microservice: extract glsl location service (4597e0c)
  • microservice: extract glsl sender service (1070f47)
  • microservice: extract gpu detect service (b824ee9)
  • microservice: extract instance service (5e49ef9)
  • microservice: extract IsDebugMainService service (95e12b5)
  • microservice: extract job service (673ffad)
  • microservice: extract light service (d0b7ce3)
  • microservice: extract main state, state data service (9177a62)
  • microservice: extract material service (c3d55bf)
  • microservice: extract meshRenderer service (53d79e4)
  • microservice: extract no worker, worker job service (ba47925)
  • microservice: extract program service (f1b0030)
  • microservice: extract RecordGPUDetectService, RecordViewService, RecordInitConfigService servi (42d3070)
  • microservice: extract render config, send light handle, glsl handle service (7489a65)
  • microservice: extract render worker service (81ea812)
  • microservice: extract render-> remain files (except worker files) to be service (5ee745e)
  • microservice: extract setting service (d30c5ee)
  • microservice: extract shader, glsl service (9db2c53)
  • microservice: extract timeController service (c95ddce)
  • microservice: extract utils service (7b52978)
  • microservice: extract vbo buffer service (d0eff94)
  • microservice: extract view service (1c6b92d)
  • microservice: extract workerDetect service (16438fb)
  • microservice: extract workerInstance service (a647b88)
  • microservice: pass extract "camera service" compile (094dd41)
  • microservice: pass extract "transform service" compile (b94f362)
  • microservice: remove ecs->component, utils (d8b39d4)
  • microservice: rename state service: add "Main" postfix (f79ea33)
  • microservice: rename StateDataType, StateData to MainXXX (4f08dce)
  • microservice: wonder-commonlib change to service (50d87d6)
  • no-worker: restore "add custom job" (5743fae)
  • render-worker: create render worker and set to state (9efb13f)
  • render-worker: finish "init gl" logic (e3c3e71)
  • render-worker: now can build wd.render.worker.js file (ebd23e4)
  • render-worker: pass no worker(compile) (0edf7eb)
  • clear todo (5bf2761)
  • render-worker: pass render-worker-file-dir via setMainConfig (a02873a), closes #e2b637
  • render-worker: pass worker->init demo(pass render test) (fb3f811)
  • render-worker: pass worker->init demo(pass src compile) (6946910)
  • render-worker: pass worker->loop demo(pass render test) (cdecdcf)

add light; add light material

06 Feb 12:41
Compare
Choose a tag to compare

Bug Fixes

  • job: fix asset->JobConfigLoaderSystem->"if the order of the fetch of logic/render json data change, shouldn't affect the setted data in state" bug (2ea157d)
  • fix package.json->buildAll script bug (7a8a8ee)
  • instance: fix "if has instance shader and other shader and mark instance static, the second draw of instance will fail" bug + optimize draw instance: if already enableVertexAttribArray before, not enable it again (e9e33fa)

Features

  • geometry: add normals (704f8e9)
  • glsl: vs top add precision (c7b6b17)
  • instance: add normalMatrix instance data (f6e00c5)
  • job: add "front_render_light" job; rename "send uniform data" related modules' and functions' (bbc50d4)
  • job: extract ClearLastSendComponentJob (0a2a4d4)
  • job: improve shader.json->material_shaders (45ea42b)
  • light: add "init->direction light shader" logic (29796bd)
  • light: add "point light->init shader" logic (4c69ce7)
  • light: add ambient light; refactor(rename folder name; move job folder); add light material gl (28a8e8e)
  • light: add direction light component (a3ddb50)
  • light: add point light component (f3fa8f9)
  • light: fix "compute normalMatrix" bug (de797bd)
  • light: fix "define light count" bug (adbfd01)
  • light: fix "send normalMatrix uniform data" bug: now send per renderObject instead of per shad (d758294)
  • light: fix ambient light->dispose->swap index/data bug (aa18246)
  • light: optimize "send normalMatrix": add cache (b68cbcb)
  • light: optimize: use "normal matrix cache" (0cdf2eb)
  • light: pass "render point light" main unit test and render test (c84784b)
  • light: set gl side to be FRONT when init (baefcff)
  • lightMaterial: add lightMaterial component (b25b27a)
  • shader: optimize: getOffsetFunc now not curry (30648ac)
  • shader: pass lightMaterial, ambientLight related shader->send uniform data logic (503fcf9)
  • shader: send u_cameraPos, u_normalMatrix uniform data (7e9d722)
  • transform: optimize "set transform and set parent" (d1c1be7)

Performance Improvements

  • render: use "lastSendGeometry" instead of "lastSendArrayBuffer", "lastSendElementArrayBuffer" (aee8ff9)

benchmark report

https://www.zybuluo.com/yangyc/note/1042505

improve job architecture

26 Jan 12:37
Compare
Choose a tag to compare

Bug Fixes

  • redo-undo: fix deepCopyStateForRestore: now deep copy transform->childMap (6343eb5)
  • specHelper: fix "toCalledWith"-> error message (f3a6b54)

Features

  • job: add json data files instead of reason wraped json data files (ba91ca7)
  • job: add logic job config (477b253)
  • job: handle RenderJobConfigSystem.re->switch unknown cases (d447ab0)
  • job: implement "add,remove custom job" (187de58)
  • job: renderJobConfigSystem,LogicJobConfigSystem->_unsafeGetXXXJobConfig add contract check (e5ebc4d)
  • job implement logic->"add,remove custom job" (30c1abd)
  • transform: add "setTransformParentKeepOrder" api (4c59d98)

Performance Improvements

  • job: now only get render jobs from config once (8901be8)
  • transform: "getChilren" now not copy children (3d5e2a7)

regulate log, debug; improve e2e test; extract integration test

15 Jan 23:37
Compare
Choose a tag to compare

Tests

  • integration-test: extract integration test from unit test

Bug Fixes

  • bumped: solve "permission denied" problem (125d132)
  • coverage: fix jest_coverage.json: change "lib/js/xxx" to "lib/es6_global/xxx" (178529d)
  • e2e-test: fix "if test fail, not exit when run test in local" bug (f91cc29)
  • render-test: now wait for generate diff image

Features

  • log: use wonder-log for debug,contract,log,error,fatal (5d02463)
  • pf-test: improve pf test success rate:re-generate benchmark before re-compare (440b08b)
  • pf-test: improve pf test success rate:if one item of timeList is already passed in previous compare, not compare it in the later compare

add render test; automated publish,test,ci

09 Jan 15:25
Compare
Choose a tag to compare

Tests

  • render-test: add render test
    support run in local and in ci
    support auto generate data

  • pf-test: performance test support run in ci
    support auto generate data

Refactors

  • code-climate: use code climate for check code quality and test coverage

Chores

  • badges: add more badges

  • publish: use bumped as auto publish tool

Bug Fixes

  • change "DreamForest" to "Wonder-Technology" (e5afdb7)
  • rename "cacheable" to "cachable" (f90506a)
  • license: fix author and date (e2f18c9)

Features

  • canvas: use full screen canvas (d992876)
  • canvas: use full screen canvas (95f38da)

add performance test

28 Dec 12:29
Compare
Choose a tag to compare

Bug Fixes

  • compileReason gulp task: add "sudo" (6cb4f30)

Features

  • add "generate pf test json data" logic and test (4be0de4)
  • add "rollup", "generateIndex" gulp task (7f3eefc)
  • add more performance test data: one for ci test, and one for local test (678bf83)
  • add src/Index.re (70e6cc0)
  • gulp task: add "buildForRunTest" (d9802b4)
  • Main->config: add "gpuConfig" (51c300f)