Three.js editor 学习笔记(一)

最近项目需要用到three.js editor,three.js库虽然较为广泛使用,但editor作为“衍生产品”似乎用户较少,使用方法连官方都资料甚少。此次我就自己关于editor的学习进行一下简单的脉络分析,大家共勉呀。
首先,我对three.js 库不是十分了解,打算从editor开始学习,遇到需要查询的地方再从库中按需求学习。
Editor目录下共有四个目录和两个文件。
css
docs
examples
js
index.html
main.js

css文件主要定义了界面样式。主要有三个文件:dark.css、light.css、main.css。
dark.css与light.css主要定义界面UI,如菜单、参数面板等。
UI介绍
main.css定义各种几何体的线宽等参数。
main.css

docs文件中有两个说明文件,作为editor中没有撤销、重做功能的补充。一个是介绍如何实现,一个介绍如何测试。
examples文件中有五个示例。arkanoid示例主要展示editor中的程序逻辑控制;camera示例展示camera的控制,如camera的自旋转;particles示例展示生成粒子;phong示例展示简单的逻辑控制、应用phong光照模型的物体显示效果;shader示例展示了custom shader的使用方法。

js文件比较多,我还是从index.html文件开始分析。index.html中部分和非editor通用的js文件放在了整个three.js-master(我在官网下载解压缩后是这个文件名)的build、examples、libs文件中。与editor界面相关的js文件放在了editor文件下的js文件夹中。

<!DOCTYPE html>
<html lang="en">
    <head>
        <title>three.js / editor</title>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0">
    </head>
    <body ontouchstart="">
        //editor样式
        <link href="css/main.css" rel="stylesheet" />
        <link id="theme" href="css/light.css" rel="stylesheet" />

        <script src="../build/three.js"></script> //引用基本的three.js库 

        //引用examples目录下的js文件偏向于three.js库引用文件
        //editor目录下的js文件偏向于编辑器支持

        <script src="../examples/js/libs/system.min.js"></script> //js对象与用户的系统信息,如系统版本(
        Linux、Mac OS、Windows),浏览器版本(Chrome、Firefox)等

        <script src="../examples/js/controls/EditorControls.js"></script>//编辑器中的鼠标和触屏交互(时
        事件处理、内置变量)等
        <script src="../examples/js/controls/TransformControls.js"></script>物体上的transform标志--translate、rotate、scale,鼠标移入移出等

        <script src="../examples/js/libs/jszip.min.js"></script>//一个用于生成和读取zip文件的JavaScript
        <script src="../examples/js/libs/inflate.min.js"></script> <!-- FBX -->//ZLIB(RFC 1950),DEFLATE(RFC 1951),GZIP(RFC 1952)和PKZIP实现。

        <!--loader-->
        //各种loader,具体使用方法可见每个loader.js文件中的最前方的注释部分
        //中文手册 http://techbrood.com/threejs/docs/(转载自http://blog.csdn.net/iefreer/article/details/51694138?_t_t_t=0.9795265805829652)
        <script src="../examples/js/loaders/AMFLoader.js"></script>
        <script src="../examples/js/loaders/AWDLoader.js"></script>
        <script src="../examples/js/loaders/BabylonLoader.js"></script>
        <script src="../examples/js/loaders/ColladaLoader.js"></script>
        <script src="../examples/js/loaders/FBXLoader.js"></script>
        <script src="../examples/js/loaders/GLTFLoader.js"></script>
        <script src="../examples/js/loaders/KMZLoader.js"></script>
        <script src="../examples/js/loaders/MD2Loader.js"></script>
        <script src="../examples/js/loaders/OBJLoader.js"></script>
        <script src="../examples/js/loaders/MTLLoader.js"></script>
        <script src="../examples/js/loaders/PlayCanvasLoader.js"></script>
        <script src="../examples/js/loaders/PLYLoader.js"></script>
        <script src="../examples/js/loaders/STLLoader.js"></script>
        <script src="../examples/js/loaders/TGALoader.js"></script>
        <script src="../examples/js/loaders/TDSLoader.js"></script>//加载有uv和基本纹理材质的几何体
        <script src="../examples/js/loaders/UTF8Loader.js"></scrip
### Three.js 编辑器相关资源与教程 对于希望学习和掌握 Three.js 的开发者来说,有许多高质量的在线资源可以提供帮助。以下是关于 Three.js 教程及相关工具的些详细介绍: #### 官方文档 官方文档始终是最权威的学习资料之Three.js 提供了个详尽而全面的文档页面,涵盖了 API 参考、示例代码以及常见问题解答[^2]。 ```javascript // 示例:创建个基本场景 const scene = new THREE.Scene(); const camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000); const renderer = new THREE.WebGLRenderer(); renderer.setSize(window.innerWidth, window.innerHeight); document.body.appendChild(renderer.domElement); const geometry = new THREE.BoxGeometry(); const material = new THREE.MeshBasicMaterial({ color: 0x00ff00 }); const cube = new THREE.Mesh(geometry, material); scene.add(cube); camera.position.z = 5; function animate() { requestAnimationFrame(animate); cube.rotation.x += 0.01; cube.rotation.y += 0.01; renderer.render(scene, camera); } animate(); ``` 上述代码展示了如何使用 Three.js 创建并渲染个简单的立方体模型。 #### 在线教程推荐 些网站提供了丰富的 Three.js 学习材料,适合初学者到高级开发者的不同需求: - **threejs.org**: 这是个专门针对 Three.js 开发者设计的站点,不仅包含了基础概念介绍,还提供了大量实际案例演示。 - **Chrome Experiments**: 此平台收集了许多令人印象深刻的 WebGL 应用实例,其中包括许多基于 Three.js 构建的作品。 #### 工具支持 为了更高效地编写和调试 Three.js 项目,建议安装款功能强大的文本编辑器,比如 Visual Studio Code 或其他类似的 IDE[^1]。这些工具有助于提高编码效率,并通过插件扩展提供更多便利的功能。 此外,《WebGL Reference Card》是份非常实用的手册,它总结了所有重要的 WebGL 和 GLSL 关键字及其定义,尽管版本较老但仍具有定参考价值[^4]。 #### 社区交流 参与社区讨论也是获取新知的重要途径之。无论是 GitHub 上的开源项目还是 Stack Overflow 中的技术问答,都可以成为解决问题的好去处[^3]。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值