当前位置: 首页 > news >正文

threejs 微信小程序原生版本的使用 obj模型的加载

直接上代码,

<canvas class="webgl" type="webgl" id="gl" bindtouchstart="onTX" bindtouchend="onTX" bindtouchmove="onTX" style="width:100vw;height:90vh"></canvas>
const common_vendor = require("../../common/vendor.js");Page({onLoad() {const query = common_vendor.index.createSelectorQuery().in(this);query.select("#gl").boundingClientRect((x) => {this.win = x;}).exec();common_vendor.index.createSelectorQuery().select("#gl").node().exec((res) => {const canvas = this.canvas = res[0].node;this.platform = new common_vendor.WechatPlatform(canvas);common_vendor.PLATFORM.set(this.platform);const scene = this.scene = new common_vendor.Scene();scene.background = new common_vendor.Color(16777200);scene.add(new common_vendor.AmbientLight(16777215, 1));scene.add(new common_vendor.DirectionalLight(16777215, 1));const camera = this.camera = new common_vendor.PerspectiveCamera(75, canvas.width / canvas.height, 0.1, 1e3);camera.position.set(0, 7, 15);const renderer = new common_vendor.WebGL1Renderer({ canvas, antialias: true, alpha: true });renderer.outputEncoding = common_vendor.sRGBEncoding;renderer.setSize(canvas.width, canvas.height);renderer.setPixelRatio(common_vendor.$window.devicePixelRatio);const controls = new common_vendor.OrbitControls(camera, canvas);controls.enableDamping = true;controls.dampingFactor = 0.25;controls.enableZoom = true;var textureLoader = new common_vendor.TextureLoader();var texture = textureLoader.load("https://files.ifok.cn/m2photo");texture.minFilter = common_vendor.LinearFilter;var bump = textureLoader.load("https://files.ifok.cn/security_sign/design_fabric_skin/fabric004.png");const loader = new common_vendor.OBJLoader();loader.load("https://files.ifok.cn/m2_obj/x.obj", (object) => {object.traverse((child) => {child.material = new common_vendor.MeshStandardMaterial({color: 11119017,side: common_vendor.DoubleSide,map: texture,bumpMap: bump,bumpScale: 2});});object.scale.set(0.1, 0.1, 0.1);object.position.set(0, -10, 0);scene.add(object);this.clo_object = object;}, () => {}, () => {});const axesHelper = new common_vendor.AxesHelper(10);scene.add(axesHelper);this.raycaster = new common_vendor.Raycaster();this.mouse = new common_vendor.Vector2();const render = () => {if (!this.disposing)this.frameId = common_vendor.$requestAnimationFrame(render);controls.update();renderer.render(scene, camera);};render();});},onTX(e) {this.platform.dispatchTouchEvent(e);}
})

我使用的是three-platformize,可以通过npm install的方式直接安装的,小程序原生的npm我还没有试过,加载进去后用THREE替换掉common_vendor即可,加载器那里需要导入OBJLoader,然后就可以直接用了

相关文章:

  • 学会python——用python制作一个登录和注册窗口(python实例十八)
  • python-Django项目:图书后台管理系统
  • SpringMVC之文件上传下载
  • spring6框架解析(by尚硅谷)
  • 降级Spring Boot版本
  • Generative Modeling by Estimating Gradients of the Data Distribution
  • ChatGPT-5:开创对话式AI的新纪元
  • 【MindSpore学习打卡】应用实践-计算机视觉-SSD目标检测:从理论到实现
  • 2024年过半,新能源车谁在掉链子?
  • TP8/6 子域名绑定应用
  • docker介绍与详细安装
  • Docker的基本介绍
  • docker compose方式部署Zabbix 7.0 LTS
  • 3.Charles抓包工具学习
  • 掌握命令行中pip源的切换:提升Python包管理效率
  • 2019年如何成为全栈工程师?
  • Docker: 容器互访的三种方式
  • IDEA 插件开发入门教程
  • JS+CSS实现数字滚动
  • NSTimer学习笔记
  • session共享问题解决方案
  • 两列自适应布局方案整理
  • 马上搞懂 GeoJSON
  • 浅析微信支付:申请退款、退款回调接口、查询退款
  • 首页查询功能的一次实现过程
  • 算法-图和图算法
  • 一个JAVA程序员成长之路分享
  • 主流的CSS水平和垂直居中技术大全
  • 长三角G60科创走廊智能驾驶产业联盟揭牌成立,近80家企业助力智能驾驶行业发展 ...
  • 通过调用文摘列表API获取文摘
  • 昨天1024程序员节,我故意写了个死循环~
  • ​力扣解法汇总1802. 有界数组中指定下标处的最大值
  • # SpringBoot 如何让指定的Bean先加载
  • ### Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLTr
  • #php的pecl工具#
  • %3cli%3e连接html页面,html+canvas实现屏幕截取
  • (175)FPGA门控时钟技术
  • (附源码)计算机毕业设计ssm本地美食推荐平台
  • (六)c52学习之旅-独立按键
  • (十五)使用Nexus创建Maven私服
  • (数位dp) 算法竞赛入门到进阶 书本题集
  • (转)负载均衡,回话保持,cookie
  • (最完美)小米手机6X的Usb调试模式在哪里打开的流程
  • .NET 8.0 发布到 IIS
  • .net core webapi 大文件上传到wwwroot文件夹
  • .NET Core 版本不支持的问题
  • .NET Core 中的路径问题
  • .NET Framework与.NET Framework SDK有什么不同?
  • .NET MVC 验证码
  • .net安装_还在用第三方安装.NET?Win10自带.NET3.5安装
  • .secret勒索病毒数据恢复|金蝶、用友、管家婆、OA、速达、ERP等软件数据库恢复
  • @Autowired @Resource @Qualifier的区别
  • @Autowired 与@Resource的区别
  • @cacheable 是否缓存成功_Spring Cache缓存注解
  • [Android] Binder 里的 Service 和 Interface 分别是什么