http://bbs.9ria.com/viewthread.php?tid=77910&extra=page%3D1%26amp%3Borderby%3Ddateline%26amp%3Bfilter%3D2592000
要看到如上图的例子你必须要有一个最新的支持webGL的浏览器。
正如我在上一个帖子里提到的,我在用Molehill版本的Away3D实现了一个小作品之后,我很想在webGL里重新做一个相同的东西出来。所以当我知道了有一个很棒的支持Javascript的3D引擎来实现webGL之后,我就决定去试试,出来的结果也让我很兴奋。
首先,开发过程比我预想的要简单很多。Three.js是一个很出色开发框架,下载下来的时候就包含了所有的资源文件和被缩小了的构建文件。所以要找到哪个函数是可以用的简直易如反掌。并且这个框架也包含了许多很棒的实例,从最基本的立方体模型实例到包含很多模型的复杂webGL实例,它都有。
我现在的要做的事情就比之前做molehill实例的时候简单多了,因为我已经有了建立好的模型,随时准备开始了。所以在这里我只要把模型导入到three.js接着展示到浏览器里就好了。如果你之前在AS3里有用过Papervision3D 或者 Away3D,你将会对这个框架结构非常熟悉,因为它用到了相同的方法来创建场景、摄像机、灯光、渲染器等。又因为在这里我要实现webGL实例,所以我用了WebGLRender。但是如果浏览器不支持webGL,你也可以选择CanvasRenderer。
- 1. camera = new THREE.Camera(70, window.innerWidth / window.innerHeight, 1, 1000);
- 2. camera.position.y = 150;
- 3. camera.position.x = 500;
- 4. camera.target.position.y = 150;
- 5.
- 6. renderer = new THREE.WebGLRenderer();
- 7. renderer.setSize(window.innerWidth, window.innerHeight);
- 8. container.appendChild(renderer.domElement);
- 9.
- 10. car = new THREE.Object3D();
- 11. scene.addObject(car);
复制代码
这些代码被添加进去之后,就只需要再载入对象和指定材质了。多亏three.js框架考虑得很周全,它有很多针对不同3D模型的扩展插件。因为我用的是Blender 3D来制作模型,我只需要安装一个插件之后从Blender里导出模型的各个部分作为.js文件,然后准备导入到我的场景中。Three.js有其他一些可用的方法,比如通过python scripts来把导出的obj文件转换成支持.js文件的.bin文件,或者就干脆转换成普通的.js文件。但就我个人而言,我更喜欢直接从Blender里导出的方法。
- 1. loader = new THREE.JSONLoader(true);
- 2. loader.load({ model: "js/objects/car_body.js", callback: function ( geometry ) { addPart(geometry, 0, 150, 0, carBodyMat)}});
- 3. loader.load({ model: "js/objects/chrome.js", callback: function ( geometry ) { addPart(geometry, 0, 150, -17, chromeMat)}});
- 4. loader.load({ model: "js/objects/glass.js", callback: function ( geometry ) { addPart(geometry, 0, 172, 91, glassMat)}});
复制代码
通过不断创建THREE.JSONLoader 对象和调用load()函数导入我的模型车的每个部分到场景中是很容易的,因为load()函数在模型文件导入的时候就会自动地调用call back函数来把模型添加到场景中而不需要设定listeners等等繁琐的东西。我碰到的惟一问题是在Blender里设定好的各个模型所在的位置坐标在导入到场景中后全部被清零,所以需要自己来重新设定每个部分的位置。所以有些部分可能有些错位,但我觉得总体还看得过去。
不管怎样,就像我之前有说的,我真的感到很兴奋,不光是因为整个过程很简单,也是为做出的效果挺炫。比如很明显地可以看出,这个模型车的车身材质比molehill例子里要更有金属光泽。但让我大为惊讶的其实是,以我之前用webGL的经验来看,它的表现是不会这么完美的。这个例子做到的效果却比我在很撇的笔记本上做的molehill例子要好很多很多,当然,马上你就会发现,运行这个webGL的时候你的显卡一直在做大量的运算。
就总体来说,个人觉得还是OK的。
PS:所有的资源都可以在这里找到。
- 大小: 13.8 KB
分享到:
相关推荐
本项目名为"Three.js-webgl物联网粮仓3D可视化",是基于WebGL技术的3D可视化管理系统,利用了Three.js库以及Vue.js框架,旨在实现对粮仓的高效管理和监控。通过JavaScript语言进行编程,结合物联网技术,该系统能够...
Learning.Three.js.The.JavaScript.3D.Library.for.WebGL Learning.Three.js.The.JavaScript.3D.Library.for.WebGL
参考博文:Three 之 three.js (webgl)透视视角和正交视角,以及透视转正交的视角切换 https://blog.csdn.net/u014361280/article/details/124544320?spm=1001.2014.3001.5501 一、简单介绍 Three js 开发的一些...
THREE.js是一个强大的JavaScript库,专门用于在Web浏览器中创建3D图形,它利用WebGL技术,这是一种基于OpenGL标准的JavaScript API,允许开发者在网页上实现高性能的交互式3D图形。在这个“使用THREE.js库的WebGL...
WebGL是一种基于OpenGL标准的JavaScript API,用于在任何兼容的Web浏览器中进行2D和3D图形渲染,无需插件支持。它使开发者能够在网页上创建动态、交互式的3D内容,极大地拓宽了Web开发的可能性。Three.js是建立在...
本节介绍, three.js (webgl)入门的第二个代码程序,实现一个汽车模型的加载,以及汽车模型的简单展示,简单的模型汽车行驶,并可以修改汽车模型的颜色等,如果有不足之处,欢迎指出,或者你有更好的方法,欢迎...
three.js是一个基于WebGL的JavaScript 3D库,它使得在浏览器中创建复杂的3D图形和动画变得简单易行。WebGL是一种在任何兼容的现代Web浏览器中进行硬件加速的3D图形编程接口,无需插件。 【描述】"three.js+WebGL...
在这个项目中,Three.js 和 WebGL 结合使用,为博客添加了引人入胜的3D视觉效果,可能是交互式的3D模型或者动画。 cityboy-master 文件夹可能包含了整个项目的源代码结构。在典型的Vue项目中,我们通常会看到以下...
- JavaScript文件:包含Three.js和WebGL相关代码,如场景设置、物体创建、动画实现等。 - GLSL文件:顶点和片段着色器的源代码,定义自定义的图形效果。 - 图形资源:如纹理图像、3D模型文件(.obj、.gltf等格式)。...
Three.js是基于WebGL的JavaScript库,是目前最流行的浏览器端3D图形渲染库之一,广泛应用于网页游戏、数据可视化、3D建模等领域。本教程围绕"Three.js视频教程源码.rar"展开,深入探讨Three.js的核心概念、使用技巧...
第 1 章介绍 Three.js 和 WebGL 的背景资料,并通过简单的例子帮助读者实现第一个Three.js 应用。 第 2 章介绍照相机的设定。 第 3、4、5 章分别介绍几何形状、材质和网格,即如何在场景中添加物体。 第 6 章介绍...
【标题】:“基于three.js和WebGL开发的3D汽车展厅项目源码”是指一个使用JavaScript库three.js和WebGL图形编程接口构建的三维汽车展示平台。该项目旨在为用户提供一个互动式的、逼真的3D环境,使用户能够在网页上...
Three.js是基于WebGL的JavaScript库,它简化了WebGL的复杂性,提供了易于使用的接口,让开发者能够更轻松地创建3D网页内容。Three.js包含了许多3D对象、光源、相机、材质等组件,以及动画控制、加载模型等功能,使得...
Three.js是一个基于WebGL的JavaScript库,它允许开发者在浏览器中创建和展示复杂的3D场景。本项目名为“three.js渲染钻石demo”,其主要目标是利用three.js库来呈现一个逼真的钻石模型。 **描述:“three.js+glsl...
【描述】"使用three.js开发的3D机房项目"意味着项目的核心是three.js,这是一个开源的JavaScript库,专门用于创建和展示3D计算机图形。通过这个项目,开发者可以构建交互式的、高细节度的机房模型,包括服务器、空调...
three.js是一个基于JavaScript的3D库,它为WebGL提供了一个更友好的接口,使得开发者可以更容易地创建复杂的3D场景和动画。 WebGL是一种在网页上渲染3D图形的API,它基于OpenGL标准,但被设计成与JavaScript兼容,...
Three.js引擎开发:Three.js渲染技术_(16).Three.js在WebGL中的应用.docx Three.js引擎开发:Three.js渲染技术_(17).Three.js与其他前端框架的集成.docx Three.js引擎开发:Three.js渲染技术_(18).Three.js的...