
threejs
文章平均质量分 90
Beam007
这个作者很懒,什么都没留下…
展开
-
EffectComposer、OutlinePass特效引发的问题和卡顿
给场景中的设备描边关键代码import { EffectComposer } from 'three/examples/jsm/postprocessing/EffectComposer'let composer = nulllet outlinePassRing = null // 光圈composer = new EffectComposer(renderer)outlinePassRing = new OutlinePass(new THREE.Vector2(div3D.clientW原创 2020-11-26 10:00:59 · 3447 阅读 · 21 评论 -
three.js监听鼠标点击事件
优化了好几次的threejs中鼠标点击事件,直接上代码。// 监听鼠标点击事件 展示详情页面const onMouseClick = (event) => { let raycaster = new THREE.Raycaster() let mouse = new THREE.Vector2() // 通过鼠标点击的位置计算出raycaster所需要的点的位置,以屏幕中心为原点,值的范围为-1到1. let div3DLeft = div3D.getBoundingClientR原创 2020-06-18 16:50:53 · 8878 阅读 · 18 评论 -
blender物体缩放倍数和保存时物体炸开
问题一:物体缩放倍数奇奇怪怪有时候看着两个blender的模型场景,比如一栋楼。我复制A.beldner里面的门粘贴到B.blender里面来,啥也看不到,通过按【S】进行缩放之后看到了,可是为啥会放大呢?有时候将blender导出的A.glb通过threejs导入代码,获取其中门的坐标,发现高宽好大呀,然后scale缩小了好多倍呀,不方便代码操作定位啊。难怪当初复制过来,突然会变得巨大,那咋搞呢?注意了:按【A】全选物体,【Ctrl+A】选择全部变换,所有物体的原点就回到了世界坐标原点,这样才统一原创 2020-06-18 16:15:30 · 7730 阅读 · 2 评论 -
requestAnimationFrame函数使用的注意点
官方说明文档:https://developer.mozilla.org/zh-CN/docs/Web/API/Window/requestAnimationFrame注意点:1、有开启就记得关闭let stop = nullstop = requestAnimationFrame(this.animate)window.cancelAnimationFrame(stop) // 取消动画2、传递了时间参数默认传递时间参数timestamprequestAnimationFrame(lo原创 2020-05-11 15:57:19 · 1505 阅读 · 0 评论 -
tween动画控制threejs的相机时的问题 回调函数重复执行
问题使用tween动画,在其执行完成后tween.onComplete中调用回调函数,发现回调函数执行有误或重复执行。关键代码this.inspectCamera({x: 2.9, y: 0.6, z: 7}, {x: 2.9, y: 0.6, z: 1.6}, this.inspectCurveList())inspectCamera (position, target, callBa...原创 2020-03-19 15:35:40 · 1668 阅读 · 0 评论 -
three.js镜头追踪的移动效果
达到效果指定一条折线路径,镜头沿着路径向前移动,类似第一视角走在当前路径上。实现思路很简单画一条折线路径,将镜头位置动态绑定在当前路径上,同时设置镜头朝向路径正前方。实现难点1、折现变曲线画一条折线路径,通常将每一个转折点标出来画出的THREE.Line,会变成曲线。难点解答:1.1、以转折点分隔,一段一段的直线来画,上一个线段的终点是下一个线段的起点。1.2、画一条折线,在转折...原创 2020-01-21 17:10:01 · 8616 阅读 · 6 评论 -
新版本three.js在vue项目中的引入
说明之前的笔记,引入three.js相关包那是相当的麻烦,各种引入方式和配置,还有各种报错和提示。新版本的three.js对其变量的引入和暴露进行了优化,可以很方便的从jsm文件夹下引入相关包了。原版本例子import * as THREE from 'three'import OrbitControls from 'three/examples/js/controls/OrbitCon...原创 2020-01-21 15:26:51 · 4440 阅读 · 5 评论 -
three.js场景的背景旋转主体不动
方法一 创建两个THREE对象分层控制两个DIV,创建两个THREE对象,完全弄出两套<div id="divBG"></div><div id="divZT"></div>divBG,绑定创建THREE对象1,在场景中添加背景图片,设置controls的自动旋转,关键代码如下:initScene () { // 场景作为一个容器 ...原创 2019-12-18 17:46:04 · 3482 阅读 · 1 评论 -
vue中使用threejs的CSS2DRenderer的问题
引用与使用1、配置webpack.base.conf文件往CSS2DRenderer中导入THREE,配置webpack.base.conf文件如下:{ test: require.resolve("three/examples/js/renderers/CSS2DRenderer"), use: "imports-loader?THREE=three"}说明:当报错THREE未...原创 2019-12-06 13:26:45 · 7710 阅读 · 0 评论 -
使用ShaderMaterial对导入的模型贴皮肤失败
关键代码let uniformsBuild = nulllet clockBuild = new THREE.Clock()uniformsBuild = { time: { value: 1.0 }}let material = new THREE.ShaderMaterial({ uniforms: uniformsBuild, vertexShader: document....原创 2019-12-06 11:32:56 · 619 阅读 · 0 评论 -
切换慢镜头tween.js的使用
普通镜头切换设置相机位置和观察方向即可:camera.position.set(aim.x, aim.y + 2, aim.z + 4)// camera.lookAt设置与OrbitControls冲突需要设置controls.target// camera.lookAt(new THREE.Vector3(aim.x, 0, 0))controls.target = new THRE......原创 2019-08-30 17:14:17 · 1210 阅读 · 0 评论 -
three.js报错集锦
1、KeyframeTrack 帧动画报错:THREE.Matrix3: .getInverse() can’t invert matrix, determinant is 0代码:// 此处是一个缩放动画let times = [0, 1]let scales = [0, 0, 0, 1, 1, 1]let scaleKeyframeTrack = new THREE.Keyfra...原创 2019-07-23 17:39:42 · 6817 阅读 · 0 评论 -
three.js在同一个div下切换不同模型挂载的问题
需求同一个div下,通过查询不同的设备展示不同的模型。实现关键代码如下:<div id="equip-model"></div>// 加载three.jsneedReloadThreeJs (devtype) { div3D = document.getElementById('equip-model') this.initScene() // 场景 ...原创 2019-05-15 11:03:46 · 3650 阅读 · 17 评论 -
VUE中使用three.js、通过OrbitControls控制模型、通过GLTFLoader导入外部模型
前言网上大多数都是导入three.js简单使用,下载并引入three.js使用THREE对象即可:npm install three --save // 下载安装的命令import THREE from ‘three’ // 导入THREE对象this.scene = new THREE.Scene() // 调用对象中的方法创建场景基本上都不涉及控制和模型导入,只能自己瞎捉摸了好久...原创 2019-02-01 15:42:53 · 13991 阅读 · 25 评论 -
blender的使用和常见问题
常用快捷键全选:【A】透视:【Z】删除:【X】模型角度:【1】沿x轴方向看、【3】沿y轴方向看、【7】沿z轴方向看选择与确认:【鼠标右键】选择、【鼠标左键】确认多选:【shift】+【鼠标右键】选取问题记录问题一:.obj格式的模型打开,缩小后部分不显示。原因:因为模型太大,缩小后不在可视范围内。解决:全选【A】-缩放【S】-移动鼠标对模型进行大小缩放(鼠标从远处移动至坐标轴原.........原创 2019-04-30 15:40:54 · 34559 阅读 · 0 评论