19 个最佳Three.JS 示例

本文涉及的产品
实时计算 Flink 版,5000CU*H 3个月
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
大数据开发治理平台 DataWorks,不限时长
简介: 分享threejs.org 的 19个最佳三个 JS 示例
推荐:使用 NSDT编辑器快速搭建3D应用场景
  • 在浏览器中创建动画三个JS模型
  • 创建 3D 动画文本
  • 从 3D 图像创建 2D 模型
  • 制作 3D 模型动画
  • 添加 3D 效果
  • 创建 3D 游戏和交互式体验
  • 编程 3D 虚拟现实体验
  • 将颜色应用于 3D 几何体
  • 控制 3D 渲染性能
  • 与 3D 环境交互
  • 修改 3D 环境的照明
  • 7 奖金三个JS示例
  • 加载 3D 网格并为其设置动画
  • 加载 gITF 3D 格式文件
  • 与颜色和材料交互
  • 与动态材质交互
  • 交互式变形 3D 形状
  • 对 3D 模型和环境进行后处理
  • 在 a3D 对象上叠加 YouTube 视频

在浏览器中创建动画三个JS模型

对于那些没有 Three.js 编码经验的用户,下面是在浏览器窗口中呈现简单框所需的代码示例。这很简单,需要您制作三个文件。

首先,在您喜欢的编辑器中创建索引.html文件。

<!-- Begin HTML -->
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>My Three JS Example</title>
    <!-- Remove border -->
    <style>
        body { margin: 0; }
    </style>
    <!-- Load three.js -->
    <script
    src="https://cdnjs.cloudflare.com/ajax/libs/three.js/0.147.0/three.min.js">
  </script>
</head>
<body>
    <!--Your source file -->
    <script src="js/animation.js"></script>
</body>
</html>
<!-- End HTML -->

现在创建一个新的 JavaScript 文件:

// Begin script
// Create a scene
const scene = new THREE.Scene();
// Create a camera
const camera = new THREE.PerspectiveCamera( 75, window.innerWidth / window.innerHeight, 0.1, 1000 );
// Create a geometry
const geometry = new THREE.BoxGeometry(1, 2, 3);
// Create a material
const material = new THREE.MeshBasicMaterial({ color: 0xff00ff });
// Create a mesh
const mesh = new THREE.Mesh(geometry, material);
// Add the mesh to the scene
scene.add(mesh);
// Create a renderer
const renderer = new THREE.WebGLRenderer();
// Set the size
renderer.setSize(window.innerWidth, window.innerHeight);
// Append to the DOM
document.body.appendChild(renderer.domElement);
// Position the camera
camera.position.z = 5;
// Animate the scene
function animate() {
    requestAnimationFrame( animate );
    mesh.rotation.x += 0.01;
    mesh.rotation.y += 0.01;
    renderer.render( scene, camera );
};
animate();
// End script

现在,在浏览器中打开 index.html 文件。你最终得到的是下图所示的动画。请注意,您可以完全控制框的尺寸、颜色、动画制作方式以及所有其他参数。所有这些工作原理是本文其余部分的内容。

创建 3D 动画文本

https://threejs.org/examples/#webgl_geometry_text这是一种在不使用 Flash 的情况下在 Flash 中创建动画徽标的方法。这一切都发生在浏览器中。在屏幕上键入所需的任何文本,然后使用白色按钮更改参数。

如果您想轻松共享文件,请访问 Tiiny.host。(看看创建一个有用的徽标有多容易?

从 3D 图像创建 2D 模型

https://threejs.org/examples/#webgl_geometry_extrude_shapes这将演示如何从 2D 形状开始,然后沿路径将其拉伸为 3D。

制作 3D 模型动画

https://threejs.org/examples/#webgl_animation_skinning_morph这个小机器人是动画的,你可以选择他用黑色参数框做什么。改变他的表情,站着或坐着,随便什么。

添加 3D 效果

https://threejs.org/examples/#webgl_effects_stereo立体声效果可以追溯到很久以前,一直到手持式立体镜。现在,您只需几行代码即可制作交互式动画立体效果。

创建 3D 游戏和交互式体验

https://threejs.org/examples/#webgl_decals不要不点击这幅肖像。你会看到会发生什么。您可以在参数框中更改视觉效果。

编程 3D 虚拟现实体验

https://threejs.org/examples/#webxr_vr_haptics触觉是一种你可以感受到的计算机反馈。您在智能手机上感受到的振动是触觉。

这种触觉效果在虚拟现实设置中可用,而不是在您的桌面或手机上。我为 Web3 爱好者提供了这个。穿上你的装备,享受吧。

将颜色应用于 3D 几何体

https://threejs.org/examples/#webgl_geometry_colors此示例的交互式元素允许您更改形状的位置,并根据透视查看不断变化的颜色。

控制 3D 渲染性能

https://threejs.org/examples/#webgl_instancing_performance一千个猴头漂浮在太空中。你还能要求什么?更改参数并监控系统性能。适合测试您的动画。

与 3D 环境交互

https://threejs.org/examples/#webgl_interactive_voxelpainter

标题是不言自明的。访问该示例并单击以进行交互。

修改 3D 环境的照明

https://threejs.org/examples/#webgl_lights_hemisphere更改场景的照明或关闭灯光。您的选择。

7 奖金三个JS示例

我们已经到达了前 10 名列表的末尾,但我无法停止尝试 threejs.org/examples 提供的数十个示例。在屏幕的左侧,你会看到一个按功能和类别组织的滚动列表。这里还有七个例子,每个例子都有更多的技术目的。

加载 3D 网格并为其设置动画

https://threejs.org/examples/#webgl_loader_collada_kinematics此自动化机器人的代码演示了将文件加载到浏览器中并对其进行动画处理。

加载 gITF 3D 格式文件

https://threejs.org/examples/#webgl_loader_gltf同样,加载文件是 3D 工作流程的重要组成部分。这证明了Three JS令人难以置信的图形质量,当然是基于输入的质量。

与颜色和材料交互

https://threejs.org/examples/#webgl_materials_car更改此 3D 汽车动画中加入的颜色。诸如此类的动态更改非常适合个性化和其他交互式选择。

与动态材质交互

https://threejs.org/examples/#webgl_materials_cubemap_dynamic请注意在空间中移动三个物体时的高质量实时折射。

交互式变形 3D 形状

https://threejs.org/examples/#webgl_morphtargets从一个简单的3D正方形(盒子)开始,看看你可以让它变圆或扭曲成各种形状。

对 3D 模型和环境进行后处理

https://threejs.org/examples/#webgl_postprocessing_advanced后期处理在视频制作中大量使用。在这里,您可以以数字方式完成。

在 a3D 对象上叠加 YouTube 视频

https://threejs.org/examples/#css3d_youtube将四个YouTube视频叠加在一个八面(内部和外部)空盒子上。凉。您可以通过单击来控制视频播放。

原文链接:19 个最佳Three.JS 示例

目录
相关文章
|
8月前
|
JavaScript API
使用Node.js访问API的示例
下面是一个使用Node.js访问API的示例代码:
|
13天前
|
编解码 JavaScript 前端开发
【专栏】介绍了字符串Base64编解码的基本原理和在Java、Python、C++、JavaScript及Go等编程语言中的实现示例
【4月更文挑战第29天】本文介绍了字符串Base64编解码的基本原理和在Java、Python、C++、JavaScript及Go等编程语言中的实现示例。Base64编码将24位二进制数据转换为32位可打印字符,用“=”作填充。文中展示了各语言的编码解码代码,帮助开发者理解并应用于实际项目。
|
13天前
|
JSON 前端开发 JavaScript
从假数据到动态表格:一个简单的JavaScript和HTML示例
从假数据到动态表格:一个简单的JavaScript和HTML示例
|
13天前
|
JavaScript 前端开发 开发者
JavaScript中的变量提升:解析、应用及示例
JavaScript中的变量提升:解析、应用及示例
20 1
|
13天前
|
JavaScript
js开发:请解释什么是ES6的扩展运算符(spread operator),并给出一个示例。
ES6的扩展运算符(...)用于可迭代对象展开,如数组和对象。在数组中,它能将一个数组的元素合并到另一个数组。例如:`[1, 2, 3, 4, 5]`。在对象中,它用于复制并合并属性,如`{a: 1, b: 2, c: 3}`。
14 3
|
13天前
|
JavaScript
js开发:请解释什么是ES6的默认参数(default parameters),并给出一个示例。
ES6允许在函数参数中设置默认值,如`function greet(name = &#39;World&#39;) {...}`。当调用函数不传入`name`参数时,它将默认为&#39;World&#39;,提升代码简洁性和可读性。例如:`greet()`输出&quot;Hello, World!&quot;,`greet(&#39;Alice&#39;)`输出&quot;Hello, Alice!&quot;。
17 4
|
13天前
|
JavaScript 前端开发
js开发:请解释什么是ES6的解构赋值(destructuring assignment),并给出一个示例。
ES6的解构赋值简化了JavaScript中从数组和对象提取数据的过程。例如,`[a, b, c] = [1, 2, 3]`将数组元素赋值给变量,`{name, age} = {name: &#39;张三&#39;, age: 18}`则将对象属性赋值给对应变量,提高了代码的可读性和效率。
|
13天前
|
SQL JavaScript
js开发:请解释什么是ES6的模板字符串(template string),并给出一个示例。
ES6的模板字符串以反引号包围,支持变量和表达式插入以及多行书写。例如,插入变量值`Hello, ${name}!`,计算表达式`${num1 + num2}`,以及创建多行字符串。模板字符串保留原始空格和缩进,简化了字符串拼接,提高了代码可读性。
20 6
|
13天前
|
JavaScript 前端开发
js开发:请解释什么是事件委托(event delegation),并给出一个示例。
事件委托是JavaScript中优化事件处理的技术,通过绑定事件处理器到共享的父元素,利用事件冒泡机制来处理子元素的事件。这种方法能提升性能、简化代码并降低内存消耗。示例展示了如何在父元素上监听`click`事件,然后通过`event.target`识别触发事件的具体子元素(如`&lt;li&gt;`),实现对动态生成列表项的点击事件处理。
|
13天前
|
存储 JavaScript 前端开发
js开发:请解释什么是回调函数(callback function),并给出一个示例。
回调函数是JavaScript中处理异步编程的一种常见模式,常用于事件驱动和I/O操作。它们作为参数传递给其他函数,在特定条件满足或任务完成后被调用。例如,`asyncOperation`函数接受回调函数`handleResult`,在模拟的异步操作完成后,调用`handleResult`并传递结果。这使得程序员能在操作完成后执行后续任务。
25 1