All Projects → sanyuered → Wechat Miniprogram Ar 3d

sanyuered / Wechat Miniprogram Ar 3d

Licence: mit
A WeChat MiniProgram 3D that includes a Panorama Viewer and a 3D Viewer using the device orientation control.

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Wechat Miniprogram Ar 3d

Mpvue Animated Number
微信小程序 mpvue 数字更新滚动动画组件 / An animated number component for mpvue
Stars: ✭ 33 (-58.75%)
Mutual labels:  wechat-mini-program, wechat-app, wechat
Wechat Miniprogram Webar
A WeChat MiniProgram Image AR using computer vision. No OpenCV, No Deep Learning. Only JavaScript Implementation.
Stars: ✭ 163 (+103.75%)
Mutual labels:  wechat-mini-program, wechat, ar
Threejs Example For Miniprogram
这是一个 three.js 在微信小程序里的使用示例
Stars: ✭ 96 (+20%)
Mutual labels:  wechat-mini-program, threejs, wechat
Wepy Mall
微信小程序--基于wepy 商城(微店)微信小程序 欢迎学习交流
Stars: ✭ 3,224 (+3930%)
Mutual labels:  wechat-mini-program, wechat-app, wechat
Scuplus Wechat
We川大小程序[scuplus] 使用wepy开发的完善的校园综合小程序, 40+页面,前后端开源,包括成绩、课表、失物招领、图书馆、新闻资讯等等常见校园场景功能
Stars: ✭ 545 (+581.25%)
Mutual labels:  wechat-mini-program, wechat-app, wechat
Masterwechatapp
『微信小程序』优秀教程、轮子、开源项目 资源汇总
Stars: ✭ 826 (+932.5%)
Mutual labels:  wechat-mini-program, wechat-app, wechat
Rktk Wxx
软考题库微信小程序 ENJOY
Stars: ✭ 131 (+63.75%)
Mutual labels:  wechat-mini-program, wechat-app, wechat
Wechat Mini Shop
微信小程序商城,微信小程序微店,接口基于FaShop
Stars: ✭ 328 (+310%)
Mutual labels:  wechat-mini-program, wechat-app, wechat
Planmaster
套餐助手:手机套餐对比选购小程序
Stars: ✭ 487 (+508.75%)
Mutual labels:  wechat-mini-program, wechat-app, wechat
Weixin Java Miniapp Demo
基于Spring Boot 和 WxJava 实现的微信小程序Java后端Demo
Stars: ✭ 779 (+873.75%)
Mutual labels:  wechat-mini-program, wechat-app, wechat
Supermarketmini
基于wepy2.x 仿苏宁小店小程序,API采用go开发(已开源),项目正在开发中,欢迎加群:160301726
Stars: ✭ 73 (-8.75%)
Mutual labels:  wechat-mini-program, wechat-app, wechat
Taro
开放式跨端跨框架解决方案,支持使用 React/Vue/Nerv 等框架来开发微信/京东/百度/支付宝/字节跳动/ QQ 小程序/H5/React Native 等应用。 https://taro.zone/
Stars: ✭ 30,230 (+37687.5%)
Mutual labels:  wechat-mini-program, wechat
Expo Chroma Key Camera
Live green-screen effect with Expo and THREE.js
Stars: ✭ 28 (-65%)
Mutual labels:  threejs, ar
Agora Miniapp Tutorial
Hello world for Agora SDK running in https://en.wikipedia.org/wiki/WeChat#WeChat_Mini_Program
Stars: ✭ 75 (-6.25%)
Mutual labels:  wechat-mini-program, wechat
Wechatmusicplayer
微信小程序:音乐播放器
Stars: ✭ 13 (-83.75%)
Mutual labels:  wechat-app, wechat
Anka Tracker
Miniprogram user behavior tracking library. Supports task queues, automatically suspended and retry strategies.
Stars: ✭ 29 (-63.75%)
Mutual labels:  wechat-mini-program, wechat
Mina Webpack
🍱 Mina single-file-component meets Webpack
Stars: ✭ 77 (-3.75%)
Mutual labels:  wechat-mini-program, wechat
Tom Vpr
how does voiceprint recognition work in wechat page
Stars: ✭ 37 (-53.75%)
Mutual labels:  wechat-app, wechat
Wxapp Img Loader
适用于微信小程序的图片预加载组件
Stars: ✭ 1,049 (+1211.25%)
Mutual labels:  wechat-app, wechat
Taro scaffold
基于 Taro / dva / redux-saga / react 的微信小程序脚手架,同时集成了 sprite 。
Stars: ✭ 24 (-70%)
Mutual labels:  wechat-mini-program, wechat

Chinese README

Updated

Date    Update
2021-02-25 New: Scan a QR code to update the url of the gltf model. Update: 1. add a directional light for the model viewer to make the model have shadows. 2. add the device pixel ratio for the panorama viewer to make the picture clear.
2019-10-31 Updated: Use a new Gltf loader modified by "wechat-miniprogram". Support .glb format without textures and .gltf format.
2019-09-17 New: A WeChat MiniProgram 3D that includes a Panorama Viewer and a 3D Viewer using the device orientation control.

Introduction of WeChat MiniProgram 3D with THREEJS

Three.js is a JavaScript 3D library.

Three.js

There is a WeChat MiniProgram adapted version of Three.js.

threejs-miniprogram

Index Page

avatar

3D Viewer Page

avatar

Panorama Viewer

When click the "Panorama" button, a panorama viewer will be showed.

portrait screen

avatar

landscape screen

avatar

When start a device motion, the device orientation control will rotate the screen.

When stop a device motion, use a hand to rotate the screen.

3D Viewer

At first, we enable the "打开调试" button. It is used for loading a model.

avatar

When click the "Model Viewer" button, a 3D viewer will be showed.

avatar

We can rotate the screen by a device orientation control or using my hands.

avatar

Note: 3D Viewer on Android Wechat has no the camera background.

avatar

How to build

The Mini-program depends on a "threejs-miniprogram" npm package.

step 1: npm install

step 2: run "微信开发者工具--工具--构建npm", a folder "miniprogram_npm" will be updated.

The project has included a folder "miniprogram_npm" precompiled.

File: /package.json

  "dependencies": {
    "threejs-miniprogram": "0.0.2"
  }

What changes to GLTFLoader.js

You can search a keyword "2019.9.11 modified" in GLTFLoader.js. The search result is a code modified.

For example, added a export of function "GLTF_Loader". Use the function to set the "THREE" object into the "GLTFLoader.js" module.

File: /utils/GLTFLoader.js

   // 2019.9.11 modified
   // THREE.GLTFLoader = ( function () {
   export function GLTF_Loader(THREE) {

Set your website url of models

The project includes a gltf model that are depolyed on a website. The default value of parameter "modelUrl" is a website url that may be very slow on your network. You can replace the default url with a web site url.

Download models: https://github.com/sanyuered/sanyuered.github.io/tree/master/gltf

    // set your site url of a gltf model
    const modelUrl = 'https://sanyuered.github.io/gltf/robot.glb';
    //const modelUrl = 'http://127.0.0.1/robot.glb';

Known Issues

A part of the demo can not work on Android Wechat.

The functions disabled on Android are below.

file: /package_3d_viewer/utils/cameraBusiness.js

    if (!isAndroid) {
        // init Orthographic Camera
        initBackroundScene();
    }

    if (!isAndroid) {
        // make the Orthographic Camera and the Perspective Camera work together.
        renderer.autoClear = false;
    }
    if (!isAndroid) {
        // render for Orthographic Camera
        if (cameraFrame) {
            planeTexture.image = cameraFrame;
            planeTexture.needsUpdate = true;
            renderer.render(sceneRTT, cameraRTT);
        }
    }
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].