Browse Source

Merge branch 'F/20231214Init' of ssh://gogs.ghz-tech.com:30979/GHzGlass/WXXR into F/20231214Init

yuxiang.cheng 10 months ago
parent
commit
926c2311a0
100 changed files with 1725 additions and 1302 deletions
  1. 5 84
      miniprogram/app.json
  2. BIN
      miniprogram/assets/gltf/Fox.glb
  3. BIN
      miniprogram/assets/image/ar-box-border.png
  4. BIN
      miniprogram/assets/image/background.png
  5. BIN
      miniprogram/assets/image/handle.png
  6. BIN
      miniprogram/assets/image/p1-bttext.png
  7. BIN
      miniprogram/assets/image/p1_bgbt2.png
  8. BIN
      miniprogram/assets/image/saomiao.png
  9. BIN
      miniprogram/assets/image/shibietu.png
  10. 1 1
      miniprogram/components/xr-ar-threeDof/index.wxml
  11. 59 0
      miniprogram/components/xr-classic-saomiao/index.js
  12. 0 0
      miniprogram/components/xr-classic-saomiao/index.json
  13. 30 0
      miniprogram/components/xr-classic-saomiao/index.wxml
  14. 0 0
      miniprogram/components/xr-classic-saomiao/index.wxss
  15. 267 0
      miniprogram/components/xr-classic-show/index.js
  16. 5 0
      miniprogram/components/xr-classic-show/index.json
  17. 147 0
      miniprogram/components/xr-classic-show/index.wxml
  18. 1 0
      miniprogram/components/xr-classic-show/index.wxss
  19. 73 0
      miniprogram/components/xr-classic-showsix/index.js
  20. 5 0
      miniprogram/components/xr-classic-showsix/index.json
  21. 132 0
      miniprogram/components/xr-classic-showsix/index.wxml
  22. 1 0
      miniprogram/components/xr-classic-showsix/index.wxss
  23. 0 73
      miniprogram/components/xr-classic-video/index.js
  24. 0 56
      miniprogram/components/xr-classic-video/index.wxml
  25. 7 5
      miniprogram/components/xr-classic-wxball/index.js
  26. 1 1
      miniprogram/components/xr-classic-wxball/index.wxml
  27. 1 1
      miniprogram/components/xr-gltf-animation/index.wxml
  28. 3 0
      miniprogram/mmbizwxaminiprogram-1258344707.cos.ap-guangzhou.myqcloud.com/xr-frame/demo/xr-frame-team/last-gate.txt.json
  29. 66 0
      miniprogram/mmbizwxaminiprogram-1258344707.cos.ap-guangzhou.myqcloud.com/xr-frame/demo/xr-frame-team/last-gate.txt.ts
  30. 2 0
      miniprogram/mmbizwxaminiprogram-1258344707.cos.ap-guangzhou.myqcloud.com/xr-frame/demo/xr-frame-team/last-gate.txt.wxml
  31. 1 0
      miniprogram/mmbizwxaminiprogram-1258344707.cos.ap-guangzhou.myqcloud.com/xr-frame/demo/xr-frame-team/last-gate.txt.wxss
  32. 22 0
      miniprogram/pages/ar-classic/scene-classic-saomiao/index.js
  33. 1 1
      miniprogram/pages/ar-classic/scene-classic-saomiao/index.json
  34. 37 0
      miniprogram/pages/ar-classic/scene-classic-saomiao/index.wxml
  35. 29 0
      miniprogram/pages/ar-classic/scene-classic-saomiao/index.wxss
  36. 208 0
      miniprogram/pages/ar-classic/scene-classic-show/index.js
  37. 6 0
      miniprogram/pages/ar-classic/scene-classic-show/index.json
  38. 164 0
      miniprogram/pages/ar-classic/scene-classic-show/index.wxml
  39. 53 0
      miniprogram/pages/ar-classic/scene-classic-show/index.wxss
  40. 20 0
      miniprogram/pages/ar-classic/scene-classic-showsix/index.js
  41. 1 1
      miniprogram/pages/ar-classic/scene-classic-showsix/index.json
  42. 28 0
      miniprogram/pages/ar-classic/scene-classic-showsix/index.wxml
  43. 29 0
      miniprogram/pages/ar-classic/scene-classic-showsix/index.wxss
  44. 0 26
      miniprogram/pages/ar-classic/scene-classic-video/index.js
  45. 0 7
      miniprogram/pages/ar-classic/scene-classic-video/index.json
  46. 0 13
      miniprogram/pages/ar-classic/scene-classic-video/index.wxml
  47. 2 0
      miniprogram/pages/ar-classic/scene-classic-wxball/index.wxml
  48. BIN
      miniprogram/pages/ar/plane-ar-v2-marker/add.png
  49. 62 0
      miniprogram/pages/ar/plane-ar-v2-marker/behavior.js
  50. BIN
      miniprogram/pages/ar/plane-ar-v2-marker/move.gif
  51. 93 0
      miniprogram/pages/ar/plane-ar-v2-marker/plane-ar-v2-marker.js
  52. 5 0
      miniprogram/pages/ar/plane-ar-v2-marker/plane-ar-v2-marker.json
  53. 0 0
      miniprogram/pages/ar/plane-ar-v2-marker/plane-ar-v2-marker.wxml
  54. 19 0
      miniprogram/pages/ar/plane-ar-v2-marker/plane-ar-v2-marker.wxss
  55. 139 0
      miniprogram/pages/ar/plane-ar-v2-marker/yuvBehavior.js
  56. 0 48
      miniprogram/pages/basic/scene-basic-alpha/index.js
  57. 0 7
      miniprogram/pages/basic/scene-basic-alpha/index.json
  58. 0 42
      miniprogram/pages/basic/scene-basic-alpha/index.wxml
  59. 0 19
      miniprogram/pages/basic/scene-basic-alpha/index.wxss
  60. 0 100
      miniprogram/pages/basic/scene-basic-animation/index.js
  61. 0 7
      miniprogram/pages/basic/scene-basic-animation/index.json
  62. 0 15
      miniprogram/pages/basic/scene-basic-animation/index.wxml
  63. 0 0
      miniprogram/pages/basic/scene-basic-animation/index.wxss
  64. 0 8
      miniprogram/pages/basic/scene-basic-envData/index.js
  65. 0 7
      miniprogram/pages/basic/scene-basic-envData/index.json
  66. 0 12
      miniprogram/pages/basic/scene-basic-envData/index.wxml
  67. 0 0
      miniprogram/pages/basic/scene-basic-envData/index.wxss
  68. 0 35
      miniprogram/pages/basic/scene-basic-light/index.js
  69. 0 7
      miniprogram/pages/basic/scene-basic-light/index.json
  70. 0 14
      miniprogram/pages/basic/scene-basic-light/index.wxml
  71. 0 0
      miniprogram/pages/basic/scene-basic-light/index.wxss
  72. 0 61
      miniprogram/pages/basic/scene-basic-particle/index.js
  73. 0 31
      miniprogram/pages/basic/scene-basic-particle/index.wxml
  74. 0 30
      miniprogram/pages/basic/scene-basic-particle/index.wxss
  75. 0 86
      miniprogram/pages/basic/scene-basic-postprocessing/index.js
  76. 0 7
      miniprogram/pages/basic/scene-basic-postprocessing/index.json
  77. 0 71
      miniprogram/pages/basic/scene-basic-postprocessing/index.wxml
  78. 0 19
      miniprogram/pages/basic/scene-basic-postprocessing/index.wxss
  79. 0 11
      miniprogram/pages/basic/scene-basic-render-texture/index.js
  80. 0 7
      miniprogram/pages/basic/scene-basic-render-texture/index.json
  81. 0 13
      miniprogram/pages/basic/scene-basic-render-texture/index.wxml
  82. 0 0
      miniprogram/pages/basic/scene-basic-render-texture/index.wxss
  83. 0 60
      miniprogram/pages/basic/scene-basic-shadow/index.js
  84. 0 7
      miniprogram/pages/basic/scene-basic-shadow/index.json
  85. 0 20
      miniprogram/pages/basic/scene-basic-shadow/index.wxml
  86. 0 11
      miniprogram/pages/basic/scene-basic-shadow/index.wxss
  87. 0 76
      miniprogram/pages/basic/scene-basic-share/index.js
  88. 0 7
      miniprogram/pages/basic/scene-basic-share/index.json
  89. 0 54
      miniprogram/pages/basic/scene-basic-share/index.wxml
  90. 0 24
      miniprogram/pages/basic/scene-basic-share/index.wxss
  91. 0 34
      miniprogram/pages/basic/scene-basic-touch/index.js
  92. 0 7
      miniprogram/pages/basic/scene-basic-touch/index.json
  93. 0 14
      miniprogram/pages/basic/scene-basic-touch/index.wxml
  94. 0 0
      miniprogram/pages/basic/scene-basic-touch/index.wxss
  95. 0 11
      miniprogram/pages/basic/scene-basic-video/index.js
  96. 0 7
      miniprogram/pages/basic/scene-basic-video/index.json
  97. 0 14
      miniprogram/pages/basic/scene-basic-video/index.wxml
  98. 0 0
      miniprogram/pages/basic/scene-basic-video/index.wxss
  99. 0 23
      miniprogram/pages/basic/scene-basic-visible-layer/index.js
  100. 0 7
      miniprogram/pages/basic/scene-basic-visible-layer/index.json

+ 5 - 84
miniprogram/app.json

@@ -1,87 +1,10 @@
 {
   "pages": [
-    "pages/ar-classic/scene-classic-video/index",
-    "pages/index/index",
-    "pages/basic/scene-basic/index",
-    "pages/basic/scene-basic-alpha/index",
-    "pages/basic/scene-basic-light/index",
-    "pages/basic/scene-basic-animation/index",
-    "pages/basic/scene-basic-touch/index",
-    "pages/basic/scene-basic-visible-layer/index",
-    "pages/basic/scene-basic-shadow/index",
-    "pages/basic/scene-basic-video/index",
-    "pages/basic/scene-basic-render-texture/index",
-    "pages/basic/scene-basic-postprocessing/index",
-    "pages/basic/scene-basic-envData/index",
-    "pages/basic/scene-basic-share/index",
-    "pages/gltf/scene-gltf-damageHelmet/index",
-    "pages/gltf/scene-gltf-unlit/index",
-    "pages/gltf/scene-gltf-animation/index",
-    "pages/gltf/scene-gltf-morph/index",
-    "pages/gltf/scene-gltf-light-loading/index",
-    "pages/gltf/scene-gltf-specularGlossiness/index",
-    "pages/gltf/scene-gltf-sheen/index",
-    "pages/gltf/scene-gltf-transmission/index",
-    "pages/gltf/scene-gltf-textureTransform/index",
-    "pages/gltf/scene-gltf-lightsPunctual/index",
-    "pages/gltf/scene-gltf-compressTextures/index",
-    "pages/ar/scene-ar-basic/index",
-    "pages/ar/scene-ar-2dmarker/index",
-    "pages/ar/scene-ar-osdmarker/index",
-    "pages/ar/scene-ar-face/index",
-    "pages/ar/scene-ar-hand/index",
-    "pages/ar/scene-ar-body/index",
-    "pages/ar/scene-ar-threeDof/index",
-    "pages/ar/scene-ar-camera/index",
-    "pages/ar/scene-ar-vio-marker/index",
-    "pages/ar/scene-ar-vio-depth/index",
-    "pages/custom/scene-custom-logic/index",
-    "pages/custom/scene-custom-render/index",
-    "pages/scan/scene-scan-render/index",
-    "pages/scan/scene-scan-team/index",
-    "pages/ar-classic/scene-classic-wxball/index",
-    "pages/ar-classic/scene-classic-perspect/index",
-    "pages/ar-classic/scene-classic-portal/index",
-    "pages/ar-classic/scene-classic-osd/index",
-    "pages/ar-classic/scene-classic-face/index",
-    "pages/template/xr-template-message/index",
-    "pages/template/xr-template-control/index",
-    "pages/template/xr-template-loading/index",
-    "pages/template/xr-template-toon/index",
-    "pages/template/xr-template-planeShadow/index",
-    "pages/template/xr-template-geometry/index",
-    "pages/template/xr-template-gltfEdit/index",
-    "pages/template/xr-template-gltfAnimation/index",
-    "pages/template/xr-template-gltfOcclusion/index",
-    "pages/template/xr-template-gltfUVAnimation/index",
-    "pages/template/xr-template-blendDouble/index",
-    "pages/template/xr-template-frameEffect/index",
-    "pages/template/xr-template-tracker/index",
-    "pages/template/xr-template-markerCenter/index",
-    "pages/template/xr-template-markerLock/index",
-    "pages/template/xr-template-arLine/index",
-    "pages/template/xr-template-select/index",
-    "pages/template/xr-template-share/index",
-    "pages/template/xr-template-removeBlack/index",
-    "pages/template/xr-template-featherVideo/index",
-    "pages/template/xr-template-arPreview/index",
-    "pages/template/xr-template-lookat/index",
-    "pages/template/xr-template-arui/index",
-    "pages/scene-last-record/index",
-    "pages/scene-beside-edge/index",
-    "pages/physics/scene-physics-shoot/index",
-    "pages/physics/scene-physics-throw/index",
-    "pages/particle/scene-particle-firework/index",
-    "pages/particle/scene-particle-portal/index",
-    "pages/particle/scene-particle-orb/index",
-    "pages/particle/scene-particle-shapeEmitter/index",
-    "pages/particle/scene-particle-custom/index",
-    "pages/particle/scene-particle-meshEmitter/index",
-    "pages/customParticle/scene-customParticle-firework/index",
-    "pages/customParticle/scene-customParticle-orb/index",
-    "pages/customParticle/scene-customParticle-portal/index",
-    "pages/customParticle/scene-customParticle-shapeEmitter/index",
-    "pages/customParticle/scene-customParticle-meshEmitter/index"
+   
+    "pages/ar-classic/scene-classic-show/index",
+    "pages/ar-classic/scene-classic-saomiao/index",
+    "pages/ar/plane-ar-v2-marker/plane-ar-v2-marker",
+    "pages/ar-classic/scene-classic-showsix/index"
   ],
   "usingComponents": {},
   "window": {
@@ -90,7 +13,5 @@
     "navigationBarTitleText": "",
     "navigationBarTextStyle": "black"
   },
-  "style": "v2",
-  "sitemapLocation": "sitemap.json",
   "lazyCodeLoading": "requiredComponents"
 }

BIN
miniprogram/assets/gltf/Fox.glb


BIN
miniprogram/assets/image/ar-box-border.png


BIN
miniprogram/assets/image/background.png


BIN
miniprogram/assets/image/handle.png


BIN
miniprogram/assets/image/p1-bttext.png


BIN
miniprogram/assets/image/p1_bgbt2.png


BIN
miniprogram/assets/image/saomiao.png


BIN
miniprogram/assets/image/shibietu.png


+ 1 - 1
miniprogram/components/xr-ar-threeDof/index.wxml

@@ -1,4 +1,4 @@
-<xr-scene ar-system="modes:Plane Marker; planeMode: 1;" bind:ready="handleReady" bind:ar-ready="handleARReady">
+<xr-scene ar-system="modes:threeDof ; planeMode: 1;" bind:ready="handleReady" bind:ar-ready="handleARReady">
   <xr-assets bind:progress="handleAssetsProgress" bind:loaded="handleAssetsLoaded">
     <xr-asset-load type="gltf" asset-id="gltf-item" src="https://mmbizwxaminiprogram-1258344707.cos.ap-guangzhou.myqcloud.com/xr-frame/demo/just_a_girl/index.glb" />
   </xr-assets>

+ 59 - 0
miniprogram/components/xr-classic-saomiao/index.js

@@ -0,0 +1,59 @@
+Component({
+  behaviors: [require('../common/share-behavior').default],
+  properties: {},
+  data: {
+    loadedSaoMiao:false,
+    loaded: false,
+    arReady: false,
+    loaded2:false,
+    position2:[0,0,0],
+    rot:0,
+    str:"1"
+  },
+  lifetimes: {
+    async attached() {
+      console.log('data', this.data);
+    }
+  },
+  methods: {
+    handleReady: function ({detail}) {
+      const xrScene = this.scene = detail.value;
+      console.log('xr-scene', xrScene);
+    },
+    handleAssetsProgress: function({detail}) {
+      this.triggerEvent('assetsProgress', detail.value);
+    },
+    handleAssetsLoaded: function ({detail}) {
+    },handleGltfLoaded2: function() {
+      
+    },handleGltfLoaded: function() {
+      
+    },
+    handleTrackerSwitch: function ({detail}) {
+
+
+      const active = detail.value;
+      if(active)
+      {
+              
+        wx.redirectTo({
+           url: '/pages/ar/plane-ar-v2-marker/plane-ar-v2-marker',
+         // url: '/pages/ar-classic/scene-classic-showsix/index',
+            success: () => {
+            },
+            fail: () => {
+            },
+          });
+       
+
+
+
+
+      }
+    },handleARTrackerState({detail}) {
+    },
+    handleAnimationStop: function() {
+      console.log('animation Stop');
+    }
+  }
+})

+ 0 - 0
miniprogram/components/xr-classic-video/index.json → miniprogram/components/xr-classic-saomiao/index.json


+ 30 - 0
miniprogram/components/xr-classic-saomiao/index.wxml

@@ -0,0 +1,30 @@
+<xr-scene ar-system="modes:Marker; planeMode: 1;" bind:ready="handleReady" bind:ar-ready="handleARReady">
+  
+  <xr-assets bind:progress="handleAssetsProgress" bind:loaded="handleAssetsLoaded">
+
+  </xr-assets>
+
+    <xr-node node-id="MarkerNode">
+      <xr-ar-tracker node-id="Marker" mode="Marker" src="https://wx-model-1317557471.cos.ap-shanghai.myqcloud.com/1.jpg" bind:ar-tracker-switch="handleTrackerSwitch"
+      bind:ar-tracker-state="handleARTrackerState">
+      </xr-ar-tracker>
+
+
+
+    </xr-node>
+   
+    <xr-camera
+      id="camera" node-id="camera" position="1 1 1" clear-color="0.925 0.925 0.925 1"
+      background="ar" is-ar-camera
+    />
+  
+  <xr-node node-id="lights">
+    <xr-light type="ambient" color="1 1 1" intensity="0.3" />
+    <xr-light type="directional" rotation="30 60 0" color="1 1 1" intensity="1" />
+  </xr-node>
+
+
+</xr-scene>
+
+
+

+ 0 - 0
miniprogram/components/xr-classic-video/index.wxss → miniprogram/components/xr-classic-saomiao/index.wxss


+ 267 - 0
miniprogram/components/xr-classic-show/index.js

@@ -0,0 +1,267 @@
+Component({
+  behaviors: [require('../common/share-behavior').default],
+  properties: {
+    captureState: {
+      type: Number,
+      value: 0,
+      observer: function (newVal, oldVal) {
+        if (newVal !== oldVal) {
+          if (newVal === 1) {
+            this.capture();
+            this.ShowModel();
+          }
+        }
+      },
+    },
+    recordState: {
+      type: Number,
+      value: 0,
+      observer: function (newVal, oldVal) {
+        if (newVal !== oldVal) {
+          if (newVal === 0) {
+            this.recordEnd();
+          } else {
+            this.recordStart();
+          }
+        }
+      }
+    },
+    captureQuality: {
+      type: Number,
+      value: 0.8,
+    },
+    captureType: {
+      type: String,
+      value: 'jpg',
+    },
+    recordFPS: {
+      type: Number,
+      value: 30,
+    },
+    recordWidth: {
+      type: Number,
+      value: undefined,
+    },
+    recordHeight: {
+      type: Number,
+      value: undefined,
+    },
+    recordBPS: {
+      type: Number,
+      value: 1000,
+    },
+    uiShowModelView:{
+      type: Boolean,
+      value: false,
+      observer: function (newVal, oldVal) {
+      
+        if (newVal !== oldVal) {
+          if(newVal){
+            //this.ShowModel(1);
+          }else{
+            this.CloseModel();
+          }
+        }     
+      },
+    },   
+    uiShowIndex:{
+      type: Number,
+      value: 0,
+      observer: function (newVal, oldVal) {
+        if (newVal !== oldVal) {
+          this.ShowModel(newVal);
+        }
+      },
+    }
+  },
+  data: {
+    loaded: false,
+    loadedSaoMiao:false,
+    loaded: false,
+    arReady: false,
+    loaded2:false,
+    position2:[0,0,0],
+    rot:0,
+    str:"1",
+    longshow : false,
+    binglongshow:false,
+    lanjiachongshow:false,
+  },
+
+  lifetimes: {
+    async attached() {
+      console.log('data', this.data);
+    }
+  },
+  methods: {
+    handleReady: function ({detail}) {
+      const xrScene = this.scene = detail.value;
+      console.log('xr-scene', xrScene);
+
+      this.binglong = {el:this.scene.getElementById('binglong')};
+
+      const scene = this.scene = detail.value;
+      const appHide = () => this.scene.share.recordPause();
+      const appShow = () => this.scene.share.recordResume();
+      wx.onAppHide(appHide);
+      wx.onAppShow(appShow);
+      wx.offAppHide(appHide);
+      wx.offAppShow(appShow);
+      
+      this.triggerEvent('sceneReady', {width: scene.width, height: scene.height});
+
+    },
+    handleAssetsProgress: function({detail}) {
+      this.triggerEvent('assetsProgress', detail.value);
+    },
+    handleAssetsLoaded: function ({detail}) {
+      console.log('assets loaded', detail.value);
+      this.triggerEvent('assetsLoaded', detail.value);
+      this.setData({
+        loaded: true
+      });
+     
+    },handleGltfLoaded2: function() {
+      
+    },handleGltfLoaded: function() {
+      
+    },
+    handleTrackerSwitch: function ({detail}) {
+
+
+      const active = detail.value;
+      if(active)
+      {
+        this.setData({
+          loaded2: true
+        });
+      }
+    },handleARTrackerState({detail}) {
+      // 事件的值即为`ARTracker`实例
+      const tracker = detail.value;
+      // 获取当前状态和错误信息
+      const {state, errorMessage} = tracker;
+
+      const element = detail.el;
+
+
+      if( state==2)
+      {
+
+        this.triggerEvent('assetsstr',"state"  + state);
+        
+/*
+        this.triggerEvent('assetsstr',"x:"  + (180/Math.PI* element.scene.getNodeById("Marker").rotation.x) +"\ny:"  +  (180/Math.PI*element.scene.getNodeById("Marker").rotation.y)+"\nz:"  +  (180/Math.PI*element.scene.getNodeById("Marker").rotation.z));*/
+      
+      }
+
+
+    },
+    handleAnimationStop: function() {
+      console.log('animation Stop');
+    },
+    handleGLTFLoadedbingLong:function({detail}){
+      const el2 = detail.value;
+      const el = detail.value.target;
+      const animator = el.getComponent(xrFrameSystem.Animator);
+      //animator.play("ui_motion_1");
+      
+      var state = true;
+
+      const xrScene = this.scene;
+      const xrFrameSystem = wx.getXrFrameSystem();
+      const myModel = xrScene.getElementById('binglong');
+      this.myModelAnimator = myModel.getComponent(xrFrameSystem.Animator);
+      const clips = this.myModelAnimator._clips;
+      this.clipName = []
+       clips.forEach((v, key) => {
+        if (key.indexOf('pose') == -1) {
+          this.clipName.push(key)
+        }
+      })
+      wx.showToast({
+        title: this.clipName[0],
+      });
+      this.myModelAnimator.play.play(this.clipName[0],{ loop:5,});
+
+      var interval = setInterval(function() {
+        if(false)
+        {
+          clearInterval(interval);
+        }
+        console.log(5000 +" 毫秒更新");
+        if(state)
+        {
+          state = false;
+          this.myModelAnimator.play.play(this.clipName[1],{ loop:5,});
+        }else{
+          state = true;
+          this.myModelAnimator.play.play(this.clipName[2],{ loop:5,});
+          el2.position =(0 -2.5 -40);
+        }
+        
+       }, 5000)
+
+    },
+    capture() {
+      this.scene.share.captureToFriends({
+        fileType: this.data.captureType,
+        quality: this.data.captureQuality
+      });
+    },
+    recordStart() {
+      console.log('recordStart') 
+      wx.updateShareMenu({
+        withShareTicket: true,
+        success () { }
+      })
+      this.scene.share.recordStart({
+        fps: this.data.recordFPS,
+        videoBitsPerSecond: this.data.recordBPS,
+        width: this.data.recordWidth,
+        height: this.data.recordHeight
+      });
+    },
+    recordEnd() {
+      console.log('recordEnd')
+     
+      
+      //
+      const tempFilePath =  this.scene.share.recordFinishToAlbum({
+        fps: this.data.recordFPS,
+        videoBitsPerSecond: this.data.recordBPS,
+        width: this.data.recordWidth,
+        height: this.data.recordHeight
+      });
+      wx.shareVideoMessage({
+        videoPath: tempFilePath,
+      });
+    },
+    ShowModel(modelIndex){
+      
+      switch(modelIndex){
+        case 0:
+          this.setData({longshow:true});
+          this.setData({binglongshow:false});
+          this.setData({lanjiachongshow:false});
+          break;
+        case 1:
+          this.setData({longshow:false});
+          this.setData({binglongshow:true});
+          this.setData({lanjiachongshow:false});
+          break;
+        case 2:
+          this.setData({longshow:false});
+          this.setData({binglongshow:false});
+          this.setData({lanjiachongshow:true});
+          break;
+      }
+     
+    },
+    CloseModel(){
+      this.setData({longshow:false});
+      this.setData({binglongshow:false});
+      this.setData({lanjiachongshow:false});
+    }
+  }
+})

+ 5 - 0
miniprogram/components/xr-classic-show/index.json

@@ -0,0 +1,5 @@
+{
+  "component": true,
+  "usingComponents": {},
+  "renderer": "xr-frame"
+}

+ 147 - 0
miniprogram/components/xr-classic-show/index.wxml

@@ -0,0 +1,147 @@
+<xr-scene ar-system="modes:threeDof ; planeMode: 1;" bind:ready="handleReady" bind:ar-ready="handleARReady">
+  
+  <xr-assets bind:progress="handleAssetsProgress" bind:loaded="handleAssetsLoaded">
+
+    <xr-asset-load type="env-data" asset-id="env1" src="https://mmbizwxaminiprogram-1258344707.cos.ap-guangzhou.myqcloud.com/xr-frame/demo/env-test.bin" />
+
+    <xr-asset-load type="gltf" asset-id="gltf-long" src="https://wx-model-1317557471.cos.ap-shanghai.myqcloud.com/2low_poly_dragon_white_dh10.glb" />
+    <xr-asset-load type="gltf" asset-id="gltf-yanhua" src="https://wx-model-1317557471.cos.ap-shanghai.myqcloud.com/4.glb" />
+    <xr-asset-load type="gltf" asset-id="gltf-binglong" src="https://wx-model-1317557471.cos.ap-shanghai.myqcloud.com/3.glb" />
+    <xr-asset-load type="gltf" asset-id="gltf-lanjiachong" src="https://wx-model-1317557471.cos.ap-shanghai.myqcloud.com/5.glb" />
+    <xr-asset-load type="gltf" asset-id="gltf-huangfeilong" src="https://wx-model-1317557471.cos.ap-shanghai.myqcloud.com/fourseasonsgriffons_spring.glb" />
+    <xr-asset-load type="gltf" asset-id="gltf-lanniao" src="https://wx-model-1317557471.cos.ap-shanghai.myqcloud.com/fourseasonsgriffons_winter.glb"  />
+    <xr-asset-load type="gltf" asset-id="gltf-denglong" src="https://wx-model-1317557471.cos.ap-shanghai.myqcloud.com/8.glb" />
+  </xr-assets>
+  <xr-env node-id="World" env-data="env1"/>
+
+      <xr-node  node-id="models">
+        <xr-gltf id="wxball2" node-id="mesh-gltf-wxball2" scale="500 500 500" position="-5 0.5 5"    model="gltf-long"
+          anim-autoplay 
+          />
+      
+          <xr-gltf id="binglong" node-id="binglong" scale="25 25 25" position="0 -1.5 -40"    model="gltf-binglong"
+            bind:gltf-loaded="handleGLTFLoadedbingLong"
+          />
+          <xr-gltf id="wxball2" node-id="mesh-gltf-wxball2" scale="300 300 300" position="-10 0 0"    model="gltf-lanjiachong"
+            anim-autoplay
+          />
+          <xr-gltf id="wxball2" node-id="mesh-gltf-wxball2" scale="30 30 30" position="10 -1 -10"    model="gltf-huangfeilong"
+            anim-autoplay
+          />
+          <xr-gltf id="wxball2" node-id="mesh-gltf-wxball2" scale="10 10 10" position="15 -1 0"  rotation="0 180 0"   model="gltf-lanniao" 
+            anim-autoplay
+          />
+          <xr-gltf id="wxball2" node-id="mesh-gltf-wxball2" scale="100 100 100" position="1 1.5 0"    model="gltf-denglong"
+            anim-autoplay
+          />
+          <xr-gltf id="wxball2" node-id="mesh-gltf-wxball2" scale="100 100 100" position="1 1 1"    model="gltf-denglong"
+            anim-autoplay
+          />
+          <xr-gltf id="wxball2" node-id="mesh-gltf-wxball2" scale="100 100 100" position="0 3 0"    model="gltf-denglong"
+            anim-autoplay
+          />
+          <xr-gltf id="wxball2" node-id="mesh-gltf-wxball2" scale="100 100 100" position="3 3 1"    model="gltf-denglong"
+            anim-autoplay
+          />
+          <xr-gltf id="wxball2" node-id="mesh-gltf-wxball2" scale="100 100 100" position="1 2 3"    model="gltf-denglong"
+            anim-autoplay
+          />
+          <xr-gltf id="wxball2" node-id="mesh-gltf-wxball2" scale="100 100 100" position="0 1.5 3"    model="gltf-denglong"
+            anim-autoplay
+          />
+          <xr-gltf id="wxball2" node-id="mesh-gltf-wxball2" scale="100 100 100" position="3 1.4 0"    model="gltf-denglong"
+            anim-autoplay
+          />
+          <xr-gltf id="wxball2" node-id="mesh-gltf-wxball2" scale="100 100 100" position="2 1.4 0"    model="gltf-denglong"
+            anim-autoplay
+          />
+          <xr-gltf id="wxball2" node-id="mesh-gltf-wxball2" scale="100 100 100" position="2 1.5 2"    model="gltf-denglong"
+            anim-autoplay
+          />
+
+
+
+          
+          <xr-gltf id="wxball2" node-id="mesh-gltf-wxball2" scale="100 100 100" position="-1 1.5 0"    model="gltf-denglong"
+            anim-autoplay
+          />
+          <xr-gltf id="wxball2" node-id="mesh-gltf-wxball2" scale="100 100 100" position="-1 1.7 -1"    model="gltf-denglong"
+            anim-autoplay
+          />
+          <xr-gltf id="wxball2" node-id="mesh-gltf-wxball2" scale="100 100 100" position="0 1.6 0"    model="gltf-denglong"
+            anim-autoplay
+          />
+          <xr-gltf id="wxball2" node-id="mesh-gltf-wxball2" scale="100 100 100" position="-3 1.5 -1"    model="gltf-denglong"
+            anim-autoplay
+          />
+          <xr-gltf id="wxball2" node-id="mesh-gltf-wxball2" scale="100 100 100" position="-1 1 -3"    model="gltf-denglong"
+            anim-autoplay
+          />
+          <xr-gltf id="wxball2" node-id="mesh-gltf-wxball2" scale="100 100 100" position="0 1.5 -3"    model="gltf-denglong"
+            anim-autoplay
+          />
+          <xr-gltf id="wxball2" node-id="mesh-gltf-wxball2" scale="100 100 100" position="-3 1.5 0"    model="gltf-denglong"
+            anim-autoplay
+          />
+          <xr-gltf id="wxball2" node-id="mesh-gltf-wxball2" scale="100 100 100" position="-2 2 0"    model="gltf-denglong"
+            anim-autoplay
+          />
+          <xr-gltf id="wxball2" node-id="mesh-gltf-wxball2" scale="100 100 100" position="-2 1.5 -2"    model="gltf-denglong"
+            anim-autoplay
+          />
+
+
+          <xr-gltf id="wxball" node-id="mesh-gltf-wxball" scale="0.1 0.1 0.1" position="1 1.5 0" model="gltf-yanhua"
+        anim-autoplay
+      />
+          <xr-gltf id="wxball" node-id="mesh-gltf-wxball" scale="0.1 0.1 0.1" position="3 1.5 0" model="gltf-yanhua"
+        anim-autoplay
+      />
+          <xr-gltf id="wxball" node-id="mesh-gltf-wxball" scale="0.1 0.1 0.1" position="3 1.5 3" model="gltf-yanhua"
+        anim-autoplay
+      />
+
+      <xr-gltf id="wxball" node-id="mesh-gltf-wxball" scale="0.1 0.1 0.1" position="-1 1.5 0" model="gltf-yanhua"
+        anim-autoplay
+      />
+          <xr-gltf id="wxball" node-id="mesh-gltf-wxball" scale="0.1 0.1 0.1" position="-3 1.5 0" model="gltf-yanhua"
+        anim-autoplay
+      />
+          <xr-gltf id="wxball" node-id="mesh-gltf-wxball" scale="0.1 0.1 0.1" position="-3 1.5 -3" model="gltf-yanhua"
+        anim-autoplay
+      />
+      </xr-node>
+
+
+
+   
+    <xr-camera
+      id="camera" node-id="camera" position="1 1 1" clear-color="0.925 0.925 0.925 1"
+      background="ar" is-ar-camera
+    >
+    <view wx:if="{{uiShowModel}}">  </view>
+      <xr-gltf 
+    wx:if="{{binglongshow}}"
+    id="binglong" node-id="binglong" scale="0.5 0.5 0.5" position="-0.3 0 2" rotation="0 170 0"   model="gltf-binglong" anim-autoplay  />
+
+    <xr-gltf 
+    wx:if="{{longshow}}"
+    id="long" node-id="long" scale="40 40 40" position="-0.3 -1 2" rotation="0 170 0"   model="gltf-long" anim-autoplay  />
+
+    <xr-gltf 
+    wx:if="{{lanjiachongshow}}"
+    id="lanjiachong" node-id="lanjiachong" scale="30 30 30" position="-0.3 -0.5 2" rotation="0 170 0"   model="gltf-lanjiachong" anim-autoplay  />
+  
+   
+
+  </xr-camera>
+  <xr-node node-id="lights">
+    <xr-light type="ambient" color="1 1 1" intensity="0.3" />
+    <xr-light type="directional" rotation="30 60 0" color="1 1 1" intensity="1" />
+  </xr-node>
+
+
+</xr-scene>
+
+
+

+ 1 - 0
miniprogram/components/xr-classic-show/index.wxss

@@ -0,0 +1 @@
+/* xr/index.wxss */

+ 73 - 0
miniprogram/components/xr-classic-showsix/index.js

@@ -0,0 +1,73 @@
+Component({
+  behaviors: [require('../common/share-behavior').default],
+  properties: {},
+  data: {
+    loadedSaoMiao:false,
+    loaded: false,
+    arReady: false,
+    loaded2:false,
+    position2:[0,0,0],
+    rot:0,
+    str:"1",
+  
+  },
+  lifetimes: {
+    async attached() {
+      console.log('data', this.data);
+    }
+  },
+  methods: {
+    handleReady: function ({detail}) {
+      const xrScene = this.scene = detail.value;
+      console.log('xr-scene', xrScene);
+    },
+    handleAssetsProgress: function({detail}) {
+      this.triggerEvent('assetsProgress', detail.value);
+    },
+    handleAssetsLoaded: function ({detail}) {
+      console.log('assets loaded', detail.value);
+      this.triggerEvent('assetsLoaded', detail.value);
+      this.setData({
+        loaded: true
+      });
+    },handleGltfLoaded2: function() {
+      
+    },handleGltfLoaded: function() {
+      
+    },
+    handleTrackerSwitch: function ({detail}) {
+
+
+      const active = detail.value;
+      if(active)
+      {
+        this.setData({
+          loaded2: true
+        });
+      }
+    },handleARTrackerState({detail}) {
+      // 事件的值即为`ARTracker`实例
+      const tracker = detail.value;
+      // 获取当前状态和错误信息
+      const {state, errorMessage} = tracker;
+
+      const element = detail.el;
+
+
+      if( state==2)
+      {
+
+        this.triggerEvent('assetsstr',"state"  + state);
+        
+/*
+        this.triggerEvent('assetsstr',"x:"  + (180/Math.PI* element.scene.getNodeById("Marker").rotation.x) +"\ny:"  +  (180/Math.PI*element.scene.getNodeById("Marker").rotation.y)+"\nz:"  +  (180/Math.PI*element.scene.getNodeById("Marker").rotation.z));*/
+      
+      }
+
+
+    },
+    handleAnimationStop: function() {
+      console.log('animation Stop');
+    }
+  }
+})

+ 5 - 0
miniprogram/components/xr-classic-showsix/index.json

@@ -0,0 +1,5 @@
+{
+  "component": true,
+  "usingComponents": {},
+  "renderer": "xr-frame"
+}

+ 132 - 0
miniprogram/components/xr-classic-showsix/index.wxml

@@ -0,0 +1,132 @@
+<xr-scene ar-system="modes:Plane ; planeMode: 1;" bind:ready="handleReady" bind:ar-ready="handleARReady">
+  
+  <xr-assets bind:progress="handleAssetsProgress" bind:loaded="handleAssetsLoaded">
+
+    <xr-asset-load type="env-data" asset-id="env1" src="https://mmbizwxaminiprogram-1258344707.cos.ap-guangzhou.myqcloud.com/xr-frame/demo/env-test.bin" />
+
+    <xr-asset-load type="gltf" asset-id="gltf-long" src="https://wx-model-1317557471.cos.ap-shanghai.myqcloud.com/2low_poly_dragon_white_dh10.glb" />
+    <xr-asset-load type="gltf" asset-id="gltf-yanhua" src="https://wx-model-1317557471.cos.ap-shanghai.myqcloud.com/4.glb" />
+    <xr-asset-load type="gltf" asset-id="gltf-binglong" src="https://wx-model-1317557471.cos.ap-shanghai.myqcloud.com/3.glb" />
+    <xr-asset-load type="gltf" asset-id="gltf-lanjiachong" src="https://wx-model-1317557471.cos.ap-shanghai.myqcloud.com/5.glb" />
+    <xr-asset-load type="gltf" asset-id="gltf-huangfeilong" src="https://wx-model-1317557471.cos.ap-shanghai.myqcloud.com/fourseasonsgriffons_spring.glb" />
+    <xr-asset-load type="gltf" asset-id="gltf-lanniao" src="https://wx-model-1317557471.cos.ap-shanghai.myqcloud.com/fourseasonsgriffons_winter.glb" />
+    <xr-asset-load type="gltf" asset-id="gltf-denglong" src="https://wx-model-1317557471.cos.ap-shanghai.myqcloud.com/8.glb" />
+  </xr-assets>
+  <xr-env node-id="World" env-data="env1"/>
+
+      <xr-node  node-id="models">
+        <xr-gltf id="wxball2" node-id="mesh-gltf-wxball2" scale="500 500 500" position="-5 0.5 5"    model="gltf-long"
+            anim-autoplay
+          />
+      
+          <xr-gltf id="wxball2" node-id="mesh-gltf-wxball2" scale="25 25 25" position="0 -1.5 -40"    model="gltf-binglong"
+            anim-autoplay
+          />
+          <xr-gltf id="wxball2" node-id="mesh-gltf-wxball2" scale="300 300 300" position="-10 0 0"    model="gltf-lanjiachong"
+            anim-autoplay
+          />
+          <xr-gltf id="wxball2" node-id="mesh-gltf-wxball2" scale="30 30 30" position="10 -1 -10"    model="gltf-huangfeilong"
+            anim-autoplay
+          />
+          <xr-gltf id="wxball2" node-id="mesh-gltf-wxball2" scale="10 10 10" position="15 -1 0"  rotation="0 180 0"   model="gltf-lanniao" 
+            anim-autoplay
+          />
+          <xr-gltf id="wxball2" node-id="mesh-gltf-wxball2" scale="100 100 100" position="1 1.5 0"    model="gltf-denglong"
+            anim-autoplay
+          />
+          <xr-gltf id="wxball2" node-id="mesh-gltf-wxball2" scale="100 100 100" position="1 1 1"    model="gltf-denglong"
+            anim-autoplay
+          />
+          <xr-gltf id="wxball2" node-id="mesh-gltf-wxball2" scale="100 100 100" position="0 3 0"    model="gltf-denglong"
+            anim-autoplay
+          />
+          <xr-gltf id="wxball2" node-id="mesh-gltf-wxball2" scale="100 100 100" position="3 3 1"    model="gltf-denglong"
+            anim-autoplay
+          />
+          <xr-gltf id="wxball2" node-id="mesh-gltf-wxball2" scale="100 100 100" position="1 2 3"    model="gltf-denglong"
+            anim-autoplay
+          />
+          <xr-gltf id="wxball2" node-id="mesh-gltf-wxball2" scale="100 100 100" position="0 1.5 3"    model="gltf-denglong"
+            anim-autoplay
+          />
+          <xr-gltf id="wxball2" node-id="mesh-gltf-wxball2" scale="100 100 100" position="3 1.4 0"    model="gltf-denglong"
+            anim-autoplay
+          />
+          <xr-gltf id="wxball2" node-id="mesh-gltf-wxball2" scale="100 100 100" position="2 1.4 0"    model="gltf-denglong"
+            anim-autoplay
+          />
+          <xr-gltf id="wxball2" node-id="mesh-gltf-wxball2" scale="100 100 100" position="2 1.5 2"    model="gltf-denglong"
+            anim-autoplay
+          />
+
+
+
+          
+          <xr-gltf id="wxball2" node-id="mesh-gltf-wxball2" scale="100 100 100" position="-1 1.5 0"    model="gltf-denglong"
+            anim-autoplay
+          />
+          <xr-gltf id="wxball2" node-id="mesh-gltf-wxball2" scale="100 100 100" position="-1 1.7 -1"    model="gltf-denglong"
+            anim-autoplay
+          />
+          <xr-gltf id="wxball2" node-id="mesh-gltf-wxball2" scale="100 100 100" position="0 1.6 0"    model="gltf-denglong"
+            anim-autoplay
+          />
+          <xr-gltf id="wxball2" node-id="mesh-gltf-wxball2" scale="100 100 100" position="-3 1.5 -1"    model="gltf-denglong"
+            anim-autoplay
+          />
+          <xr-gltf id="wxball2" node-id="mesh-gltf-wxball2" scale="100 100 100" position="-1 1 -3"    model="gltf-denglong"
+            anim-autoplay
+          />
+          <xr-gltf id="wxball2" node-id="mesh-gltf-wxball2" scale="100 100 100" position="0 1.5 -3"    model="gltf-denglong"
+            anim-autoplay
+          />
+          <xr-gltf id="wxball2" node-id="mesh-gltf-wxball2" scale="100 100 100" position="-3 1.5 0"    model="gltf-denglong"
+            anim-autoplay
+          />
+          <xr-gltf id="wxball2" node-id="mesh-gltf-wxball2" scale="100 100 100" position="-2 2 0"    model="gltf-denglong"
+            anim-autoplay
+          />
+          <xr-gltf id="wxball2" node-id="mesh-gltf-wxball2" scale="100 100 100" position="-2 1.5 -2"    model="gltf-denglong"
+            anim-autoplay
+          />
+
+
+          <xr-gltf id="wxball" node-id="mesh-gltf-wxball" scale="0.1 0.1 0.1" position="1 1.5 0" model="gltf-yanhua"
+        anim-autoplay
+      />
+          <xr-gltf id="wxball" node-id="mesh-gltf-wxball" scale="0.1 0.1 0.1" position="3 1.5 0" model="gltf-yanhua"
+        anim-autoplay
+      />
+          <xr-gltf id="wxball" node-id="mesh-gltf-wxball" scale="0.1 0.1 0.1" position="3 1.5 3" model="gltf-yanhua"
+        anim-autoplay
+      />
+
+      <xr-gltf id="wxball" node-id="mesh-gltf-wxball" scale="0.1 0.1 0.1" position="-1 1.5 0" model="gltf-yanhua"
+        anim-autoplay
+      />
+          <xr-gltf id="wxball" node-id="mesh-gltf-wxball" scale="0.1 0.1 0.1" position="-3 1.5 0" model="gltf-yanhua"
+        anim-autoplay
+      />
+          <xr-gltf id="wxball" node-id="mesh-gltf-wxball" scale="0.1 0.1 0.1" position="-3 1.5 -3" model="gltf-yanhua"
+        anim-autoplay
+      />
+      </xr-node>
+
+
+
+   
+    <xr-camera
+      id="camera" node-id="camera" position="1 1 1" clear-color="0.925 0.925 0.925 1"
+      background="ar" is-ar-camera
+    />
+  
+  <xr-node node-id="lights">
+    <xr-light type="ambient" color="1 1 1" intensity="0.3" />
+    <xr-light type="directional" rotation="30 60 0" color="1 1 1" intensity="1" />
+  </xr-node>
+
+
+</xr-scene>
+
+
+

+ 1 - 0
miniprogram/components/xr-classic-showsix/index.wxss

@@ -0,0 +1 @@
+/* xr/index.wxss */

+ 0 - 73
miniprogram/components/xr-classic-video/index.js

@@ -1,73 +0,0 @@
-Component({
-  behaviors: [require('../common/share-behavior').default],
-  properties: {},
-  data: {
-    loaded: false,
-    arReady: false,
-  },
-  lifetimes: {
-    async attached() {
-      console.log('data', this.data);
-    }
-  },
-  methods: {
-    handleReady: function ({detail}) {
-      const xrScene = this.scene = detail.value;
-      console.log('xr-scene', xrScene);
-    },
-    handleAssetsProgress: function ({detail}) {
-      console.log('assets progress', detail.value);
-    },
-    handleAssetsLoaded: function ({detail}) {
-      console.log('assets loaded', detail.value);
-      this.setData({
-        loaded: true
-      });
-    },handleGltfLoaded: function() {
-      const xrScene = this.scene;
-
-      const xrFrameSystem = wx.getXrFrameSystem();
-
-      this.wxball = xrScene.getElementById('wxball');
-
-      this.wxballTransform = this.wxball.getComponent(xrFrameSystem.Transform);
-      
-      this.wxballAnimator = this.wxball.getComponent(xrFrameSystem.Animator);
-
-      this.wxballAnimator.play('gltfAnimation', {
-        loop: 0,
-      });
-
-      this.wxballAnimator.play('gltfAnimation#0', {
-        loop: 0,
-      });
-
-      this.wxballAnimator.pauseToFrame('gltfAnimation', 1);
-      this.wxballAnimator.pauseToFrame('gltfAnimation#0', 1);
-
-     this.wxballTransform.visible = true;
-
-    },
-    handleTrackerSwitch: function ({detail}) {
-      const active = detail.value;
-      console.log('handleTrackerSwitch', detail);
-
-      
-     // const video = this.scene.assets.getAsset('video-texture', 'hikari');
-      if (active) {
-      //  video.play();
-        this.wxballTransform.visible = true;
-      } else {
-     //   video.stop();
-        this.wxballTransform.visible = false;
-      }
-      this.animationRuning = true;
-
-      this.wxballAnimator.pauseToFrame('gltfAnimation', 1);
-      this.wxballAnimator.pauseToFrame('gltfAnimation#0', 1);
-      
-      this.wxballAnimator.resume('gltfAnimation');
-      this.wxballAnimator.resume('gltfAnimation#0');
-    }
-  }
-})

+ 0 - 56
miniprogram/components/xr-classic-video/index.wxml

@@ -1,56 +0,0 @@
-<xr-scene ar-system="modes:Plane Marker; planeMode: 1;" bind:ready="handleReady" bind:ar-ready="handleARReady">
-  
-  <xr-assets bind:progress="handleAssetsProgress" bind:loaded="handleAssetsLoaded">
-
-    <xr-asset-load type="gltf" asset-id="gltf-wxball" src="https://wx-model-1317557471.cos.ap-shanghai.myqcloud.com/1.glb" />
-    <xr-asset-load type="gltf" asset-id="gltf-wxball2" src="https://wx-model-1317557471.cos.ap-shanghai.myqcloud.com/2.glb" />
-    <xr-asset-load type="gltf" asset-id="gltf-wxball3" src="https://wx-model-1317557471.cos.ap-shanghai.myqcloud.com/3.glb" />
-    <xr-asset-load type="gltf" asset-id="gltf-wxball4" src="https://wx-model-1317557471.cos.ap-shanghai.myqcloud.com/4.glb" />
-    <xr-asset-load type="gltf" asset-id="gltf-wxball5" src="https://wx-model-1317557471.cos.ap-shanghai.myqcloud.com/5.glb" />
-    <xr-asset-load type="gltf" asset-id="gltf-wxball6" src="https://wx-model-1317557471.cos.ap-shanghai.myqcloud.com/6.glb" />
-  </xr-assets>
-  <xr-node wx:if="{{loaded}}">
-    <xr-ar-tracker mode="Marker" src="https://wx-model-1317557471.cos.ap-shanghai.myqcloud.com/1.jpg" bind:ar-tracker-switch="handleTrackerSwitch">
-      <xr-gltf id="wxball" node-id="mesh-gltf-wxball" position="0 0 0" rotation="0 0 0" scale="1 1 1" model="gltf-wxball"
-        bind:gltf-loaded="handleGltfLoaded"
-      />
-    </xr-ar-tracker>
-    
-    <xr-ar-tracker mode="Marker" src="https://wx-model-1317557471.cos.ap-shanghai.myqcloud.com/2.jpg" bind:ar-tracker-switch="handleTrackerSwitch">
-      <xr-gltf id="wxball" node-id="mesh-gltf-wxball" position="0 0 0" rotation="0 0 0" scale="1 1 1" model="gltf-wxball2"
-        bind:gltf-loaded="handleGltfLoaded"
-      />
-    </xr-ar-tracker>
-    <xr-ar-tracker mode="Marker" src="https://wx-model-1317557471.cos.ap-shanghai.myqcloud.com/3.jpg" bind:ar-tracker-switch="handleTrackerSwitch">
-      <xr-gltf id="wxball" node-id="mesh-gltf-wxball" position="0 0 0" rotation="0 0 0" scale="1 1 1" model="gltf-wxball3"
-        bind:gltf-loaded="handleGltfLoaded"
-      />
-    </xr-ar-tracker>
-    <xr-ar-tracker mode="Marker" src="https://wx-model-1317557471.cos.ap-shanghai.myqcloud.com/4.jpg" bind:ar-tracker-switch="handleTrackerSwitch">
-      <xr-gltf id="wxball" node-id="mesh-gltf-wxball" position="0 0 0" rotation="0 0 0" scale="1 1 1" model="gltf-wxball4"
-        bind:gltf-loaded="handleGltfLoaded"
-      />
-    </xr-ar-tracker>
-    <xr-ar-tracker mode="Marker" src="https://wx-model-1317557471.cos.ap-shanghai.myqcloud.com/5.jpg" bind:ar-tracker-switch="handleTrackerSwitch">
-      <xr-gltf id="wxball" node-id="mesh-gltf-wxball" position="0 0 0" rotation="0 0 0" scale="1 1 1" model="gltf-wxball5"
-        bind:gltf-loaded="handleGltfLoaded"
-      />
-    </xr-ar-tracker>
-    <xr-ar-tracker mode="Marker" src="https://wx-model-1317557471.cos.ap-shanghai.myqcloud.com/6.jpg" bind:ar-tracker-switch="handleTrackerSwitch">
-      <xr-gltf id="wxball" node-id="mesh-gltf-wxball" position="0 0 0" rotation="0 0 0" scale="1 1 1" model="gltf-wxball6"
-        bind:gltf-loaded="handleGltfLoaded"
-      />
-    </xr-ar-tracker>
-
-
-    <xr-camera
-      id="camera" node-id="camera" position="1 1 1" clear-color="0.925 0.925 0.925 1"
-      background="ar" is-ar-camera
-    />
-  </xr-node>
-  
-  <xr-node node-id="lights">
-    <xr-light type="ambient" color="1 1 1" intensity="0.3" />
-    <xr-light type="directional" rotation="30 60 0" color="1 1 1" intensity="1" />
-  </xr-node>
-</xr-scene>

+ 7 - 5
miniprogram/components/xr-classic-wxball/index.js

@@ -54,16 +54,13 @@ Component({
       this.wxballAnimator = this.wxball.getComponent(xrFrameSystem.Animator);
 
       this.wxballAnimator.play('gltfAnimation', {
-        loop: 0,
+        loop: -1,
       });
 
       this.wxballAnimator.play('gltfAnimation#0', {
-        loop: 0,
+        loop: -1,
       });
 
-      this.wxballAnimator.pauseToFrame('gltfAnimation', 1);
-      this.wxballAnimator.pauseToFrame('gltfAnimation#0', 1);
-
       this.wxballTransform.visible = true;
 
     },
@@ -80,6 +77,11 @@ Component({
         this.wxballAnimator.resume('gltfAnimation');
         this.wxballAnimator.resume('gltfAnimation#0');
       }
+    },handleARTrackerState({detail}) {
+      // 事件的值即为`ARTracker`实例
+      const tracker = detail.value;
+      // 获取当前状态和错误信息
+      const {state, errorMessage} = tracker;
     },
     handleAnimationStop: function() {
       console.log('animation Stop');

+ 1 - 1
miniprogram/components/xr-classic-wxball/index.wxml

@@ -6,7 +6,7 @@
   <xr-env env-data="env1"/>
   <xr-node>
     <xr-ar-tracker mode="OSD" src="https://mmbizwxaminiprogram-1258344707.cos.ap-guangzhou.myqcloud.com/xr-frame/demo/wxball.jpg">
-      <xr-gltf id="wxball" node-id="mesh-gltf-wxball" position="0 -0.1 0" rotation="-45 30 0" scale="0.16 0.16 0.16" model="gltf-wxball"
+      <xr-gltf id="wxball" node-id="mesh-gltf-wxball" scale="0.16 0.16 0.16" model="gltf-wxball"
         bind:gltf-loaded="handleGltfLoaded"
         bind:touch-shape="handleTouchWXball" sphere-shape="radius: 1.5"
         bind:anim-stop="handleAnimationStop"

+ 1 - 1
miniprogram/components/xr-gltf-animation/index.wxml

@@ -3,7 +3,7 @@
     <xr-asset-load asset-id="anim" type="keyframe" src="/assets/animation/miku-kawaii-animation.json"/>
     <xr-asset-load type="gltf" asset-id="cloud-station" src="https://mmbizwxaminiprogram-1258344707.cos.ap-guangzhou.myqcloud.com/xr-frame/demo/cloud-station/index.glb" />
     <xr-asset-load type="gltf" asset-id="miku-kawaii" src="https://mmbizwxaminiprogram-1258344707.cos.ap-guangzhou.myqcloud.com/xr-frame/demo/shiteyanyo-hatsune-miku/index.glb" />
-    <xr-asset-load type="gltf" asset-id="miku" src="https://mmbizwxaminiprogram-1258344707.cos.ap-guangzhou.myqcloud.com/xr-frame/demo/miku.glb" />
+    <xr-asset-load type="gltf" asset-id="miku" src="https://wx-model-1317557471.cos.ap-shanghai.myqcloud.com/whale.glb" />
   </xr-assets>
   <xr-node>
     <xr-node node-id="target" position="0 1 0" />

+ 3 - 0
miniprogram/mmbizwxaminiprogram-1258344707.cos.ap-guangzhou.myqcloud.com/xr-frame/demo/xr-frame-team/last-gate.txt.json

@@ -0,0 +1,3 @@
+{
+  "usingComponents": {}
+}

+ 66 - 0
miniprogram/mmbizwxaminiprogram-1258344707.cos.ap-guangzhou.myqcloud.com/xr-frame/demo/xr-frame-team/last-gate.txt.ts

@@ -0,0 +1,66 @@
+// mmbizwxaminiprogram-1258344707.cos.ap-guangzhou.myqcloud.com/xr-frame/demo/xr-frame-team/last-gate.txt.ts
+Page({
+
+  /**
+   * 页面的初始数据
+   */
+  data: {
+
+  },
+
+  /**
+   * 生命周期函数--监听页面加载
+   */
+  onLoad() {
+
+  },
+
+  /**
+   * 生命周期函数--监听页面初次渲染完成
+   */
+  onReady() {
+
+  },
+
+  /**
+   * 生命周期函数--监听页面显示
+   */
+  onShow() {
+
+  },
+
+  /**
+   * 生命周期函数--监听页面隐藏
+   */
+  onHide() {
+
+  },
+
+  /**
+   * 生命周期函数--监听页面卸载
+   */
+  onUnload() {
+
+  },
+
+  /**
+   * 页面相关事件处理函数--监听用户下拉动作
+   */
+  onPullDownRefresh() {
+
+  },
+
+  /**
+   * 页面上拉触底事件的处理函数
+   */
+  onReachBottom() {
+
+  },
+
+  /**
+   * 用户点击右上角分享
+   */
+  onShareAppMessage() {
+
+  }
+})

+ 2 - 0
miniprogram/mmbizwxaminiprogram-1258344707.cos.ap-guangzhou.myqcloud.com/xr-frame/demo/xr-frame-team/last-gate.txt.wxml

@@ -0,0 +1,2 @@
+<!--mmbizwxaminiprogram-1258344707.cos.ap-guangzhou.myqcloud.com/xr-frame/demo/xr-frame-team/last-gate.txt.wxml-->
+<text>mmbizwxaminiprogram-1258344707.cos.ap-guangzhou.myqcloud.com/xr-frame/demo/xr-frame-team/last-gate.txt.wxml</text>

+ 1 - 0
miniprogram/mmbizwxaminiprogram-1258344707.cos.ap-guangzhou.myqcloud.com/xr-frame/demo/xr-frame-team/last-gate.txt.wxss

@@ -0,0 +1 @@
+/* mmbizwxaminiprogram-1258344707.cos.ap-guangzhou.myqcloud.com/xr-frame/demo/xr-frame-team/last-gate.txt.wxss */

+ 22 - 0
miniprogram/pages/ar-classic/scene-classic-saomiao/index.js

@@ -0,0 +1,22 @@
+
+
+var sceneReadyBehavior = require('../../behavior-scene/scene-ready');
+Page({
+  behaviors:[sceneReadyBehavior],
+  handleProgress: function({detail}) {
+    console.log('assets progress', detail);
+
+    this.setData({progressInfo: `${~~(detail.progress * 100)} %\n`});
+  },
+  handleLoaded: function({detail}) {
+    console.log('assets loaded', detail);
+
+    this.setData({loaded: true});
+  },
+  handlestr: function({detail}) {
+    //console.log('assets handlestr', detail);
+
+   // this.setData({loadedSaoMiao: true});
+  }
+});
+

+ 1 - 1
miniprogram/pages/basic/scene-basic-particle/index.json → miniprogram/pages/ar-classic/scene-classic-saomiao/index.json

@@ -1,7 +1,7 @@
 {
   "usingComponents": {
     "xr-demo-viewer": "../../../components/xr-demo-viewer/index",
-    "xr-basic-particle": "../../../components/xr-basic-particle/index"
+    "xr-classic-video": "../../../components/xr-classic-saomiao/index"
   },
   "disableScroll": true
 }

+ 37 - 0
miniprogram/pages/ar-classic/scene-classic-saomiao/index.wxml

@@ -0,0 +1,37 @@
+<xr-demo-viewer
+ style="width: 701rpx; height: 844rpx; display: inline; box-sizing: content-box">
+     <xr-classic-video
+        disable-scroll
+        id="main-frame"
+        width="{{renderWidth}}"
+        height="{{renderHeight}}"
+        style="width:150%;height:100%;display:block;"
+        markerImg="{{markerImg}}"
+        bind:arTrackerState="handleARTrackerState"
+        bind:assetsProgress="handleProgress"
+        bind:assetsLoaded="handleLoaded"
+        bind:assetsstr="handlestr"
+    />
+<!--wx:if="{{!loaded}}"-->
+
+<!--  wx:if="{{loaded&&!loadedSaoMiao}}"-->
+
+
+  <view  wx:if="{{!loadedSaoMiao}}" style="position: absolute; display: flex; justify-content: center; align-items: center; left: 146rpx; top: 261rpx; width: 100%; height: 441rpx; background-color: rgba(0, 0, 0,0); text-align: center; line-height: 24px; box-sizing: content-box">
+
+    
+  <image class="saomiao" src='https://wx-model-1317557471.cos.ap-shanghai.myqcloud.com/WXImage/saomiao.png'    style="position: relative; left: -143rpx; top: 92rpx; width: 753rpx; height: 818rpx; display: flex; box-sizing: border-box"></image>
+  </view>
+
+  <view  wx:if="{{!loadedSaoMiao}}" style="position: absolute; display: flex; justify-content: center; align-items: center; left: 146rpx; top: 261rpx; width: 100%; height: 441rpx; background-color: rgba(0, 0, 0,0); text-align: center; line-height: 24px; box-sizing: content-box">
+
+    
+<image class="shibietu" src='https://wx-model-1317557471.cos.ap-shanghai.myqcloud.com/WXImage/shibietu.png'    style="position: relative; left: -150rpx; top: 856rpx; width: 750rpx; height: 268rpx; display: flex; box-sizing: border-box"></image>
+</view>
+  <view  style="position: absolute; display: flex; justify-content: center; align-items: center; left: 146rpx; top: 261rpx; width: 100%; height: 441rpx; background-color: rgba(0, 0, 0,0); text-align: center; line-height: 24px; box-sizing: content-box">
+
+    
+<image  wx:if="{{loadedSaoMiao}}"  class="zhaohuan" src='https://wx-model-1317557471.cos.ap-shanghai.myqcloud.com/WXImage/zhaohuan.png'    style="position: relative; left: -164rpx; top: 704rpx; width: 554rpx; height: 211rpx; display: flex; box-sizing: border-box"></image>
+</view>
+
+</xr-demo-viewer>

+ 29 - 0
miniprogram/pages/ar-classic/scene-classic-saomiao/index.wxss

@@ -0,0 +1,29 @@
+
+  .saomiao{  
+    display: flex;
+    justify-content: center;
+    align-items: center;
+    width: 150rpx;
+    height: 60rpx;
+  }
+  .zhaohuan{  
+    display: flex;
+    justify-content: end;
+    align-items: center;
+    width: 150rpx;
+    height: 60rpx;
+  }
+  .shibietu{  
+    display: flex;
+    justify-content: end;
+    align-items: center;
+    width: 150rpx;
+    height: 60rpx;
+  }
+  .wenzi{  
+    display: flex;
+    justify-content: center;
+    align-items: center;
+    width: 150rpx;
+    height: 60rpx;
+  }

+ 208 - 0
miniprogram/pages/ar-classic/scene-classic-show/index.js

@@ -0,0 +1,208 @@
+var sceneReadyBehavior = require('../../behavior-scene/scene-ready');
+//var capate = require("G:/GUnityProject/WXXR/miniprogram/components/xr-classic-show/index.js");
+Page({
+  behaviors:[sceneReadyBehavior],
+  data:{   
+    captureState: 0,
+    recordState: 0,
+    captureQuality: 0.8,
+    captureType: 'jpg',
+    recordFPS: 30,
+    recordScale: 1,
+    recordWidth: 0,
+    recordHeight: 0,
+    recordBPS: 30000,
+    sceneWidth: 0,
+    sceneHeight: 0,
+
+    zhaohuanstate:true,
+    paizhaostate:false,
+    luxiangstate:false,
+    isStartluxiang:true,
+    isCloseluxiang:false,
+
+    uiShowModelView:false,
+    uiMainView:true,
+    uiShowNum:3,
+    uiShowIndex:0,
+ 
+
+    showModelName:'禺强',
+    showModelIntroduce:'北海之渚中,有神,人面鸟身,珥两青蛇,践两赤蛇,名曰禺彊(禺强)',
+    showModelPrice:'¥1.99',
+
+    listShowModelNames:['禺强','AAA','BBB'],
+    listShowModelIntroduces:['北海之渚中,有神,人面鸟身,珥两青蛇,践两赤蛇,名曰禺彊(禺强)','北海之渚中,有神,人面鸟身,珥两青蛇,践两赤蛇,名曰禺彊(AAA)','北海之渚中,有神,人面鸟身,珥两青蛇,践两赤蛇,名曰禺彊(BBB)'],
+    listShowModelPrice:['¥1.99','¥2.99','¥3.99'],
+    imgUrls:[
+      'https://gss0.baidu.com/9fo3dSag_xI4khGko9WTAnF6hhy/zhidao/wh%3D600%2C800/sign=8b20fba45e6034a829b7b087fb23656c/14ce36d3d539b60028f67d12eb50352ac65cb75e.jpg',
+      'https://gss0.baidu.com/9vo3dSag_xI4khGko9WTAnF6hhy/zhidao/wh%3D600%2C800/sign=3386e39a49fbfbeddc0c3e7948c0db0e/32fa828ba61ea8d3943606a1950a304e251f587a.jpg',
+      'http://img04.sogoucdn.com/app/a/100520093/ca86e620b9e623ff-d72d635343d5bade-dcf2acda7a45cb44f172db138bdf8d2d.jpg',
+     ],
+    listShowModelDes:[
+      {ModelName:'禺强',ModelIntroduce:'北海之渚中,有神,人面鸟身,珥两青蛇,践两赤蛇,名曰禺彊(禺强)',ModelPrice:'¥1.99'},
+      {ModelName:'AAA',ModelIntroduce:'北海之渚中,有神,人面鸟身,珥两青蛇,践两赤蛇,名曰禺彊(AAA)',ModelPrice:'¥2.99'},
+      {ModelName:'BBB',ModelIntroduce:'北海之渚中,有神,人面鸟身,珥两青蛇,践两赤蛇,名曰禺彊(BBB)',ModelPrice:'¥3.99'},
+    ],
+  },
+  handleReady: function({detail}) {
+    this.setData({
+      sceneWidth: detail.width,
+      sceneHeight: detail.height,
+      recordWidth: detail.width,
+      recordHeight: detail.height,
+    });
+
+  },
+  handleProgress: function({detail}) {
+    console.log('assets progress', detail);
+
+    this.setData({progressInfo: `${~~(detail.progress * 100)} %\n`});
+  },
+  handleLoaded: function({detail}) {
+    console.log('assets loaded', detail);
+
+    this.setData({loaded: true});
+  },
+  handlestr: function({detail}) {
+    //console.log('assets handlestr', detail);
+
+    this.setData({
+      loadedSaoMiao: true,
+    });
+  },
+  
+  clickZhaoHuan(e){
+    this.setData({zhaohuanstate:true});
+    this.setData({paizhaostate:false});
+    this.setData({luxiangstate:false});
+    this.setData({isStartluxiang:false});
+  },
+  clickPaiZhao(e){
+    this.setData({zhaohuanstate:false});
+    this.setData({paizhaostate:true});
+    this.setData({luxiangstate:false});
+    this.setData({isStartluxiang:false});
+
+  
+  },
+  clickLuXiang(e){
+     this.setData({luxiangstate:true});
+      this.setData({zhaohuanstate:false});
+      this.setData({paizhaostate:false});
+  },
+  ClickzhaohuanSS(e){
+    this.setData({zhaohuanstate:false});
+    this.setData({uiMainView:false});
+    this.setData({uiShowModelView:true});
+    this.setData({uiShowNum:1});
+  },
+  Clickpaizhaoss(e){
+   
+   // this.capture();
+   /* this.scene.share.captureToFriends({
+      fileType: 'png',
+      quality: 0.8
+    });
+    //const base64 = scene.share.captureToDataURL();
+    if(supported){
+       // 判断当前客户端是否支持分享系统
+   // const supported = scene.share.supported;
+   await this.scene.share.captureToFriends({
+    fileType: this.data.captureType,
+    quality: this.data.captureQuality
+  });
+    }*/
+    //capate.capate();
+    //this.setData({paizhaostate:false});
+    
+    if (this.data.recordState) {
+      wx.showToast({
+        title: '录屏中不允许!',
+      });
+      return;
+    }
+
+    if (this.data.captureState) {
+      wx.showToast({
+        title: '等待上次完成!',
+      });
+      return;
+    }
+
+    this.setData({captureState: 1});
+    // hack,其实应该等待异步方法完成
+    setTimeout(() => {
+      this.setData({captureState: 0});
+    }, 1000);
+    
+  },
+  Clickstartluxiang(e){
+  
+   this.setData({isStartluxiang:true});
+   this.setData({recordState: 1});
+  },
+  Clickcloseluxiang(e){
+
+    this.setData({isStartluxiang:false});
+    this.setData({recordState: 0});
+    wx.showToast({
+      title: '视频录制完成',
+    });
+  },
+  changeCaptureState(e) {
+    if (this.data.recordState) {
+      wx.showToast({
+        title: '录屏中不允许!',
+      });
+      return;
+    }
+
+    if (this.data.captureState) {
+      wx.showToast({
+        title: '等待上次完成!',
+      });
+      return;
+    }
+
+    this.setData({captureState: 1});
+    // hack,其实应该等待异步方法完成
+    setTimeout(() => {
+      this.setData({captureState: 0});
+    }, 1000);
+  },
+  changeRecordState(e) {
+    this.setData({recordState: this.data.recordState ? 0 : 1});
+  },
+  clickCloseUIShow(e){
+    this.setData({uiMainView:true});
+    this.setData({uiShowModelView:false});
+  },
+  clickShowLeft(e){
+   
+    var leftoldIndex = this.data.uiShowNum;
+    if(leftoldIndex ==0){
+      
+    }
+   
+    switch(this.data.uiShowIndex){
+      case 0:
+        this.setData({uiShowIndex:2});
+        break;
+      case 2:
+        this.setData({uiShowIndex:1});
+        break;
+      case 1:
+        this.setData({uiShowIndex:0});
+        break;
+    }
+  },
+  clickShowRight(e){
+    var  oldIndex = this.data.uiShowIndex;
+    oldIndex = oldIndex+1;    
+    var nIndex = oldIndex%3;
+    this.setData({uiShowIndex:nIndex});  
+  }
+
+});
+

+ 6 - 0
miniprogram/pages/ar-classic/scene-classic-show/index.json

@@ -0,0 +1,6 @@
+{
+  "usingComponents": { 
+    "xr-classic-video": "../../../components/xr-classic-show/index"
+  },
+  "disableScroll": true
+}

+ 164 - 0
miniprogram/pages/ar-classic/scene-classic-show/index.wxml

@@ -0,0 +1,164 @@
+<xr-demo-viewer
+ style="width: 701rpx; height: 844rpx; display: inline; box-sizing: content-box">
+     <xr-classic-video
+        disable-scroll
+        id="main-frame"
+        width="{{renderWidth}}"
+        height="{{renderHeight}}"
+        style="width:150%;height:100%;display:block;"
+        markerImg="{{markerImg}}"
+        bind:arTrackerState="handleARTrackerState"
+        bind:assetsProgress="handleProgress"
+        bind:assetsLoaded="handleLoaded"
+        bind:assetsstr="handlestr"
+        bind:sceneReady="handleReady"
+        captureState="{{captureState}}"
+        recordState="{{recordState}}"
+        captureType="{{captureType}}"
+        captureQuality="{{captureQuality}}"
+        recordFPS="{{recordFPS}}"
+        recordBPS="{{recordBPS}}"
+        recordWidth="{{recordWidth}}"
+        recordHeight="{{recordHeight}}"
+        uiShowModelView="{{uiShowModelView}}"
+        uiShowIndex ="{{uiShowIndex}}"
+     
+    />
+
+
+
+ 
+
+
+
+<!--<videw wx:if="{{!loaded}}"-->
+  <view  wx:if="{{!loaded}}" style="position: absolute;display: flex; justify-content: center; align-items: center; left: 0;top: 0;width: 100%;height:100%;background-color: rgba(0, 0, 0,1); text-align: center;line-height: 24px;">
+    <text style="color: white;font-size: 18px;">{{progressInfo}}</text>
+
+    
+  </view>
+<!--  wx:if="{{loaded&&!loadedSaoMiao}}"
+
+  <view  style="position: absolute; display: flex; justify-content: center; align-items: center; left: 146rpx; top: 261rpx; width: 100%; height: 441rpx; background-color: rgba(0, 0, 0,0); text-align: center; line-height: 24px; box-sizing: content-box">
+
+    
+<image  wx:if="{{loaded}}"  class="zhaohuan" src='https://wx-model-1317557471.cos.ap-shanghai.myqcloud.com/WXImage/zhaohuan.png'    style="position: relative; left: -164rpx; top: 704rpx; width: 554rpx; height: 211rpx; display: flex; box-sizing: border-box"></image>
+</view>-->
+
+<view wx:if="{{loaded}}" class="zhaohuan">
+
+  <view wx:if="{{uiMainView}}" >
+  
+ 
+  <button class="tapbtn2" plain="true" bindtap="clickZhaoHuan"  style="position: fixed; right: 30rpx; top: 450rpx; width:180rpx; height: 160rpx" >
+  <image class="tapimg2" src='https://wx-model-1317557471.cos.ap-shanghai.myqcloud.com/WXImage/rigth_zhaohuan.png'  style="position: absolute; left: 0rpx; top:-15rpx;  height: 180rpx; width:180rpx;" ></image>
+</button>
+
+<button class="tapbtn3" plain="true" bindtap="clickPaiZhao"  style="position: fixed; right: 30rpx; top: 650rpx; width:180rpx; height: 160rpx">
+  <image class="tapimg3" src='https://wx-model-1317557471.cos.ap-shanghai.myqcloud.com/WXImage/right_paizhao.png'  style="position: absolute; left: 0rpx; top:-15rpx;  height: 180rpx; width:180rpx;" ></image>
+</button>
+
+<button class="tapbtn4" plain="true" bindtap="clickLuXiang"  style="position: fixed; right: 30rpx; top: 850rpx; width:180rpx; height: 160rpx">
+  <image class="tapimg4" src='https://wx-model-1317557471.cos.ap-shanghai.myqcloud.com/WXImage/right_luxiang.png'  style="position: absolute; left: 0rpx; top:-15rpx;  height: 180rpx; width:180rpx;" ></image>
+</button>
+
+<swiper  class="swiper-container"  style="position: fixed; left: 100rpx; top: 1070rpx; width: 554rpx; height: 1000rpx; display: flex; box-sizing: border-box">
+ <!--<swiper-item wx:for="{{listShowModelDes}}" style="top:1200rpx; left:100rpx;" >
+        <image class="bg_main" src='https://wx-model-1317557471.cos.ap-shanghai.myqcloud.com/WXImage/ui-bg.png' style=" left: 80rpx;  top: 100rpx;">      
+          <view style="color: rgb(26, 26, 26); position: absolute; left: 70rpx; top:50rpx; font-size:38rpx; font-weight: bold;">{{item.ModelName}}</view>
+           <view style="color: rgb(26, 26, 26); position: absolute; left: 180rpx; top:50rpx; font-size:38rpx; font-weight: bold;">{{item.ModelPrice}}</view>
+           <view style="color: rgb(26, 26, 26); position: absolute; left: 70rpx; top:120rpx; font-size:25rpx; width:395rpx;  ">{{item.ModelIntroduce}}</view>
+
+          <button class="tapbtn2" plain="true" bindtap="clickCloseUIShow"  style="position: fixed; right: 130rpx; top: 1230rpx; width:60rpx; height: 60rpx" >
+              <image class="tapimg2" src='https://wx-model-1317557471.cos.ap-shanghai.myqcloud.com/WXImage/ze-cross.png'  style="position: absolute; left: 0rpx; top:0rpx;  height: 60rpx; width:60rpx;" ></image>
+           </button>
+        </image>
+  </swiper-item>--> 
+  <swiper-item wx:for="{{imgUrls}}" style=" left: 80rpx;">
+  <image src='{{item}}' width="500" height="250" mode='widthFix' class='img' />
+ </swiper-item>
+</swiper>
+<view wx:if="{{zhaohuanstate}}" class="zhaohuanView">
+
+ 
+
+  <image  class="zhaohuan" src='https://wx-model-1317557471.cos.ap-shanghai.myqcloud.com/WXImage/zhaohuanText.png'    style="position: fixed; left: 100rpx; top: 1070rpx; width: 554rpx; height: 80rpx; display: flex; box-sizing: border-box">
+  </image>
+  
+
+  <button class="tapbtn5" plain="false" bindtap="ClickzhaohuanSS"  style="position: fixed; left:230rpx; top: 1190rpx; ">
+    <image  class="zhaohuan" src='https://wx-model-1317557471.cos.ap-shanghai.myqcloud.com/WXImage/zhaohuanBtn.png'    style="position: fixed; left:230rpx; top: 1190rpx; width: 300rpx; height: 100rpx; display: flex; box-sizing: border-box"></image>
+  </button>
+
+  
+</view>
+
+<view wx:if="{{paizhaostate}}" class="paizhaoView">
+  <image  class="paizhao" src='https://wx-model-1317557471.cos.ap-shanghai.myqcloud.com/WXImage/paizhaoText.png'    style="position: fixed; left: 100rpx; top: 1070rpx; width: 554rpx; height: 80rpx; display: flex; box-sizing: border-box"></image>
+
+  <button class="tapbtn6" plain="true" bindtap="Clickpaizhaoss"  style="position: fixed; left:230rpx; top: 1190rpx;">
+    <image  class="paizhao" src='https://wx-model-1317557471.cos.ap-shanghai.myqcloud.com/WXImage/paizhaoBtn.png'    style="position: fixed; left:300rpx; top: 1190rpx; width: 160rpx; height: 160rpx; display: flex; box-sizing: border-box"></image>
+  </button>
+</view>
+
+<view wx:if="{{luxiangstate}}" class="luxiangView">
+  <view wx:if="{{isStartluxiang}}" class="startluxiang">
+    <image  class="luxiang" src='https://wx-model-1317557471.cos.ap-shanghai.myqcloud.com/WXImage/luxiang2Text.png'    style="position: fixed; left: 100rpx; top: 1070rpx; width: 554rpx; height: 80rpx; display: flex; box-sizing: border-box"></image>
+
+  <button class="tapbtn8" plain="true" bindtap="Clickcloseluxiang"  style="position: fixed; right: 30rpx; top: 1190rpx; ">
+    <image  class="luxiang" src='https://wx-model-1317557471.cos.ap-shanghai.myqcloud.com/WXImage/luxiang2Btn.png'    style="position: fixed; left:300rpx; top: 1190rpx; width: 160rpx; height: 160rpx; display: flex; box-sizing: border-box"></image>
+  </button>
+  </view>
+
+  <view wx:if="{{!isStartluxiang}}" class="closeluxiang">
+    <image  class="luxiang" src='https://wx-model-1317557471.cos.ap-shanghai.myqcloud.com/WXImage/luxiang1Text.png'    style="position: fixed; left: 100rpx; top: 1070rpx; width: 554rpx; height: 80rpx; display: flex; box-sizing: border-box"></image>
+
+<button class="tapbtn7" plain="true" bindtap="Clickstartluxiang"  style="position: fixed; left:230rpx; top: 1190rpx;">
+  <image  class="luxiang" src='https://wx-model-1317557471.cos.ap-shanghai.myqcloud.com/WXImage/luxiang1Btn.png'    style="position: fixed; left:300rpx; top: 1190rpx; width: 160rpx; height: 160rpx; display: flex; box-sizing: border-box"></image>
+</button>
+ 
+</view>
+</view>
+
+</view>
+
+
+<view wx:if="{{uiShowModelView}}" class="ZhaoHuanShowModel">
+
+ 
+
+<view class ="uiShowModel">
+  <button class="tapbtn2" plain="true" bindtap="clickShowLeft"  style="position: fixed; left: 20rpx; top: 700rpx; width:100rpx; height: 100rpx" >
+  <image class="tapimg2" src='https://wx-model-1317557471.cos.ap-shanghai.myqcloud.com/WXImage/if-caret-left.png'  style="position: absolute; left: 0rpx; top:-15rpx;  height: 100rpx; width:100rpx;" ></image>
+</button>
+
+<button class="tapbtn2" plain="true" bindtap="clickShowRight"  style="position: fixed; right: 20rpx; top: 700rpx; width:100rpx; height: 100rpx" >
+  <image class="tapimg2" src='https://wx-model-1317557471.cos.ap-shanghai.myqcloud.com/WXImage/if-caret-right.png'  style="position: absolute; left: 0rpx; top:-15rpx;  height: 100rpx; width:100rpx;" ></image>
+</button>
+</view>
+
+<view class="UiShowModel_Bottom">
+  <image class="bg_left" src='https://wx-model-1317557471.cos.ap-shanghai.myqcloud.com/WXImage/ui-bg-left.png'  style="position: absolute; left: 0rpx; top:1240rpx;  height: 450rpx; width:55rpx;" ></image>
+  <image class="bg_left" src='https://wx-model-1317557471.cos.ap-shanghai.myqcloud.com/WXImage/ui-bg-right.png'  style="position: absolute; right: 0rpx; top:1240rpx;  height: 450rpx; width:55rpx;" ></image>
+
+
+ 
+<!--<image class="bg_main" src='https://wx-model-1317557471.cos.ap-shanghai.myqcloud.com/WXImage/ui-bg.png'  style=" position: absolute; right: 120rpx; top:1200rpx;  height: 430rpx; width:520rpx;" >
+    <view style="color: rgb(26, 26, 26); position: absolute; left: 70rpx; top:50rpx; font-size:38rpx; font-weight: bold;">{{showModelName}}</view>
+    <view style="color: rgb(26, 26, 26); position: absolute; left: 180rpx; top:50rpx; font-size:38rpx; font-weight: bold;">{{showModelPrice}}</view>
+    <view style="color: rgb(26, 26, 26); position: absolute; left: 70rpx; top:120rpx; font-size:25rpx; width:395rpx;  ">{{showModelIntroduce
+}}</view>
+    <button class="tapbtn2" plain="true" bindtap="clickCloseUIShow"  style="position: fixed; right: 130rpx; top: 1230rpx; width:60rpx; height: 60rpx" >
+
+      <image class="tapimg2" src='https://wx-model-1317557471.cos.ap-shanghai.myqcloud.com/WXImage/ze-cross.png'  style="position: absolute; left: 0rpx; top:0rpx;  height: 60rpx; width:60rpx;" ></image>
+    </button>
+    
+  </image>--> 
+ 
+
+</view>
+</view>
+
+
+</view>
+</xr-demo-viewer>

+ 53 - 0
miniprogram/pages/ar-classic/scene-classic-show/index.wxss

@@ -0,0 +1,53 @@
+
+  .saomiao{  
+    display: flex;
+    justify-content: center;
+    align-items: center;
+    width: 150rpx;
+    height: 60rpx;
+  }
+  .zhaohuan{  
+    display: flex;
+    justify-content: end;
+    align-items: center;
+    width: 150rpx;
+    height: 60rpx;
+  }
+  .shibietu{  
+    display: flex;
+    justify-content: end;
+    align-items: center;
+    width: 150rpx;
+    height: 60rpx;
+  }
+  .wenzi{  
+    display: flex;
+    justify-content: center;
+    align-items: center;
+    width: 150rpx;
+    height: 60rpx;
+  }
+  .img-size {
+    width: 100%;
+    margin: auto;
+  
+  }
+  .swiper-container {
+    z-index: 999; /* 设置一个足够高的值,确保在大多数情况下都位于最上方 */
+    position: relative; /* 确保 z-index 生效的前提是,元素的 position 属性不是 static */
+  }
+  
+  /* 如果 Swiper 的子元素也需要显示在最上方,可以设置其 z-index */
+  .swiper-slide {
+    z-index: 999;
+  }
+  .liucheng-img {
+    width: 100%;
+    height: 100%;
+   
+  }
+  .item {
+    height: 100%;
+    width: 100%;   
+  }
+  

+ 20 - 0
miniprogram/pages/ar-classic/scene-classic-showsix/index.js

@@ -0,0 +1,20 @@
+var sceneReadyBehavior = require('../../behavior-scene/scene-ready');
+Page({
+  behaviors:[sceneReadyBehavior],
+  handleProgress: function({detail}) {
+    console.log('assets progress', detail);
+
+    this.setData({progressInfo: `${~~(detail.progress * 100)} %\n`});
+  },
+  handleLoaded: function({detail}) {
+    console.log('assets loaded', detail);
+
+    this.setData({loaded: true});
+  },
+  handlestr: function({detail}) {
+    //console.log('assets handlestr', detail);
+
+    this.setData({loadedSaoMiao: true});
+  }
+});
+

+ 1 - 1
miniprogram/pages/gltf/scene-gltf-animation/index.json → miniprogram/pages/ar-classic/scene-classic-showsix/index.json

@@ -1,7 +1,7 @@
 {
   "usingComponents": {
     "xr-demo-viewer": "../../../components/xr-demo-viewer/index",
-    "xr-gltf-animation": "../../../components/xr-gltf-animation/index"
+    "xr-classic-video": "../../../components/xr-classic-showsix/index"
   },
   "disableScroll": true
 }

+ 28 - 0
miniprogram/pages/ar-classic/scene-classic-showsix/index.wxml

@@ -0,0 +1,28 @@
+<xr-demo-viewer
+ style="width: 701rpx; height: 844rpx; display: inline; box-sizing: content-box">
+     <xr-classic-video
+        disable-scroll
+        id="main-frame"
+        width="{{renderWidth}}"
+        height="{{renderHeight}}"
+        style="width:150%;height:100%;display:block;"
+        markerImg="{{markerImg}}"
+        bind:arTrackerState="handleARTrackerState"
+        bind:assetsProgress="handleProgress"
+        bind:assetsLoaded="handleLoaded"
+        bind:assetsstr="handlestr"
+    />
+<!--wx:if="{{!loaded}}"-->
+
+  <view  wx:if="{{!loaded}}" style="position: absolute;display: flex; justify-content: center; align-items: center; left: 0;top: 0;width: 100%;height:100%;background-color: rgba(0, 0, 0,1); text-align: center;line-height: 24px;">
+    <text style="color: white;font-size: 18px;">{{progressInfo}}</text>
+  </view>
+<!--  wx:if="{{loaded&&!loadedSaoMiao}}"-->
+
+  <view  style="position: absolute; display: flex; justify-content: center; align-items: center; left: 146rpx; top: 261rpx; width: 100%; height: 441rpx; background-color: rgba(0, 0, 0,0); text-align: center; line-height: 24px; box-sizing: content-box">
+
+    
+<image  wx:if="{{loaded}}"  class="zhaohuan" src='https://wx-model-1317557471.cos.ap-shanghai.myqcloud.com/WXImage/zhaohuan.png'    style="position: relative; left: -164rpx; top: 704rpx; width: 554rpx; height: 211rpx; display: flex; box-sizing: border-box"></image>
+</view>
+
+</xr-demo-viewer>

+ 29 - 0
miniprogram/pages/ar-classic/scene-classic-showsix/index.wxss

@@ -0,0 +1,29 @@
+
+  .saomiao{  
+    display: flex;
+    justify-content: center;
+    align-items: center;
+    width: 150rpx;
+    height: 60rpx;
+  }
+  .zhaohuan{  
+    display: flex;
+    justify-content: end;
+    align-items: center;
+    width: 150rpx;
+    height: 60rpx;
+  }
+  .shibietu{  
+    display: flex;
+    justify-content: end;
+    align-items: center;
+    width: 150rpx;
+    height: 60rpx;
+  }
+  .wenzi{  
+    display: flex;
+    justify-content: center;
+    align-items: center;
+    width: 150rpx;
+    height: 60rpx;
+  }

+ 0 - 26
miniprogram/pages/ar-classic/scene-classic-video/index.js

@@ -1,26 +0,0 @@
-var sceneReadyBehavior = require('../../behavior-scene/scene-ready');
-var handleDecodedXML = require('../../behavior-scene/util').handleDecodedXML;
-var xmlCode = `&lt;xr-scene ar-system=&quot;modes:Marker&quot; bind:ready=&quot;handleReady&quot;&gt;
-  &lt;xr-assets bind:progress=&quot;handleAssetsProgress&quot; bind:loaded=&quot;handleAssetsLoaded&quot;&gt;
-  &lt;xr-asset-load
-      type=&quot;video-texture&quot; asset-id=&quot;hikari&quot;
-      src=&quot;https://mmbizwxaminiprogram-1258344707.cos.ap-guangzhou.myqcloud.com/xr-frame/demo/xr-frame-team/2dmarker/hikari.mp4&quot; options=&quot;autoPlay:true,loop:true&quot;
-    /&gt;
-  &lt;/xr-assets&gt;
-  &lt;xr-node wx:if=&quot;{{loaded}}&quot;&gt;
-    &lt;xr-ar-tracker mode=&quot;Marker&quot; src=&quot;https://pics5.baidu.com/feed/80cb39dbb6fd526642ca5d3ef8dc3420d5073602.png&quot;&gt;
-      &lt;xr-mesh node-id=&quot;mesh-plane&quot; geometry=&quot;plane&quot; uniforms=&quot;u_baseColorMap: video-hikari&quot; /&gt;
-    &lt;/xr-ar-tracker&gt;
-    &lt;xr-camera
-      id=&quot;camera&quot; node-id=&quot;camera&quot; position=&quot;1 1 1&quot; clear-color=&quot;0.925 0.925 0.925 1&quot;
-      background=&quot;ar&quot; is-ar-camera
-    /&gt;
-  &lt;/xr-node&gt;
-&lt;/xr-scene&gt;`;
-Page({
-  behaviors:[sceneReadyBehavior],
-  data: {
-    xmlCode: '<div class="codeWrap">' + handleDecodedXML(xmlCode) + '</div>'
-  }
-});
-

+ 0 - 7
miniprogram/pages/ar-classic/scene-classic-video/index.json

@@ -1,7 +0,0 @@
-{
-  "usingComponents": {
-    "xr-demo-viewer": "../../../components/xr-demo-viewer/index",
-    "xr-classic-video": "../../../components/xr-classic-video/index"
-  },
-  "disableScroll": true
-}

+ 0 - 13
miniprogram/pages/ar-classic/scene-classic-video/index.wxml

@@ -1,13 +0,0 @@
-<xr-demo-viewer
->
-  <xr-classic-video
-    disable-scroll
-    id="main-frame"
-    width="{{renderWidth}}"
-    height="{{renderHeight}}"
-    style="width:{{width}}px;height:{{height}}px;top:{{top}}px;left:{{left}}px;display:block;"
-    markerImg="{{markerImg}}"
-    bind:arTrackerState="handleARTrackerState"
-  />
-
-</xr-demo-viewer>

+ 2 - 0
miniprogram/pages/ar-classic/scene-classic-wxball/index.wxml

@@ -11,6 +11,8 @@
     height="{{renderHeight}}"
     style="width:{{width}}px;height:{{height}}px;top:{{top}}px;left:{{left}}px;display:block;"
     bind:arTrackerState="handleARTrackerState"
+    bind:assetsProgress="handleProgress"
+    bind:assetsLoaded="handleLoaded"
   />
 
   <view wx:if="{{arTrackerShow}}" style="text-align: center;padding: 12px;">

BIN
miniprogram/pages/ar/plane-ar-v2-marker/add.png


+ 62 - 0
miniprogram/pages/ar/plane-ar-v2-marker/behavior.js

@@ -0,0 +1,62 @@
+
+ // 此处如果为jpeg,则后缀名也需要改成对应后缀
+// const filePath = `${wx.env.USER_DATA_PATH}/marker-ar1.jpg`
+// const mapfilePath = `${wx.env.USER_DATA_PATH}/marker-ar.jpg`
+
+export default function getBehavior() {
+  return Behavior({
+    data: {
+      width: 1,
+      height: 1,
+      fps: 0,
+      memory: 0,
+      cpu: 0,
+      markerId: [],
+      imgList: [],
+    },
+    methods: {
+      onReady() { // 初始化 threejs
+        this.session = wx.createVKSession({
+          track: {
+            plane: {
+              mode:3
+            },
+            marker: true,
+          },
+          version: 'v2'
+        })
+
+       const session = this.session
+        session.start(err => {
+          if (err) {
+
+            wx.redirectTo({
+              // url: '/pages/ar/plane-ar-v2-marker/plane-ar-v2-marker',
+              url: '/pages/ar-classic/scene-classic-show/index',
+                success: () => {
+                },
+                fail: () => {
+                },
+              });
+
+          //  return console.error('VK error: ', err)
+          }
+          else
+          {
+            
+            wx.redirectTo({
+              // url: '/pages/ar/plane-ar-v2-marker/plane-ar-v2-marker',
+              url: '/pages/ar-classic/scene-classic-showsix/index',
+                success: () => {
+                },
+                fail: () => {
+                },
+              });
+          //  return console.error('VK error: ', err)
+          }
+
+      })
+      }
+    },
+  })
+}

BIN
miniprogram/pages/ar/plane-ar-v2-marker/move.gif


+ 93 - 0
miniprogram/pages/ar/plane-ar-v2-marker/plane-ar-v2-marker.js

@@ -0,0 +1,93 @@
+import getBehavior from './behavior'
+import yuvBehavior from './yuvBehavior'
+
+const NEAR = 0.001
+const FAR = 1000
+
+let time = 0;
+let countNumber = 20;
+let count = 0;
+
+Component({
+    behaviors: [getBehavior(), yuvBehavior],
+    data: {
+      theme: 'light',
+    },
+    lifetimes: {
+        /**
+        * 生命周期函数--监听页面加载
+        */
+        detached() {
+        console.log("页面detached")
+        if (wx.offThemeChange) {
+          wx.offThemeChange()
+        }
+        },
+        ready() {
+        console.log("页面准备完全")
+          this.setData({
+            theme: wx.getSystemInfoSync().theme || 'light'
+          })
+  
+          if (wx.onThemeChange) {
+            wx.onThemeChange(({theme}) => {
+              this.setData({theme})
+            })
+          }
+        },
+    },
+    methods: {
+        init() {
+            this.initGL()
+        },
+        render(frame) {
+            let start = Date.now()
+
+            this.renderGL(frame)
+            const camera = frame.camera
+
+            // 修改光标位置
+            const reticle = this.reticle
+            if (reticle) {
+                const hitTestRes = this.session.hitTest(0.5, 0.5)
+                if (hitTestRes.length) {
+                    reticle.matrixAutoUpdate = false
+                    reticle.matrix.fromArray(hitTestRes[0].transform)
+                    reticle.matrix.decompose(reticle.position, reticle.quaternion, reticle.scale)
+                    if(reticle.position.z !=0 )
+                      reticle.visible = true
+                } else {
+                    reticle.visible = false
+                }
+            }
+
+            // 更新动画
+            this.updateAnimation()
+
+            // 相机
+            if (camera) {
+                this.camera.matrixAutoUpdate = false
+                this.camera.matrixWorldInverse.fromArray(camera.viewMatrix)
+                this.camera.matrixWorld.getInverse(this.camera.matrixWorldInverse)
+
+                const projectionMatrix = camera.getProjectionMatrix(NEAR, FAR)
+                this.camera.projectionMatrix.fromArray(projectionMatrix)
+                this.camera.projectionMatrixInverse.getInverse(this.camera.projectionMatrix)
+            }
+
+            this.renderer.autoClearColor = false
+            this.renderer.render(this.scene, this.camera)
+            this.renderer.state.setCullFace(this.THREE.CullFaceNone)
+
+            let end = Date.now()
+
+            time += end-start
+            count++
+            // if(count >= countNumber){
+            //   console.log(`${count}次平均耗时统计为${time/count}ms`)
+            //   count = 0
+            //   time = 0
+            // }
+        },
+    },
+})

+ 5 - 0
miniprogram/pages/ar/plane-ar-v2-marker/plane-ar-v2-marker.json

@@ -0,0 +1,5 @@
+{
+  "usingComponents": {},
+  "disableScroll": true,
+  "navigationBarTitleText": "检查设备"
+}

+ 0 - 0
miniprogram/pages/ar-classic/scene-classic-video/index.wxss → miniprogram/pages/ar/plane-ar-v2-marker/plane-ar-v2-marker.wxml


+ 19 - 0
miniprogram/pages/ar/plane-ar-v2-marker/plane-ar-v2-marker.wxss

@@ -0,0 +1,19 @@
+.btn-cnt {
+  display: flex;
+}
+
+.photo-cnt {
+position: absolute;
+margin-top: 60vh;
+}
+
+.btn-choose {
+flex:0 50%;
+display: flex;
+height: 5vh;
+margin-bottom: 5vh;
+}
+
+.scroll-view_H {
+    white-space: nowrap;
+  }

+ 139 - 0
miniprogram/pages/ar/plane-ar-v2-marker/yuvBehavior.js

@@ -0,0 +1,139 @@
+const yuvBehavior = Behavior({
+    methods: {
+        initShader() {
+            const gl = this.gl = this.renderer.getContext()
+            const currentProgram = gl.getParameter(gl.CURRENT_PROGRAM)
+            const vs = `
+        attribute vec2 a_position;
+        attribute vec2 a_texCoord;
+        uniform mat3 displayTransform;
+        varying vec2 v_texCoord;
+        void main() {
+          vec3 p = displayTransform * vec3(a_position, 0);
+          gl_Position = vec4(p, 1);
+          v_texCoord = a_texCoord;
+        }
+      `
+            const fs = `
+        precision highp float;
+
+        uniform sampler2D y_texture;
+        uniform sampler2D uv_texture;
+        varying vec2 v_texCoord;
+        void main() {
+          vec4 y_color = texture2D(y_texture, v_texCoord);
+          vec4 uv_color = texture2D(uv_texture, v_texCoord);
+
+          float Y, U, V;
+          float R ,G, B;
+          Y = y_color.r;
+          U = uv_color.r - 0.5;
+          V = uv_color.a - 0.5;
+          
+          R = Y + 1.402 * V;
+          G = Y - 0.344 * U - 0.714 * V;
+          B = Y + 1.772 * U;
+          
+          gl_FragColor = vec4(R, G, B, 1.0);
+        }
+      `
+            const vertShader = gl.createShader(gl.VERTEX_SHADER)
+            gl.shaderSource(vertShader, vs)
+            gl.compileShader(vertShader)
+
+            const fragShader = gl.createShader(gl.FRAGMENT_SHADER)
+            gl.shaderSource(fragShader, fs)
+            gl.compileShader(fragShader)
+
+            const program = this._program = gl.createProgram()
+            this._program.gl = gl
+            gl.attachShader(program, vertShader)
+            gl.attachShader(program, fragShader)
+            gl.deleteShader(vertShader)
+            gl.deleteShader(fragShader)
+            gl.linkProgram(program)
+            gl.useProgram(program)
+
+            const uniformYTexture = gl.getUniformLocation(program, 'y_texture')
+            gl.uniform1i(uniformYTexture, 5)
+            const uniformUVTexture = gl.getUniformLocation(program, 'uv_texture')
+            gl.uniform1i(uniformUVTexture, 6)
+
+            this._dt = gl.getUniformLocation(program, 'displayTransform')
+            gl.useProgram(currentProgram)
+        },
+        initVAO() {
+            const gl = this.renderer.getContext()
+            const ext = gl.getExtension('OES_vertex_array_object')
+            this.ext = ext
+
+            const currentVAO = gl.getParameter(gl.VERTEX_ARRAY_BINDING)
+            const vao = ext.createVertexArrayOES()
+
+            ext.bindVertexArrayOES(vao)
+
+            const posAttr = gl.getAttribLocation(this._program, 'a_position')
+            const pos = gl.createBuffer()
+            gl.bindBuffer(gl.ARRAY_BUFFER, pos)
+            gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([1, 1, -1, 1, 1, -1, -1, -1]), gl.STATIC_DRAW)
+            gl.vertexAttribPointer(posAttr, 2, gl.FLOAT, false, 0, 0)
+            gl.enableVertexAttribArray(posAttr)
+            vao.posBuffer = pos
+
+            const texcoordAttr = gl.getAttribLocation(this._program, 'a_texCoord')
+            const texcoord = gl.createBuffer()
+            gl.bindBuffer(gl.ARRAY_BUFFER, texcoord)
+            gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([1, 1, 0, 1, 1, 0, 0, 0]), gl.STATIC_DRAW)
+            gl.vertexAttribPointer(texcoordAttr, 2, gl.FLOAT, false, 0, 0)
+            gl.enableVertexAttribArray(texcoordAttr)
+            vao.texcoordBuffer = texcoord
+
+            ext.bindVertexArrayOES(currentVAO)
+            this._vao = vao
+        },
+        initGL() {
+            this.initShader()
+            this.initVAO()
+        },
+        renderGL(frame) {
+            const gl = this.renderer.getContext()
+            gl.disable(gl.DEPTH_TEST)
+            const {
+                yTexture,
+                uvTexture
+            } = frame.getCameraTexture(gl, 'yuv')
+            const displayTransform = frame.getDisplayTransform()
+            if (yTexture && uvTexture) {
+                const currentProgram = gl.getParameter(gl.CURRENT_PROGRAM)
+                const currentActiveTexture = gl.getParameter(gl.ACTIVE_TEXTURE)
+                const currentVAO = gl.getParameter(gl.VERTEX_ARRAY_BINDING)
+
+                gl.useProgram(this._program)
+                this.ext.bindVertexArrayOES(this._vao)
+
+                gl.uniformMatrix3fv(this._dt, false, displayTransform)
+                gl.pixelStorei(gl.UNPACK_ALIGNMENT, 1)
+
+                gl.activeTexture(gl.TEXTURE0 + 5)
+                const bindingTexture5 = gl.getParameter(gl.TEXTURE_BINDING_2D)
+                gl.bindTexture(gl.TEXTURE_2D, yTexture)
+
+                gl.activeTexture(gl.TEXTURE0 + 6)
+                const bindingTexture6 = gl.getParameter(gl.TEXTURE_BINDING_2D)
+                gl.bindTexture(gl.TEXTURE_2D, uvTexture)
+
+                gl.drawArrays(gl.TRIANGLE_STRIP, 0, 4)
+
+                gl.bindTexture(gl.TEXTURE_2D, bindingTexture6)
+                gl.activeTexture(gl.TEXTURE0 + 5)
+                gl.bindTexture(gl.TEXTURE_2D, bindingTexture5)
+
+                gl.useProgram(currentProgram)
+                gl.activeTexture(currentActiveTexture)
+                this.ext.bindVertexArrayOES(currentVAO)
+            }
+        },
+    },
+})
+
+export default yuvBehavior

+ 0 - 48
miniprogram/pages/basic/scene-basic-alpha/index.js

@@ -1,48 +0,0 @@
-var sceneReadyBehavior = require('../../behavior-scene/scene-ready');
-var handleDecodedXML = require('../../behavior-scene/util').handleDecodedXML;
-
-var xmlCode = ``;
-
-Page({
-  behaviors:[sceneReadyBehavior],
-  data: {
-    heightScale: 0.5,
-    cubeAlpha: 100,
-    sphereAlpha: 100,
-    clearR: 0,
-    clearG: 0,
-    clearB: 0,
-    clearA: 0,
-    xmlCode: '<div class="codeWrap">' + handleDecodedXML(xmlCode) + '</div>',
-  },
-  changeClearR(e) {
-    this.setData({
-      clearR: e.detail.value
-    });
-  },
-  changeClearG(e) {
-    this.setData({
-      clearG: e.detail.value
-    });
-  },
-  changeClearB(e) {
-    this.setData({
-      clearB: e.detail.value
-    });
-  },
-  changeClearA(e) {
-    this.setData({
-      clearA: e.detail.value
-    });
-  },
-  changeCubeAlpha(e) {
-    this.setData({
-      cubeAlpha: e.detail.value
-    });
-  },
-  changeSphereAlpha(e) {
-    this.setData({
-      sphereAlpha: e.detail.value
-    });
-  }
-});

+ 0 - 7
miniprogram/pages/basic/scene-basic-alpha/index.json

@@ -1,7 +0,0 @@
-{
-  "usingComponents": {
-    "xr-demo-viewer": "../../../components/xr-demo-viewer/index",
-    "xr-basic-alpha": "../../../components/xr-basic-alpha/index"
-  },
-  "disableScroll": true
-}

+ 0 - 42
miniprogram/pages/basic/scene-basic-alpha/index.wxml

@@ -1,42 +0,0 @@
-<xr-demo-viewer
-  title="透明画布"
-  intro="使用透明画布能力,透出背景,背景的waifu是CSS写的。"
-  code="{{xmlCode}}"
->
-  <xr-basic-alpha
-    disable-scroll
-    id="main-frame"
-    width="{{renderWidth}}"
-    height="{{renderHeight}}"
-    style="width:{{width}}px;height:{{height}}px;top:{{top}}px;left:{{left}}px;display:block;background-image: url(https://mmbizwxaminiprogram-1258344707.cos.ap-guangzhou.myqcloud.com/xr-frame/demo/waifu.png);background-size: cover;background-position-x: center;"
-    clearColor="{{clearR / 100}} {{clearG / 100}} {{clearB / 100}} {{clearA / 100}}"
-    cubeAlpha="{{cubeAlpha / 100}}"
-    sphereAlpha="{{sphereAlpha / 100}}"
-  />
-
-  <view style="margin-top: 1rem;"></view>
-  <view class="form-entry">
-    <view class="form-entry-title">清屏颜色(红色)</view>
-    <slider bindchange="changeClearR" value="{{clearR}}"></slider>
-  </view>
-  <view class="form-entry">
-    <view class="form-entry-title">清屏颜色(绿色)</view>
-    <slider bindchange="changeClearG" value="{{clearG}}"></slider>
-  </view>
-  <view class="form-entry">
-    <view class="form-entry-title">清屏颜色(蓝色)</view>
-    <slider bindchange="changeClearB" value="{{clearB}}"></slider>
-  </view>
-  <view class="form-entry">
-    <view class="form-entry-title">清屏颜色(透明度)</view>
-    <slider bindchange="changeClearA" value="{{clearA}}"></slider>
-  </view>
-  <view class="form-entry">
-    <view class="form-entry-title">立方体透明度</view>
-    <slider bindchange="changeCubeAlpha" value="{{cubeAlpha}}"></slider>
-  </view>
-  <view class="form-entry">
-    <view class="form-entry-title">球透明度</view>
-    <slider bindchange="changeSphereAlpha" value="{{sphereAlpha}}"></slider>
-  </view>
-</xr-demo-viewer>

+ 0 - 19
miniprogram/pages/basic/scene-basic-alpha/index.wxss

@@ -1,19 +0,0 @@
-.form-entry {
-  margin: 15px;
-}
-
-.radio-item {
-margin-right: 3%;
-}
-
-.form-entry-title {
-  margin-bottom: 10px;
-}
-
-.divider {
-width: 20%;
-height: 2px;
-background-color: rgb(230, 230, 230);
-/* margin-left: 15px; */
-margin: 0 auto 0 auto;
-}

+ 0 - 100
miniprogram/pages/basic/scene-basic-animation/index.js

@@ -1,100 +0,0 @@
-var sceneReadyBehavior = require('../../behavior-scene/scene-ready');
-var handleDecodedXML = require('../../behavior-scene/util').handleDecodedXML;
-var xmlCode = `&lt;xr-scene id=&quot;xr-scene&quot;&gt;
-&lt;xr-assets bind:progress=&quot;handleAssetsProgress&quot; bind:loaded=&quot;handleAssetsLoaded&quot;&gt;
-  &lt;xr-asset-load asset-id=&quot;basic-anim&quot; type=&quot;keyframe&quot; src=&quot;/assets/animation/basic-animation.json&quot;/&gt;
-  &lt;xr-asset-material asset-id=&quot;standard-mat&quot; effect=&quot;standard&quot; /&gt;
-&lt;/xr-assets&gt;
-&lt;xr-node&gt;
-  &lt;xr-node node-id=&quot;camera-target&quot; position=&quot;0 0 0&quot;&gt;&lt;/xr-node&gt;
-  &lt;xr-mesh
-    node-id=&quot;mesh-plane&quot; position=&quot;0 -0.8 0&quot; rotation=&quot;0 0 0&quot; scale=&quot;10 1 8&quot; geometry=&quot;plane&quot; material=&quot;standard-mat&quot; uniforms=&quot;u_baseColorFactor:0.48 0.78 0.64 1&quot;
-    anim-keyframe=&quot;basic-anim&quot; anim-autoplay=&quot;clip:plane, speed:4&quot;
-  &gt;&lt;/xr-mesh&gt;
-  &lt;xr-mesh
-    node-id=&quot;mesh-cube&quot; position=&quot;-3 0 2&quot; scale=&quot;1 1 1&quot; rotation=&quot;0 0 0&quot; geometry=&quot;cube&quot; material=&quot;standard-mat&quot; uniforms=&quot;u_baseColorFactor:0.298 0.764 0.85 1&quot;
-    anim-keyframe=&quot;basic-anim&quot; anim-clipmap=&quot;default:cube&quot; anim-autoplay=&quot;clip:cube, speed:2&quot;
-  &gt;&lt;/xr-mesh&gt;
-  &lt;xr-mesh 
-    node-id=&quot;mesh-sphere&quot; position=&quot;-3 0 0&quot; scale=&quot;0.8 0.8 0.8&quot; geometry=&quot;sphere&quot; material=&quot;standard-mat&quot; uniforms=&quot;u_baseColorFactor:0.937 0.176 0.368 1&quot;
-    anim-keyframe=&quot;basic-anim&quot; anim-autoplay=&quot;clip:sphere, speed:2&quot;
-  &gt;&lt;/xr-mesh&gt;
-  &lt;xr-mesh 
-    node-id=&quot;mesh-cylinder&quot; position=&quot;-3 0 -2&quot; scale=&quot;1 0.6 1&quot; geometry=&quot;cylinder&quot; material=&quot;standard-mat&quot; uniforms=&quot;u_baseColorFactor:1 0.776 0.364 1&quot;
-    anim-keyframe=&quot;basic-anim&quot; anim-autoplay=&quot;clip:cylinder, speed:2&quot;
-  &gt;&lt;/xr-mesh&gt;
-  &lt;xr-mesh node-id=&quot;mesh-light-cube&quot; position=&quot;-5 1 0&quot; scale=&quot;0.5 2 10&quot; rotation=&quot;0 0 0&quot; geometry=&quot;cube&quot; material=&quot;standard-mat&quot; uniforms=&quot;u_baseColorFactor:0.3 0.3 0.3 1&quot;&gt;&lt;/xr-mesh&gt;
-  &lt;xr-camera
-    id=&quot;camera&quot; node-id=&quot;camera&quot; position=&quot;5 3 0&quot; clear-color=&quot;0.925 0.925 0.925 1&quot;
-    target=&quot;camera-target&quot;
-    camera-orbit-control=&quot;&quot;
-  &gt;&lt;/xr-camera&gt;
-&lt;/xr-node&gt;
-&lt;xr-node node-id=&quot;lights&quot;&gt;
-  &lt;xr-light type=&quot;ambient&quot; color=&quot;1 1 1&quot; intensity=&quot;1&quot; /&gt;
-  &lt;xr-light type=&quot;directional&quot; rotation=&quot;30 230 0&quot; color=&quot;1 1 1&quot; intensity=&quot;3&quot; /&gt;
-  &lt;xr-light
-    type=&quot;spot&quot; position=&quot;-4 1 0&quot; rotation=&quot;0 -90 0&quot; color=&quot;0 0 1&quot; range=&quot;20&quot; intensity=&quot;100&quot; inner-cone-angle=&quot;30&quot; outer-cone-angle=&quot;40&quot;
-    anim-keyframe=&quot;basic-anim&quot; anim-autoplay=&quot;clip:spotLight, speed:2&quot;
-  /&gt;
-&lt;/xr-node&gt;
-&lt;/xr-scene&gt;
-`;
-
-const json = `
-{
-  <div class="ml20">
-  "keyframe": {
-    <div class="ml20">
-    "cube": {
-      <div class="ml20">
-      "0": {
-        <div class="ml20">
-        "position": [-3, 0, 2]
-        </div>
-      },<br>
-      "50": {
-        <div class="ml20">
-        "rotation": [0, 0, 0],
-        "scale": [1, 1, 1]
-        </div>
-      },<br>
-      "100": {
-        <div class="ml20">
-        "position": [3, 0, 2],
-        "rotation": [0, 3.14, 0],
-        "scale": [1.4, 1.4, 1.4]
-        </div>
-      }
-      </div>
-    }
-    </div>
-    ...<br>
-  },<br>
-  "animation": {
-    <div class="ml20">
-    "default": {
-      <div class="ml20">
-      "keyframe": "cube",<br>
-      "duration": 1,<br>
-      "ease": "ease-in-out",<br>
-      "loop": 400000,<br>
-      "delay": 1,<br>
-      "direction": "both"<br>
-      </div>
-    }
-    </div>
-    ...<br>
-  }
-  </div>
-
-}`;
-
-Page({
-  behaviors:[sceneReadyBehavior],
-  data: {
-    xmlCode: '<div class="codeWrap">' + handleDecodedXML(xmlCode) + '</div>',
-    json: json
-  }
-});
-

+ 0 - 7
miniprogram/pages/basic/scene-basic-animation/index.json

@@ -1,7 +0,0 @@
-{
-  "usingComponents": {
-    "xr-demo-viewer": "../../../components/xr-demo-viewer/index",
-    "xr-basic-animation": "../../../components/xr-basic-animation/index"
-  },
-  "disableScroll": true
-}

+ 0 - 15
miniprogram/pages/basic/scene-basic-animation/index.wxml

@@ -1,15 +0,0 @@
-<xr-demo-viewer
-  title="动画案例"
-  intro="keyframe动画案例,包含三个图形的旋转位移缩放动画,底层平面的颜色变化动画,以及一个聚光的位移动画。具体动画结构可以拉到底部查看。"
-  code="{{xmlCode}}"
-  json="{{json}}"
->
-  <xr-basic-animation
-    disable-scroll
-    id="main-frame"
-    width="{{renderWidth}}"
-    height="{{renderHeight}}"
-    style="width:{{width}}px;height:{{height}}px;top:{{top}}px;left:{{left}}px;display:block;"
-    a="123"
-  />
-</xr-demo-viewer>

+ 0 - 0
miniprogram/pages/basic/scene-basic-animation/index.wxss


+ 0 - 8
miniprogram/pages/basic/scene-basic-envData/index.js

@@ -1,8 +0,0 @@
-var sceneReadyBehavior = require('../../behavior-scene/scene-ready');
-var handleDecodedXML = require('../../behavior-scene/util').handleDecodedXML;
-
-Page({
-  behaviors:[sceneReadyBehavior],
-  data: {
-  }
-});

+ 0 - 7
miniprogram/pages/basic/scene-basic-envData/index.json

@@ -1,7 +0,0 @@
-{
-  "usingComponents": {
-    "xr-demo-viewer": "../../../components/xr-demo-viewer/index",
-    "xr-basic-envData": "../../../components/xr-basic-envData/index"
-  },
-  "disableScroll": true
-}

+ 0 - 12
miniprogram/pages/basic/scene-basic-envData/index.wxml

@@ -1,12 +0,0 @@
-<xr-demo-viewer
-  title="环境数据案例"
-  intro="案例包含四个基础小球,分别为光滑金属与粗糙非金属。分别为,对应全局环境信息的两个反光小球,与定制局部环境数据的两个发光小球"
->
-  <xr-basic-envData
-    disable-scroll
-    id="main-frame"
-    width="{{renderWidth}}"
-    height="{{renderHeight}}"
-    style="width:{{width}}px;height:{{height}}px;top:{{top}}px;left:{{left}}px;display:block;"
-  />
-</xr-demo-viewer>

+ 0 - 0
miniprogram/pages/basic/scene-basic-envData/index.wxss


+ 0 - 35
miniprogram/pages/basic/scene-basic-light/index.js

@@ -1,35 +0,0 @@
-var sceneReadyBehavior = require('../../behavior-scene/scene-ready');
-var handleDecodedXML = require('../../behavior-scene/util').handleDecodedXML;
-var xmlCode = `&lt;xr-scene id=&quot;xr-scene&quot;&gt;
-&lt;xr-assets bind:progress=&quot;handleAssetsProgress&quot; bind:loaded=&quot;handleAssetsLoaded&quot;&gt;
-  &lt;xr-asset-material asset-id=&quot;standard-mat&quot; effect=&quot;standard&quot; /&gt;
-&lt;/xr-assets&gt;
-&lt;xr-node&gt;
-  &lt;xr-node node-id=&quot;camera-target&quot; position=&quot;0 0 0&quot;&gt;&lt;/xr-node&gt;
-  &lt;xr-mesh node-id=&quot;mesh-cube-floor&quot; position=&quot;2 -1.01 0&quot; rotation=&quot;0 0 0&quot; scale=&quot;10 1 10&quot; geometry=&quot;cube&quot; material=&quot;standard-mat&quot; uniforms=&quot;u_baseColorFactor:0.2 0.2 0.2 1&quot;&gt;&lt;/xr-mesh&gt;
-  &lt;xr-mesh node-id=&quot;mesh-cube&quot; position=&quot;0.6 -0.25 0.8&quot; rotation=&quot;0 30 0&quot; scale=&quot;0.5 0.5 0.5&quot; geometry=&quot;cube&quot; material=&quot;standard-mat&quot; uniforms=&quot;u_baseColorFactor:1 1 1 1&quot;&gt;&lt;/xr-mesh&gt;
-  &lt;xr-mesh node-id=&quot;mesh-sphere&quot; position=&quot;2 -0.15 -1&quot; scale=&quot;0.4 0.4 0.4&quot; geometry=&quot;sphere&quot; material=&quot;standard-mat&quot; uniforms=&quot;u_baseColorFactor:1 1 1 1&quot;&gt;&lt;/xr-mesh&gt;
-  &lt;xr-mesh node-id=&quot;mesh-cylinder&quot; position=&quot;-0.2 -0.2 -0.8&quot; scale=&quot;0.5 0.4 0.5&quot; geometry=&quot;cylinder&quot; material=&quot;standard-mat&quot; uniforms=&quot;u_baseColorFactor:1 1 1 1&quot;&gt;&lt;/xr-mesh&gt;
-  &lt;xr-mesh node-id=&quot;mesh-cube-far&quot; position=&quot;3 -0.25 1&quot; rotation=&quot;0 -30 0&quot; scale=&quot;0.5 0.5 0.5&quot; geometry=&quot;cube&quot; material=&quot;standard-mat&quot; uniforms=&quot;u_baseColorFactor:1 1 1 1&quot;&gt;&lt;/xr-mesh&gt;
-&lt;xr-camera
-    id=&quot;camera&quot; node-id=&quot;camera&quot; position=&quot;-2 1 0&quot; clear-color=&quot;0 0 0 1&quot;
-    target=&quot;camera-target&quot;
-    camera-orbit-control=&quot;&quot;
-  &gt;&lt;/xr-camera&gt;
-&lt;/xr-node&gt;
-&lt;xr-node node-id=&quot;lights&quot;&gt;
-  &lt;xr-light type=&quot;ambient&quot; color=&quot;1 1 1&quot; intensity=&quot;0.1&quot; /&gt;
-  &lt;xr-light type=&quot;directional&quot; rotation=&quot;40 170 0&quot; color=&quot;1 1 1&quot; intensity=&quot;0.2&quot; /&gt;
-  &lt;xr-light type=&quot;point&quot; position=&quot;0 0 0&quot; color=&quot;1 0 0&quot; range=&quot;3&quot; intensity=&quot;3&quot; /&gt;
-  &lt;xr-light type=&quot;point&quot; position=&quot;2 0 1&quot; color=&quot;0 1 0&quot; range=&quot;3&quot; intensity=&quot;3&quot; /&gt;
-  &lt;xr-light type=&quot;spot&quot; position=&quot;0 0 0&quot; color=&quot;0 0 1&quot; range=&quot;12&quot; intensity=&quot;12&quot; rotation=&quot;0 120 0&quot; inner-cone-angle=&quot;30&quot; outer-cone-angle=&quot;35&quot; /&gt;
-&lt;/xr-node&gt;
-&lt;/xr-scene&gt;
-`;
-Page({
-  behaviors:[sceneReadyBehavior],
-  data: {
-    xmlCode: '<div class="codeWrap">' + handleDecodedXML(xmlCode) + '</div>',
-  }
-});
-

+ 0 - 7
miniprogram/pages/basic/scene-basic-light/index.json

@@ -1,7 +0,0 @@
-{
-  "usingComponents": {
-    "xr-demo-viewer": "../../../components/xr-demo-viewer/index",
-    "xr-basic-light": "../../../components/xr-basic-light/index"
-  },
-  "disableScroll": true
-}

+ 0 - 14
miniprogram/pages/basic/scene-basic-light/index.wxml

@@ -1,14 +0,0 @@
-<xr-demo-viewer
-  title="灯光案例"
-  intro="蓝色的聚光,绿色、红色的点光及少量白色平行、环境光作用下的,默认材质的四个白色图形。"
-  code="{{xmlCode}}"
->
-  <xr-basic-light
-    disable-scroll
-    id="main-frame"
-    width="{{renderWidth}}"
-    height="{{renderHeight}}"
-    style="width:{{width}}px;height:{{height}}px;top:{{top}}px;left:{{left}}px;display:block;"
-    a="123"
-  />
-</xr-demo-viewer>

+ 0 - 0
miniprogram/pages/basic/scene-basic-light/index.wxss


+ 0 - 61
miniprogram/pages/basic/scene-basic-particle/index.js

@@ -1,61 +0,0 @@
-var sceneReadyBehavior = require('../../behavior-scene/scene-ready');
-var handleDecodedXML = require('../../behavior-scene/util').handleDecodedXML;
-
-var xmlCode = `;`;
-
-Page({
-  behaviors:[sceneReadyBehavior],
-  data: {
-    xmlCode: '',
-    capacity: 0,
-    emitRate: 0,
-    lifeTime: 0,
-  },
-
-  calc: function(variable, add = true, number=1){
-    var temp = variable;
-    var result = temp;
-    var count = 1;
-    while(Math.floor(temp/10)){
-      count++;
-      temp = Math.floor(temp/10);
-    }
-    if(add){
-      result += number * Math.pow(10, count-1);
-    }else{
-      if(result<=number * Math.pow(10,count-1)){
-        count--;
-        if(count < 1 ){
-          count = 1;
-        }
-      }
-      result -= number * Math.pow(10, count-1);
-      if(result < 0 ){
-        result = 0;
-      }
-    }
-    return Number(result.toFixed(1));
-  },
-  handleAdd: function() {
-    this.setData({capacity:this.calc(this.data.capacity, true)});
-  },
-  handleSub: function() {
-    this.setData({capacity:this.calc(this.data.capacity, false)});
-  },
-  handleRateAdd: function() {
-    this.setData({emitRate:this.calc(this.data.emitRate, true)});
-  },
-  handleRateSub: function() {
-    this.setData({emitRate:this.calc(this.data.emitRate, false)});
-  },
-  handleTimeAdd: function() {
-    this.setData({lifeTime:this.calc(this.data.lifeTime, true, 0.1)});
-  },
-  handleTimeSub: function() {
-    this.setData({lifeTime:this.calc(this.data.lifeTime, false, 0.1)});
-  }
-});
-
-
-
-

+ 0 - 31
miniprogram/pages/basic/scene-basic-particle/index.wxml

@@ -1,31 +0,0 @@
-<xr-demo-viewer
-  title="基础案例"
-  intro="使用`xr-particle`,控制粒子系统的显示。从远到近,从左到右依次是:案例1:球形发射器与颜色过渡效果的粒子展示 案例2:闪电球效果的粒子展示 案例3:光环效果展示 案例4:传送门效果展示 案例5: 《戴珍珠耳环的少女》人像效果展示"
-  code="{{xmlCode}}"
->
-
-<xr-basic-particle
-    disable-scroll
-    id="main-frame"
-    width="{{renderWidth}}"
-    height="{{renderHeight}}"
-    style="width:{{width}}px;height:{{height}}px;top:{{top}}px;left:{{left}}px;display:block;"
-    capacity="{{capacity}}"
-    emitRate="{{emitRate}}"
-    lifeTime="{{lifeTime}}"
-/>
-
-<view class="env-words">
-  <!-- <span class="tips">粒子上限: </span><span class="content">{{capacity}}</span><text>\n</text>
-  <span class="tips">粒子速率: </span><span class="content">{{emitRate}}</span><text>\n</text>
-  <span class="tips">粒子生命周期: </span><span class="content">{{lifeTime}}</span><text>\n</text> -->
-</view>
-<view class="button-wrap">
-  <!-- <view class="change-button" bindtap="handleAdd">增加粒子</view>
-  <view class="change-button" bindtap="handleSub">减少粒子</view>
-  <view class="change-button" bindtap="handleRateAdd">增加粒子速率</view>
-  <view class="change-button" bindtap="handleRateSub">减少粒子速率</view>
-  <view class="change-button" bindtap="handleTimeAdd">增加粒子生命周期</view>
-  <view class="change-button" bindtap="handleTimeSub">减少粒子生命周期</view> -->
-</view>
-</xr-demo-viewer>

+ 0 - 30
miniprogram/pages/basic/scene-basic-particle/index.wxss

@@ -1,30 +0,0 @@
-.button-wrap {
-  line-height: 60rpx;
-  text-align: center;
-  vertical-align: middle;
-}
-
-.change-button {
-  display: inline-block;
-  background-color: #000;
-  color: #fff;
-  font-size: 22rpx;
-  margin: 10rpx;
-  padding: 5rpx 24rpx;
-  border-radius: 6rpx;
-}
-
-.env-words {
-  text-align: center;
-  vertical-align: baseline;
-  margin: 10rpx 0;
-}
-
-.env-words .tips {
-    font-size: 20rpx;
-}
-
-.env-words .content {
-  font-size: 28rpx;
-  font-weight: bold;
-}

+ 0 - 86
miniprogram/pages/basic/scene-basic-postprocessing/index.js

@@ -1,86 +0,0 @@
-var sceneReadyBehavior = require('../../behavior-scene/scene-ready');
-var handleDecodedXML = require('../../behavior-scene/util').handleDecodedXML;
-var xmlCode = ``;
-Page({
-  behaviors:[sceneReadyBehavior],
-  data: {
-    xmlCode: '',
-    type: 0,
-    
-    blurRadius: 16,
-    bloomRadius: 16,
-    bloomIntensity: 2,
-    bloomThreshold: 0.5,
-    vignetteIntensity: 1,
-    vignetteSmoothness: 2,
-    vignetteRoundness: 1,
-    fxaaEnabled: false
-  },
-  handleProgress: function({detail}) {
-    this.setData({progressInfo: `${~~(detail.progress * 100)} %\n\n${detail.asset.assetId}(${detail.asset.type}): ${detail.asset.src}`});
-  },
-  handleLoaded: function({detail}) {
-    this.setData({loaded: true});
-  },
-  changeType(e) {
-    const type = e.detail.value;
-    if (type === "blur") {
-      this.setData({
-        type: 0
-      });
-    } else if (type === "bloom") {
-      this.setData({
-        type: 1
-      });
-    } else if (type === "vignette") {
-      this.setData({
-        type: 2
-      });
-    } else if (type === "fxaa") {
-      this.setData({
-        type: 3
-      });
-    }
-  },
-  changeBlurRadius(e) {
-    this.setData({
-      blurRadius: e.detail.value
-    });
-  },
-  changeBloomRadius(e) {
-    this.setData({
-      bloomRadius: e.detail.value
-    });
-  },
-  changeBloomIntensity(e) {
-    this.setData({
-      bloomIntensity: e.detail.value
-    });
-  },
-  changeBloomThreshold(e) {
-    this.setData({
-      bloomThreshold: e.detail.value
-    });
-  },
-  changeVignetteIntensity(e) {
-    this.setData({
-      vignetteIntensity: e.detail.value
-    });
-  },
-  changeVignetteSmoothness(e) {
-    this.setData({
-      vignetteSmoothness: e.detail.value
-    });
-  },
-  changeVignetteRoundness(e) {
-    this.setData({
-      vignetteRoundness: e.detail.value
-    });
-  },
-  switchFXAA(e) {
-    this.setData({
-      fxaaEnabled: !this.data.fxaaEnabled
-    });
-  }
-});
-

+ 0 - 7
miniprogram/pages/basic/scene-basic-postprocessing/index.json

@@ -1,7 +0,0 @@
-{
-  "usingComponents": {
-    "xr-demo-viewer": "../../../components/xr-demo-viewer/index",
-    "xr-gltf-postprocessing": "../../../components/xr-basic-postprocessing/index"
-  },
-  "disableScroll": true
-}

+ 0 - 71
miniprogram/pages/basic/scene-basic-postprocessing/index.wxml

@@ -1,71 +0,0 @@
-<xr-demo-viewer
-  title="后处理效果案例"
-  intro="展示了xrFrame内置的几种后处理效果。"
-  code="{{xmlCode}}"
->
-  <xr-gltf-postprocessing
-    disable-scroll
-    id="main-frame"
-    width="{{renderWidth}}"
-    height="{{renderHeight}}"
-    style="width:{{width}}px;height:{{height}}px;top:{{top}}px;left:{{left}}px;display:block;"
-
-    type="{{type}}"
-    blurRadius="{{blurRadius}}"
-    bloomRadius="{{bloomRadius}}"
-    bloomIntensity="{{bloomIntensity}}"
-    bloomThreshold="{{bloomThreshold}}"
-    vignetteIntensity="{{vignetteIntensity}}"
-    vignetteSmoothness="{{vignetteSmoothness}}"
-    vignetteRoundness="{{vignetteRoundness}}"
-    fxaaEnabled="{{fxaaEnabled}}"
-    bind:assetsProgress="handleProgress"
-    bind:assetsLoaded="handleLoaded"
-    loaded="{{loaded}}"
-  />
-  <view wx:if="{{!loaded}}" style="position: absolute;display: flex; justify-content: center; align-items: center; left: 0;top: 0;width: {{width}}px;height: {{height}}px;background-color: #6aa; text-align: center;line-height: 24px;">
-    <text style="color: white;font-size: 18px;">{{progressInfo}}</text>
-  </view>
-  <view class="form-entry">
-    <view class="form-entry-title">后处理类型</view>
-    <radio-group name="pp-type" bindchange="changeType">
-      <label class="radio-item"><radio value="blur" checked/>模糊</label>
-      <label class="radio-item"><radio value="vignette"/>渐晕</label>
-      <label class="radio-item"><radio value="bloom"/>泛光</label>
-      <label class="radio-item"><radio value="fxaa"/>抗锯齿</label>
-    </radio-group>
-  </view>
-  <!-- <view class="divider"></view> -->
-  <view wx:if="{{type == 0}}" class="form-entry">
-    <view class="form-entry-title">模糊半径</view>
-    <slider bindchange="changeBlurRadius" value="{{blurRadius}}"></slider>
-  </view>
-  <view wx:if="{{type == 2}}" class="form-entry">
-    <view class="form-entry-title">渐晕强度</view>
-    <slider bindchange="changeVignetteIntensity" value="{{vignetteIntensity}}" min="{{0}}" max="{{8}}" step="{{0.1}}"></slider>
-  </view>
-  <view wx:if="{{type == 2}}" class="form-entry">
-    <view class="form-entry-title">渐晕平滑</view>
-    <slider bindchange="changeVignetteSmoothness" value="{{vignetteSmoothness}}" min="{{0}}" max="{{8}}" step="{{0.1}}"></slider>
-  </view>
-  <view wx:if="{{type == 2}}" class="form-entry">
-    <view class="form-entry-title">渐晕圆度</view>
-    <slider bindchange="changeVignetteRoundness" value="{{vignetteRoundness}}"  min="{{0}}" max="{{1}}" step="{{0.1}}"></slider>
-  </view>
-  <view wx:if="{{type == 1}}" class="form-entry">
-    <view class="form-entry-title">泛光半径</view>
-    <slider bindchange="changeBloomRadius" value="{{bloomRadius}}"></slider>
-  </view>
-  <view wx:if="{{type == 1}}" class="form-entry">
-    <view class="form-entry-title">泛光强度</view>
-    <slider bindchange="changeBloomIntensity" max="5" value="2" step="0.1" value="{{bloomIntensity}}"></slider>
-  </view>
-  <view wx:if="{{type == 1}}" class="form-entry">
-    <view class="form-entry-title">泛光阈值</view>
-    <slider bindchange="changeBloomThreshold" max="2" value="0.5" step="0.1" value="{{bloomThreshold}}"></slider>
-  </view>
-  <view wx:if="{{type == 3}}" class="form-entry">
-    <view class="form-entry-title">开启FXAA</view>
-    <switch checked="{{fxaaEnabled}}" bindchange="switchFXAA"/>
-  </view>
-</xr-demo-viewer>

+ 0 - 19
miniprogram/pages/basic/scene-basic-postprocessing/index.wxss

@@ -1,19 +0,0 @@
-.form-entry {
-    margin: 15px;
-}
-
-.radio-item {
-  margin-right: 3%;
-}
-
-.form-entry-title {
-    margin-bottom: 10px;
-}
-
-.divider {
-  width: 20%;
-  height: 2px;
-  background-color: rgb(230, 230, 230);
-  /* margin-left: 15px; */
-  margin: 0 auto 0 auto;
-}

+ 0 - 11
miniprogram/pages/basic/scene-basic-render-texture/index.js

@@ -1,11 +0,0 @@
-var sceneReadyBehavior = require('../../behavior-scene/scene-ready');
-var handleDecodedXML = require('../../behavior-scene/util').handleDecodedXML;
-
-var xmlCode = ``;
-
-Page({
-  behaviors:[sceneReadyBehavior],
-  data: {
-    xmlCode: '',
-  }
-});

+ 0 - 7
miniprogram/pages/basic/scene-basic-render-texture/index.json

@@ -1,7 +0,0 @@
-{
-  "usingComponents": {
-    "xr-demo-viewer": "../../../components/xr-demo-viewer/index",
-    "xr-basic-render-texture": "../../../components/xr-basic-render-texture/index"
-  },
-  "disableScroll": true
-}

+ 0 - 13
miniprogram/pages/basic/scene-basic-render-texture/index.wxml

@@ -1,13 +0,0 @@
-<xr-demo-viewer
-  title="RenderTexture案例"
-  intro="使用`xr-asset-render-texture`生成渲染目标。"
-  code="{{xmlCode}}"
->
-  <xr-basic-render-texture
-    disable-scroll
-    id="main-frame"
-    width="{{renderWidth}}"
-    height="{{renderHeight}}"
-    style="width:{{width}}px;height:{{height}}px;top:{{top}}px;left:{{left}}px;display:block;"
-  />
-</xr-demo-viewer>

+ 0 - 0
miniprogram/pages/basic/scene-basic-render-texture/index.wxss


+ 0 - 60
miniprogram/pages/basic/scene-basic-shadow/index.js

@@ -1,60 +0,0 @@
-var sceneReadyBehavior = require('../../behavior-scene/scene-ready');
-var handleDecodedXML = require('../../behavior-scene/util').handleDecodedXML;
-var escapeMarkup = require('../../behavior-scene/util').escapeMarkup;
-
-var xmlCode = escapeMarkup(`<xr-scene id="xr-scene" bind:ready="handleReady" bind:tick="handleTick">
-<xr-shadow id="shadow-root"></xr-shadow>
-</xr-scene>`);
-var jsCode = `
-...<br>
-addOne() {
-  <div class="ml20">
-  const xrFrameSystem = wx.getXrFrameSystem();<br>
-  const pos = [Math.random(), Math.random(), Math.random()].map(v => (v * 2 - 1) * 6);<br>
-
-  const gltfElement = this.scene.createElement(xrFrameSystem.XRGLTF);<br>
-  this.shadowRoot.addChild(gltfElement);<br>
-  gltfElement.getComponent(xrFrameSystem.Transform).position.setArray(pos);<br>
-  gltfElement.getComponent(xrFrameSystem.GLTF).setData({model: this.gltfModle});<br>
-
-  this.meshList.push(gltfElement);<br>
-  </div>
-},
-removeOne() {
-  <div class="ml20">
-  const element = this.meshList.pop();<br>
-  if (element) {<br>
-    this.shadowRoot.removeChild(element);
-  }
-  </div>
-},
-handleTick: function({detail}) {
-  <div class="ml20">
-  const {el, value} = detail;
-  </div>
-},<br>
-...
-`;
-Page({
-  behaviors:[sceneReadyBehavior],
-  data: {
-    xmlCode: '<div class="codeWrap">' + handleDecodedXML(xmlCode) + '</div>',
-    jsCode:  jsCode,
-    meshCount: 0
-  },
-  handleIncMeshCount: function() {
-    if (this.data.meshCount > 16) {
-      return;
-    }
-
-    this.setData({meshCount: this.data.meshCount + 1});
-  },
-  handleDecMeshCount: function() {
-    if (this.data.meshCount <= 0) {
-      return;
-    }
-
-    this.setData({meshCount: this.data.meshCount - 1});
-  }
-});
-

+ 0 - 7
miniprogram/pages/basic/scene-basic-shadow/index.json

@@ -1,7 +0,0 @@
-{
-  "usingComponents": {
-    "xr-demo-viewer": "../../../components/xr-demo-viewer/index",
-    "xr-basic-shadow": "../../../components/xr-basic-shadow/index"
-  },
-  "disableScroll": true
-}

+ 0 - 20
miniprogram/pages/basic/scene-basic-shadow/index.wxml

@@ -1,20 +0,0 @@
-<xr-demo-viewer
-  title="ShadowNode案例"
-  intro="可以使用xml中的xr-shadow节点,来动态在其下添加节点,以及用代码加载资源"
-  code="{{xmlCode}}"
-  js="{{jsCode}}"
->
-  <xr-basic-shadow
-    disable-scroll
-    id="main-frame"
-    width="{{renderWidth}}"
-    height="{{renderHeight}}"
-    style="width:{{width}}px;height:{{height}}px;top:{{top}}px;left:{{left}}px;display:block;"
-    meshCount="{{meshCount}}"
-  />
-
-  <view class="button-wrap">
-    <button class="change-button" bindtap="handleIncMeshCount">增加一个模型</button>
-    <button class="change-button" bindtap="handleDecMeshCount">减少一个模型</button>
-  </view>
-</xr-demo-viewer>

+ 0 - 11
miniprogram/pages/basic/scene-basic-shadow/index.wxss

@@ -1,11 +0,0 @@
-.button-wrap {
-  display: flex;
-}
-
-.change-button {
-  background-color: #000;
-  color: #fff;
-  font-size: 26rpx;
-  margin-top: 20rpx;
-  padding: 20rpx 0;
-}

+ 0 - 76
miniprogram/pages/basic/scene-basic-share/index.js

@@ -1,76 +0,0 @@
-var sceneReadyBehavior = require('../../behavior-scene/scene-ready');
-Page({
-  behaviors:[sceneReadyBehavior],
-  data: {
-    captureState: 0,
-    recordState: 0,
-    captureQuality: 0.8,
-    captureType: 'jpg',
-    recordFPS: 30,
-    recordScale: 1,
-    recordWidth: 0,
-    recordHeight: 0,
-    recordBPS: 1000,
-    sceneWidth: 0,
-    sceneHeight: 0
-  },
-  handleReady: function({detail}) {
-    this.setData({
-      sceneWidth: detail.width,
-      sceneHeight: detail.height,
-      recordWidth: detail.width,
-      recordHeight: detail.height,
-    });
-  },
-  changeCaptureState(e) {
-    if (this.data.recordState) {
-      wx.showToast({
-        title: '录屏中不允许!',
-      });
-      return;
-    }
-
-    if (this.data.captureState) {
-      wx.showToast({
-        title: '等待上次完成!',
-      });
-      return;
-    }
-
-    this.setData({captureState: 1});
-    // hack,其实应该等待异步方法完成
-    setTimeout(() => {
-      this.setData({captureState: 0});
-    }, 1000);
-  },
-  changeRecordState(e) {
-    this.setData({recordState: this.data.recordState ? 0 : 1});
-  },
-  changeCaptureType(e) {
-    this.setData({captureType: e.detail.value});
-  },
-  changeCaptureQuality(e) {
-    this.setData({
-      captureQuality: e.detail.value
-    });
-  },
-  changeRecordFPS(e) {
-    this.setData({
-      recordFPS: e.detail.value
-    });
-  },
-  changeRecordBPS(e) {
-    this.setData({
-      recordBPS: e.detail.value
-    });
-  },
-  changeRecordScale(e) {
-    const scale = e.detail.value;
-    this.setData({
-      recordScale: scale,
-      recordWidth: ~~(this.data.sceneWidth * scale),
-      recordHeight: ~~(this.data.sceneHeight * scale),
-    });
-  }
-});
-

+ 0 - 7
miniprogram/pages/basic/scene-basic-share/index.json

@@ -1,7 +0,0 @@
-{
-  "usingComponents": {
-    "xr-demo-viewer": "../../../components/xr-demo-viewer/index",
-    "xr-basic-share": "../../../components/xr-basic-share/index"
-  },
-  "disableScroll": true
-}

+ 0 - 54
miniprogram/pages/basic/scene-basic-share/index.wxml

@@ -1,54 +0,0 @@
-<xr-demo-viewer
-  title="录屏和截屏"
-  intro="展示了如何配置并截屏/录屏。"
-  code=""
->
-  <xr-basic-share
-    disable-scroll
-    id="main-frame"
-    width="{{renderWidth}}"
-    height="{{renderHeight}}"
-    style="width:{{width}}px;height:{{height}}px;top:{{top}}px;left:{{left}}px;display:block;"
-    bind:sceneReady="handleReady"
-
-    captureState="{{captureState}}"
-    recordState="{{recordState}}"
-    captureType="{{captureType}}"
-    captureQuality="{{captureQuality}}"
-    recordFPS="{{recordFPS}}"
-    recordBPS="{{recordBPS}}"
-    recordWidth="{{recordWidth}}"
-    recordHeight="{{recordHeight}}"
-  />
-  <view class="button-wrap">
-    <button class="action-button" bindtap="changeCaptureState">截屏分享</button>
-    <button class="action-button" bindtap="changeRecordState">{{recordState == 1 ? '停止录屏' : '启动录屏'}}</button>
-  </view>
-
-  <view class="form-entry">
-    <view class="form-entry-title">截频格式</view>
-    <radio-group name="pp-type" bindchange="changeCaptureType">
-      <label class="radio-item"><radio value="jpg" checked />JPG</label>
-      <label class="radio-item"><radio value="png"/>PNG</label>
-    </radio-group>
-  </view>
-  <view class="form-entry">
-    <view class="form-entry-title">截频质量</view>
-    <slider show-value bindchange="changeCaptureQuality" value="{{captureQuality}}" min="{{0.5}}" max="{{1}}" step="{{0.1}}"></slider>
-  </view>
-
-  <view class="form-entry">
-    <view class="form-entry-title">录屏FPS</view>
-    <slider show-value bindchange="changeRecordFPS" value="{{recordFPS}}" min="{{10}}" max="{{60}}" step="{{10}}"></slider>
-  </view>
-
-  <view class="form-entry">
-    <view class="form-entry-title">录屏尺寸系数</view>
-    <slider show-value bindchange="changeRecordScale" value="{{recordScale}}" min="{{0.5}}" max="{{1}}" step="{{0.1}}"></slider>
-  </view>
-
-  <view class="form-entry">
-    <view class="form-entry-title">录屏BPS</view>
-    <slider show-value bindchange="changeRecordBPS" value="{{recordBPS}}" min="{{500}}" max="{{2000}}" step="{{100}}"></slider>
-  </view>
-</xr-demo-viewer>

+ 0 - 24
miniprogram/pages/basic/scene-basic-share/index.wxss

@@ -1,24 +0,0 @@
-.form-entry {
-    margin: 15px;
-}
-
-.radio-item {
-  margin-right: 3%;
-}
-
-.form-entry-title {
-    margin-bottom: 10px;
-}
-
-.button-wrap {
-  display: flex;
-}
-
-.action-button {
-  background-color: #000;
-  color: #fff;
-  font-size: 26rpx;
-  margin-top: 20rpx;
-  padding: 20rpx 0;
-}
-

+ 0 - 34
miniprogram/pages/basic/scene-basic-touch/index.js

@@ -1,34 +0,0 @@
-var sceneReadyBehavior = require('../../behavior-scene/scene-ready');
-var handleDecodedXML = require('../../behavior-scene/util').handleDecodedXML;
-var escapeMarkup = require('../../behavior-scene/util').escapeMarkup;
-
-var xmlCode = escapeMarkup(`<xr-scene id="xr-scene" bind:tick="handleTick" bind:ready="handleReady">
-<xr-assets bind:progress="handleAssetsProgress" bind:loaded="handleAssetsLoaded">
-  <xr-asset-load type="texture" asset-id="earth-texture" src="..." />
-  <xr-asset-load type="texture" asset-id="moon-texture" src="..." />
-  <xr-asset-material asset-id="standard-mat" effect="standard" />
-</xr-assets>
-<xr-node>
-  <xr-mesh node-id="mesh-earth" position="0 0 0" scale="8 8 8" geometry="sphere" material="standard-mat" uniforms="u_baseColorMap: earth-texture" bind:dragShape="handleEarthRotation" sphere-shape></xr-mesh>
-  <xr-mesh node-id="mesh-moon" position="10 0 0" scale="1.5 1.5 1.5" rotation="0 90 0" geometry="sphere" material="standard-mat" uniforms="u_baseColorMap: moon-texture" bind:dragShape="handleDragMoon" bind:touchShape="handleTouchMoon" bind:untouchShape="handleUntouchMoon" sphere-shape="radius: 1.5">
-  </xr-mesh>
-  <xr-camera
-    id="camera" node-id="camera" position="0 20 -35" clear-color="0 0 0 1"
-    target="mesh-earth"
-  ></xr-camera>
-</xr-node>
-<xr-node node-id="lights">
-  <xr-light type="ambient" color="1 1 1" intensity="0.1" />
-  <xr-light id="directional-light" type="directional" rotation="0 60 0" color="1 1 1" intensity="5" />
-</xr-node>
-</xr-scene>`);
-
-var jsCode = "not implemented";
-
-Page({
-  behaviors:[sceneReadyBehavior],
-  data: {
-    xmlCode: '<div class="codeWrap">' + handleDecodedXML(xmlCode) + '</div>',
-    jsCode: jsCode
-  }
-});

+ 0 - 7
miniprogram/pages/basic/scene-basic-touch/index.json

@@ -1,7 +0,0 @@
-{
-  "usingComponents": {
-    "xr-demo-viewer": "../../../components/xr-demo-viewer/index",
-    "xr-basic-touch": "../../../components/xr-basic-touch/index"
-  },
-  "disableScroll": true
-}

+ 0 - 14
miniprogram/pages/basic/scene-basic-touch/index.wxml

@@ -1,14 +0,0 @@
-<xr-demo-viewer
-  title="交互案例"
-  intro="简易地月模型。拖拽地球可使其旋转;拖拽月球可使其移动。"
-  code="{{xmlCode}}"
->
-  <xr-basic-touch
-    disable-scroll
-    id="main-frame"
-    width="{{renderWidth}}"
-    height="{{renderHeight}}"
-    style="width:{{width}}px;height:{{height}}px;top:{{top}}px;left:{{left}}px;display:block;"
-    a="123"
-  />
-</xr-demo-viewer>

+ 0 - 0
miniprogram/pages/basic/scene-basic-touch/index.wxss


+ 0 - 11
miniprogram/pages/basic/scene-basic-video/index.js

@@ -1,11 +0,0 @@
-var sceneReadyBehavior = require('../../behavior-scene/scene-ready');
-var handleDecodedXML = require('../../behavior-scene/util').handleDecodedXML;
-
-var xmlCode = ``;
-
-Page({
-  behaviors:[sceneReadyBehavior],
-  data: {
-    xmlCode: '',
-  }
-});

+ 0 - 7
miniprogram/pages/basic/scene-basic-video/index.json

@@ -1,7 +0,0 @@
-{
-  "usingComponents": {
-    "xr-demo-viewer": "../../../components/xr-demo-viewer/index",
-    "xr-basic-video": "../../../components/xr-basic-video/index"
-  },
-  "disableScroll": true
-}

+ 0 - 14
miniprogram/pages/basic/scene-basic-video/index.wxml

@@ -1,14 +0,0 @@
-<xr-demo-viewer
-  title="视频纹理案例"
-  intro="使用视频纹理,开始播放后,点击立方体可以暂停/唤醒播放。作为uniform使用,也可用于天空盒,注意使用时id为`video-${asset-id}`"
-  hint="正式版本以及`pause`/`resume`方法,在基础库 v2.32.0 及以上支持。"
-  code="{{xmlCode}}"
->
-  <xr-basic-video
-    disable-scroll
-    id="main-frame"
-    width="{{renderWidth}}"
-    height="{{renderHeight}}"
-    style="width:{{width}}px;height:{{height}}px;top:{{top}}px;left:{{left}}px;display:block;"
-  />
-</xr-demo-viewer>

+ 0 - 0
miniprogram/pages/basic/scene-basic-video/index.wxss


+ 0 - 23
miniprogram/pages/basic/scene-basic-visible-layer/index.js

@@ -1,23 +0,0 @@
-var sceneReadyBehavior = require('../../behavior-scene/scene-ready');
-var handleDecodedXML = require('../../behavior-scene/util').handleDecodedXML;
-
-var xmlCode = ``;
-
-Page({
-  behaviors:[sceneReadyBehavior],
-  data: {
-    xmlCode: '',
-    visibleIndex: 1,
-    cullMask: 0b011
-  },
-  handleChangeVisible() {
-    this.setData({
-      visibleIndex: 3 - this.data.visibleIndex
-    });
-  },
-  handleChangeCullMask() {
-    this.setData({
-      cullMask: ((this.data.cullMask ^ (((this.data.cullMask & 0b100) >> 2) * 0b111)) << 1) | 0b1
-    });
-  }
-});

+ 0 - 7
miniprogram/pages/basic/scene-basic-visible-layer/index.json

@@ -1,7 +0,0 @@
-{
-  "usingComponents": {
-    "xr-demo-viewer": "../../../components/xr-demo-viewer/index",
-    "xr-basic-visible-layer": "../../../components/xr-basic-visible-layer/index"
-  },
-  "disableScroll": true
-}

Some files were not shown because too many files changed in this diff