
ThreeJs
六弦的闷音
这个作者很懒,什么都没留下…
展开
-
threejs创建一个流动的水管效果(通过材质的移动实现)
/** * 创建一个设置重复纹理的管道 */var curve = new THREE.CatmullRomCurve3([ new THREE.Vector3(-80, -40, 0), new THREE.Vector3(-70, 40, 0), new THREE.Vector3(70, 40, 0), new THREE.Vector3(80, -40, 0)]);var tubeGeometry = new THREE.TubeGeometry(curve, 100, .原创 2020-05-26 22:17:07 · 7575 阅读 · 1 评论 -
threejs之材质.side属性,让材质单面或者双面显示
var material = new THREE.MeshBasicMaterial({ color: 0xdd00ff, // 前面FrontSide 背面:BackSide 双面:DoubleSide side:THREE.DoubleSide,});直接上代码,关键的三个参数:前面:FrontSide (默认)背面:BackSide双面:DoubleSide...原创 2020-05-26 21:46:31 · 8970 阅读 · 5 评论 -
Threejs之用Shape对象和轮廓填充画一个地图坐标点的样子
使用的相关方法:Shape对象和轮廓填充ShapeGeometry// 一个外轮廓圆弧嵌套三个内圆弧轮廓var shape = new THREE.Shape(); //Shape对象//外轮廓shape.arc(0, 0, 100, 0, 2 * Math.PI);// 内轮廓1var path1 = new THREE.Path();path1.arc(0, 0, 40, 0, 2 * Math.PI);//三个内轮廓分别插入到holes属性中shape.holes.pus原创 2020-05-23 16:03:35 · 3756 阅读 · 0 评论 -
ThreeJs各种集合体的快速创建
//长方体 参数:长,宽,高var geometry = new THREE.BoxGeometry(100, 100, 100);// 球体 参数:半径60 经纬度细分数40,40var geometry = new THREE.SphereGeometry(60, 40, 40);// 圆柱 参数:圆柱面顶部、底部直径50,50 高度100 圆周分段数var geometry = new THREE.CylinderGeometry( 50, 50, 100, 25 );// 正.原创 2020-05-20 09:33:16 · 668 阅读 · 0 评论 -
ThreeJS之让一个模型围绕自己的轴心旋转
如果一个模型不在场景的中心点,这时候使用rotateY旋转的话,这个对象会围绕场景的中心点进行旋转,会转一个大圈那么怎么做才能让他在任何位置的时候,围绕自己的轴心进行旋转?下面的代码即可! // 先获取geometey的中心点位置并留存 let center = new THREE.Vector3(); ditu.children[240].geometry.computeBoundingBox(); ditu.children[240].geometry.boundi.原创 2020-05-17 16:04:21 · 15512 阅读 · 7 评论 -
ThreeJs之 加载OBJ和MTL文件
import { DDSLoader } from '/three.js/three.js-master/examples/jsm/loaders/DDSLoader.js';import { MTLLoader } from '/three.js/three.js-master/examples/jsm/loaders/MTLLoader.js';import { OBJLoader } from '/three.js/three.js-master/examples/jsm/loaders/OBJ.原创 2020-05-16 14:48:24 · 2447 阅读 · 0 评论 -
ThreeJs事件之鼠标点击网格对象后触发对应事件
//声明raycaster和mouse变量 var raycaster = new THREE.Raycaster(); var mouse = new THREE.Vector2();function onMouseClick( event ) { //通过鼠标点击的位置计算出raycaster所需要的点的位置,以屏幕中心为原点,值的范围为-1到1. mouse.x = ( event.clientX / window.innerWidth ) ...原创 2020-05-16 14:39:50 · 2522 阅读 · 0 评论 -
threejs之MeshBasicMaterial材质(不需要使用光源)
MeshBasicMaterial是一种非常简单的材质,这种材质不考虑场景中光照的影响。使用这种材质的网格会被渲染成简单的平面多边形,而且也可以显示几何体的线框。var meshMaterial = new THREE.MeshBasicMaterial({color:0xeeefff});...原创 2020-05-14 23:13:58 · 2641 阅读 · 0 评论 -
threejs之给场景添加天空盒子的纹理
var scene = new THREE.Scene(); //给场景添加天空盒子纹理 var cubeTextureLoader = new THREE.CubeTextureLoader(); cubeTextureLoader.setPath( '/three.js/mytest/images/' ); //六张图片分别是朝前的(posz)、朝后的(negz)、朝上的(posy)、朝下的(negy)、朝右的(posx)和朝左的(negx)。 var cub..原创 2020-05-14 23:09:36 · 2052 阅读 · 1 评论 -
基础用法
几何体Geometry创建一个立方体THREE.BoxGeometry(100,100,100)创建了一个长宽高都是100的立方体材质Material创建了一个可以用于立方体的材质对象THREE.MeshLambertMaterial({color:0x0000ff})光照Light创建一个点光源,意思就是从某个方向拿个手电筒照着var point=new THREE.PointLight(0xffffff);point.position.set(100,2..原创 2020-05-14 21:58:15 · 310 阅读 · 0 评论 -
可视化变换控件对象,可以动态拖动每一个组件threejs-TransformControls
import { TransformControls } from '/three.js/three.js-master/examples/jsm/controls/TransformControls.js'; import { DragControls } from '/three.js/three.js-master/examples/jsm/controls/DragControls.js'; //可视化变换控件对象 var transformC...原创 2020-05-14 21:58:01 · 2436 阅读 · 0 评论