three.js欧拉角和四元数的使用方法
前言这篇郭先生就来说说欧拉角和四元数,欧拉角和四元数的优缺点是老生常谈的话题了,使用条件我就不多说了,我只说一下使用方法。1. 欧拉角(Euler)欧拉角描述一个旋转变换,通过指定轴顺序和其各个轴向上的指定旋转角度来旋转一个物体。下面我们开看看它的方法1. set( x: number, y: number, z: ...
2024-01-10Vue.js中如何实现filters的复用?
例:文字超长后的(ellipsis)省略号, 金额后的(unit)货币单位, 百分比数字后的(percent)百分号?求解:vue.js 2有什么复用方案可用?回答:可以挂载到全局 Vue.filter | API — Vue.js。用法如下:Vue.filter('NumberFormat', function (value) { if (!value) { return '0'...
2024-03-07Three.js - 使用不需要光源的材料加载模型
我目前使用Three.js,版本71。我首先使用搅拌器创建我的模型,然后将它们导出为JSON文件。然后我用THREE.JSONLoader使用加载模型到我的场景如下:Three.js - 使用不需要光源的材料加载模型this.jsonLoader.load(pathToModelFile, function(geometry, materials) { //... }); 的材料列表仅包含THREE.MeshPhongMaterial索引0这种物质...
2024-01-10three.js加载obj模型的实例代码
three.js是一款webGL框架,由于其易用性被广泛应用。如果你要学习webGL,抛弃那些复杂的原生接口从这款框架入手是一个不错的选择。好了,下面通过一段代码给大家介绍three.js加载obj模型,具体代码如下所示:<!DOCTYPE html><html> <head> <script type="text/javascript" src="libs/three.js"></script> <script type="text/ja...
2024-01-10微信小游戏中three.js离屏画布的示例代码
国庆8天长假,重庆之行因故未成,偶得闲,用three.js结合cannon.js写个3D小游戏耍耍。在微信小游戏中,把three.js的3D内容在离屏画布处理,然后复制到在屏画布,方法是:let c_toolbarHeight=140; let sysInfo=wx.getSystemInfoSync();require('./js/libs/weapp-adapter.js');var canvas_webGL=window.canvas;canvas_webGL.width = sysInfo.scre...
2024-01-10关于three.js线上展馆
我想写一个类似于这个线上展馆一样的页面:我目前实现了房间场景的搭建:四面是围墙,中间也是几面墙很粗燥,大牛们别介意,现在的问题是,怎么让图画出现自动出现在紧贴墙壁的位置??我自己所能掌握的知识就是一个一个的确定每一个画框的三维位置,把所有三维位置写成一个数组,再通过...
2024-01-10three.js 将图片马赛克化的示例代码
这篇郭先生来说说BufferGeometry,类型化数组和粒子系统的使用,并且让图片有马赛克效果(同理可以让不清晰的图片清晰化),如图所示1. 解析图片解析图片和上一篇一样initCanvas() { canvas = document.createElement('canvas'); content = canvas.getContext('2d'); canvas.width = 1600; canvas.height = 1200; img = new Image(); img...
2024-01-10three.js着色器材质的内置变量示例详解
什么是着色器?固定渲染管线: ——标准的几何&光照(T&L)管线,功能是固定的,它控制着世界、视、投影变换及固定光照控制和纹理混合。T&L管线可以被渲染状态控制,矩阵,光照和采制参数。如果有了固定渲染管线,编写程序就比较容易了,因为所有的变换都是由固定渲染管线来完成的,但是缺点...
2024-01-10vue中使用raphael.js实现地图绘制
一、效果图二、在vue中引入raphael.jsnpm i raphael -S三、封装一个名为StreetMap的组件,代码如下 1 <template> 2 <div> 3 <div id='streetMap'> 4 <div class="tips" v-show="tipsShow" :style="tipsStyle"> 5 <span v-html="tipsContent"></span> 6 </div> 7 </d...
2024-01-10在node.js中解决承诺之前,then()回调触发
使用node.js版本7.7.2,我要执行一个异步函数,然后在第一个函数完成后执行另一个函数,如下所示:function foo() { return new Promise(function(resolve, reject) { // Do some async stuff console.log('foo is about to resolve'); resolve(); });}function bar(arg) { console.log(arg);}foo().then(b...
2024-01-10three 场景对象可以新增自定义属性吗
如果我给Scene添加一个description属性,但是在后期操作会发现description属性并不存在使用scene.toJSON() 转换 description属性会丢失后来尝试把他转化为字符串的JSON.stringfy(scene) 存储起来,然后在JSON.parse(scene) 发现还是没有description属性,如下图回答目前我没找到直接挂在scene下的属性不被toJSON格式化掉的方法...
2024-01-10three.js 三维模型整个场景数据如何存储到数据库
使用场景:一个场景中可以动态加载10多个模型(或者更多),模型摆放到场景里,每个模型位置,大小,缩放都可以修改,修改完成后,保存整个场景。保存好的多个场景,可以根据场景id 来预览目前存储整个场景的数据到MongoDB数据库里面,但是场景下的glb模型特别大,把所有的数据存储进入,导...
2024-01-10使用 Three.js 制作一百万个字母的动画
我在本文中的目标是以平滑的帧速率在屏幕上绘制一百万个动画字母。 使用现代 GPU 应该可以完成这项任务。 每个字母由两个带纹理的三角形组成,所以我们只讨论每帧 200 万个三角形。如果您来自传统的 JavaScript 动画背景,那么这一切听起来很疯狂。 每帧更新 200 万个三角形绝对不是你今天想用 JavaS...
2024-01-10Three.js 加载三维模型
直接使用three.js编程建模比较麻烦,实际开发的时候往往会借助一些可视化的3D建模工具,比如SolidWorks、Blender、C4D、3Dmax。不同领域的三维软件支持导出的文件有所差异,比如工业设计、机械设计类的三维软件往往支持导入静态的3D模型,游戏开发常常使用的Blender等三维软件,除了静态的三维模型,还...
2024-01-10为什么three.js地图在部署后不显示?
vue项目打包部署之后本地json为什么访问不到?使用three.js画了个中国地图,本人小白也是看大佬源码改的代码。 // 加载地图数据 loadMapData(str) { // https://datav.aliyun.com/portal/school/atlas/area_selector this.resetInitMap() const l...
2024-02-07Three.js 如何使用IFC.js?
https://ifcjs.github.io/info/zh/docs/Hello%20world 文档就在这里了,但是有些细节就对不上了。例如,里面写的是引用一个叫bundle.js的文件,这是我们将用 rollup 制作的应用程序的捆绑文件然后,看到代码是import resolve from "@rollup/plugin-node-resolve";export default {...
2024-03-11vue three.js 结合tween.js 实现动画过渡
参考地址:https://www.jianshu.com/p/d6e3b4b153bbhttps://www.jqhtml.com/10513.html官方文档:https://github.com/tweenjs/tween.js/blob/master/docs/user_guide.md曲线经典讲解:https://www.cnblogs.com/cloudgamer/archive/2009/01/06/tween.html#!commentsthree.js 模型插件、tween.js --过渡动...
2024-01-10Three.js 着色器 纹理贴图映射和彩色图转灰度图
Three.js 网格材质都有一个 map 属性,该属性用来设置网格模型的颜色贴图,渲染器系统会调用网格材质对应的着色器代码解析 map 属性的值进行渲染。本节课通过自定义着色器的纹理贴图代码来展示网格材质 map 属性对应的着色器原理。顶点纹理坐标数据 uv通过 Three.js 的球体、矩形平面、立方体等特定几...
2024-01-10利用three.js画一个3D立体的正方体示例代码
简介three.js 是一款WebGL框架,WebGL可以让我们在canvas上实现3D效果。实现3D效果在国内来说还算是比较新的东西,可供查阅的资料也不多。这篇文章仅是一个入门篇,介绍如何绘制一个3D正方体。Three.js中的基本概念Three.js包含3个基本概念:场景(Scene)、相机(Camera)和渲染器(Renderer)。场景就是需...
2024-01-10Three.js - 为什么这些项目的影子看起来像这样?
我正在学习three.js。Three.js - 为什么这些项目的影子看起来像这样?我举一个例子来练习,但项目的阴影看起来不对或陌生。应该是这样的(这个形象是一个老教程):和代码是这样的:<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/thr...
2024-01-10JS库之Three.js 简易入门教程(详解之一)
开场白webGL可以让我们在canvas上实现3D效果。而three.js是一款webGL框架,由于其易用性被广泛应用。如果你要学习webGL,抛弃那些复杂的原生接口从这款框架入手是一个不错的选择。博主目前也在学习three.js,发现相关资料非常稀少,甚至官方的api文档也非常粗糙,很多效果需要自己慢慢敲代码摸索。所...
2024-01-10Three.js开发实现3D地图的实践过程总结
前言本文主要介绍Three.js的开发基础和基本原理,以及如何实现3D全景图。想在web端实现3D全景图的效果,除了全景图片、WebGL外,还需要处理很多细节。据我所知,目前国外3D全景图比较好的是KrPano,国内很多3D全景服务是在使用krpano的工具。前段时间连续上了一个月班,加班加点完成了一个3D攻坚项...
2024-01-10Three.js 正投影和透视投影
针对不同应用的三维场景需要使用不同的投影方式,比如机械、工业设计领域常常采用正投影(平行投影),游戏场景往往采用透视投影(中心投影)。为了完成三维场景不同的投影方式,three.js封装WebGL API和相关算法,提供了OrthographicCamera、PerspectiveCamera等相机对象。正投影与透视投影生活中的物...
2024-01-10three.js创建图片添加属性报错?
circle可以打印出一个对象,但是我添加position 不行,还会报以下错误function initContent() { circle = createMesh(new THREE.CircleGeometry(circleR, 32)); circle.position.y += 15; scene.add(circle...
2024-02-08vue 中使用three.js
1.使用vue-cli工具创建一个vue项目vue create projectName2.安装three.jsnpm install three -S3.创建index.vue页面在该页面中导入THREE: import * as THREE from 'three'<template> <div class="app-wrap" ref="view"> </div></template><script>import * as THREE from 'three'import { OrbitC...
2024-01-10Three.js 实现虫洞特效
虫洞效果在线预览,在学习之前可以先看一遍具体的视觉效果,有一个感性的认识。基本思路创建一个管道几何体,然后相机沿着轨迹线移动,注意相机的方向要沿着轨迹线的切线方向,这样会形成一个管道漫游的效果,如果渲染管道的时候使用点 Points 就可以展现一个虫洞特效。轨迹线创建通过 3D...
2024-01-10three.js 利用uv和ThreeBSP制作一个快递柜功能
最近有three网友,问我要不要学习blender,其实我感觉学习一下也无妨,不过花大量时间精通,尚可不必,术业有专攻给别人留一条路吧,哈哈。那我我们就是用ThreeBSP和uv贴图的知识来制作一个定制化的快递柜,先上图,在线案例请点击博客原文。下面我们来讲解一下这样一个柜子的制作。1. 主角是...
2024-01-10