`
18211103738
  • 浏览: 82689 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

ThreeJS加载3D模型

阅读更多

效果:


  代码:

<!doctype html>
<html>
	<head>
		<meta charset="utf-8"/>
		<title>Bunny</title>
		<style>body{background:#EEEEEE;margin:0;padding:0;}</style>
		<script src="js/three.min.js"></script>
		<script src="js/loaders/VTKLoader.js"></script>
	</head>
	<body>
		<script>
		var width = window.innerWidth*98/100;		//设置width为窗口显示区域宽度的98%
		var height = window.innerHeight*98/100;		//设置height为窗口显示区域高度的98%
		
		var scene = new THREE.Scene();		//创建场景
		
		var camera = new THREE.PerspectiveCamera(60, width/height, 0.001, 1e10);	//60:视角;width/height:宽高比;0.001:近平面;1e10(即10的十次方):远平面
		camera.position.z = 0.2;	//设置camera的位置
		scene.add(camera);
		
		var dirLight = new THREE.DirectionalLight(0xffffff);	//白色的方向光
		dirLight.position.set(200,200,1000).normalize();		//设置光源位置
		camera.add(dirLight);		//添加光源到场景中
		camera.add(dirLight.target);
		
		var material = new THREE.MeshLambertMaterial({color:0xffffff,side:THREE.DoubleSide});	//创建材质
		
		var loader = new THREE.VTKLoader();		//创建加载器
		loader.load("models/vtk/bunny.vtk",function(geometry){		//加载模型
			geometry.computeVertexNormals();	//计算顶点法线
			var mesh = new THREE.Mesh(geometry, material);		//创建物体
			mesh.position.setY(-0.09);		//设置物体位置
			scene.add(mesh);		//添加物体到场景中
		});
		
		var renderer = new THREE.WebGLRenderer();	//创建渲染器
		renderer.setSize(width, height);		//设置渲染器大小
		renderer.setClearColor(0xeeeeee);		//设置默认颜色
		document.body.appendChild(renderer.domElement);		//添加渲染器的DOM元素到body中
		
		function render(){
			renderer.render(scene, camera);		//进行渲染
			requestAnimationFrame(render);		//动画帧循环
		}
		render();
		</script>
	</body>
</html>

 

可以在three.js的源码文件中找到three.min.js和VTKLoader.js,笔者当前使用的版本是r69。

例子完整源码:

分享到:
评论
2 楼 wxw520zdh 2018-04-03  
msdghs 写道
楼主,我下载了demo跑不起来,是哪里没设置正确么;


停止本地文件限制在试下
1 楼 msdghs 2017-05-08  
楼主,我下载了demo跑不起来,是哪里没设置正确么;

相关推荐

    ThreeJS加载glb模型实用案例

    本篇文章将深入探讨如何使用Three.js加载glTF(GL Transmission Format)格式的3D模型,特别是一个名为"gltfForRock2022.1.24"的glTF模型文件。 首先,理解glTF是什么至关重要。glTF是一种开放标准的3D模型格式,...

    uniapp微信开发+three.js加载3d模型

    ### 三、three.js加载3D模型 1. **导入three.js**:在uniapp项目中,可以使用npm或uni-app的插件市场引入three.js库。在`main.js`或需要使用3D功能的组件中,通过`import`语句加载库。 2. **创建场景、相机和渲染...

    ThreeJs-3D模型渲染、3D标签

    在这个“ThreeJs-3D模型渲染、3D标签”的主题中,我们将探讨ThreeJs如何实现3D模型的加载、渲染以及如何添加和管理3D标签。 1. **ThreeJs 基础概念**: - **WebGL**:WebGL 是一种在浏览器中支持硬件加速的3D图形...

    three.js加载坦克3D模型源码实例

    综上所述,这个"three.js加载坦克3D模型源码实例"涵盖了3D模型的加载与展示、材质应用、光照处理、以及交互功能的实现等多个关键知识点。通过学习和理解这个实例,开发者可以进一步掌握three.js在3D web应用中的实际...

    web前端3D:three.js加载汽车模型

    本篇文章将详细讲解如何利用three.js加载汽车模型,以及相关的JavaScript插件和素材文件。 首先,了解Three.js的基本概念。Three.js是基于WebGL的3D库,它在浏览器环境中构建3D模型,利用HTML5 canvas元素和WebGL ...

    three.js加载json三维模型.zip

    在三维Web开发领域,Three.js是一个非常流行的JavaScript库,它为浏览器提供了强大的3D图形渲染功能。本主题将深入探讨如何...通过掌握Three.js加载JSON模型的技术,你可以创建出具有高度沉浸感和交互性的3D Web应用。

    vue3中使用threejs加载fbx模型.zip

    Three.js是一个强大的JavaScript库,用于在浏览器中创建和展示3D对象,而FBX是一种广泛使用的3D模型格式,它包含了丰富的动画和材质信息。Vue3则是一个流行的前端框架,提供响应式和组件化开发的能力。以下是如何在...

    threejs夹杂3d模型

    标题 "threejs夹杂3D模型" 暗示了我们即将探讨的是关于Three.js库在WebGL上创建和操作3D模型的技术。Three.js是一个流行的JavaScript库,它为Web开发人员提供了一种简单易用的方式来实现3D图形,使得在浏览器中呈现...

    three.js加载obj模型添加点击事件及其他

    在本文中,我们将深入探讨如何使用three.js库加载OBJ模型并为其...总的来说,使用three.js处理3D模型是一个涉及多方面技术的过程,包括模型加载、交互事件处理和3D渲染。不断学习和实践将帮助你更好地掌握这些技能。

    threejs加载GLTF示例

    在本示例中,我们将深入探讨如何使用Three.js库加载GLTF(通用场景图形格式)模型,这是一种广泛使用的3D模型格式,尤其适用于Web应用程序。Three.js是一个强大的JavaScript库,用于在Web浏览器中创建和展示三维图形...

    cesium整合tihreejs 在地球加载threejs 三维模型

    4. **加载模型**:使用Three.js的加载器(如`THREE.GLTFLoader`或`THREE.OBJLoader`)加载3D模型。一旦模型加载完成,将其添加到Three.js场景中。 ```javascript var loader = new THREE.GLTFLoader(); loader....

    微信小程序使用threejs实现3D模型的展示

    微信小程序使用three.js实现3D模型的展示。简单Demo,快速上手,博主最近测试完美可用,可以自定义调整js里面的函数,实现3d模型的各种动画效果,比如旋转、掉落、等等,可以更好的避坑。源码包中含有虾模型,将其...

    基于threejs的在线3D场景编辑器使用mongodb保存3D模型和场景数据

    它提供了各种几何形状、纹理、光照、摄像机和动画等功能,支持加载3D模型(如OBJ、GLTF等格式)。 2. **在线3D场景编辑器**: 这种编辑器允许用户通过浏览器进行3D建模,无需安装额外软件。用户可以创建、修改3D对象...

    threejs测试文件格式汇总

    这个“threejs测试文件格式汇总”集合了多种3D模型文件格式,包括 obj、gltf、glb、pcd、nrrd 和 3ds,这些都是在Three.js 中常见的加载对象格式。下面我们将详细探讨这些格式的特点和它们在Three.js 中的应用。 1....

    化工园区三维模型gltf、obj、3dmax格式资源,threejs对gltf加载只需要2秒

    首先,我们要了解gltf(GL Transmission Format)是一种开放标准的3D模型格式,旨在提供高效的资源传输和加载。gltf是一种轻量级的解决方案,它可以包含模型的几何形状、纹理、材质、动画等信息,并且支持二进制数据...

    three.js前端使用3D模型引入

    前端使用3D模型引入 import './three.js-master/build/three.js' import './three.js-master/examples/js/loaders/OBJLoader.js' import './three.js-master/examples/js/loaders/MTLLoader.js' import './three.js...

    cesium/threejs可视化某BIM模型

    他们可能会用到Three.js的`Loader`类来加载3D模型,再通过`Object3D`和`Scene`来组织和渲染模型。 此外,交互性也是此类应用的关键。用户可能需要旋转、平移和缩放模型,或者点击特定部分获取更多信息。Cesium和...

    three.js加载obj模型

    本文将深入探讨如何使用Three.js加载OBJ模型,这是一种广泛使用的3D模型格式,常用于共享和导入3D物体到各种应用程序。 首先,我们需要了解OBJ文件格式。OBJ是Wavefront公司开发的一种文本格式,它存储3D几何数据、...

    vue3.0导入threejs三维模型,实现模型放大,缩小,拖动及其动画效果,鼠标点击规划空间路径。

    为了加载三维模型,我们将使用gltf格式,它是目前广泛使用的3D模型格式。Three.js提供了一个加载器来处理gltf文件,我们同样需要导入它: ```javascript import { GLTFLoader } from 'three/examples/jsm/loaders/...

Global site tag (gtag.js) - Google Analytics