首页 > 其他分享 >threejs - 渲染第一个3D场景 - 旋转的正方体

threejs - 渲染第一个3D场景 - 旋转的正方体

时间:2024-04-21 14:33:52浏览次数:22  
标签:正方体 threejs 渲染 camera THREE scene mesh new 3D

1. 安装 threejs & 使用

2. 创建三要素  场景 scene 相机 camera 渲染器 render 

3. 场景 new THREE.Scene()  

相机分为 2 种  1. 透视相机 2. 正交相机 

渲染器的使用  把canvas标签渲染到body 页面

document.body.appendChild(renderer.doLement);  //  渲染canvas

renderer.render(场景scene,相机 camers); 

 

// 导入 threejs 
import * as THREE from "three";
// 创建场景 scene
const scene = new THREE.Scene();
// console.log(scene,'scene');
// 创建相机 -- 观看物体的不同视角
const camera = new THREE.PerspectiveCamera(
    45, // 视角
    window.innerWidth / window.innerHeight,  // 宽高比
    0.1,  // 近平面
    1000 // 远平面
);
// const camera1 = new THREE.OrthographicCamera();
// console.log('透视投影相机',camera); // 和人的眼睛看的东西一样 近大远小
// console.log('正投影相机',camera1);

// 创建渲染器
const renderer = new THREE.WebGLRenderer();
// console.log('渲染器',renderer);
// 置canvas画设布的尺寸  -- 设置threejs渲染区域的尺寸 像素 px
renderer.setSize(window.innerWidth,window.innerHeight); 
// domElement 就是一个 canvas 标签  结果 -- 把 canvas 渲染到了页面上
document.body.appendChild(renderer.domElement);

// 创建一个集合体 -- 正方体
const gemetry = new THREE.BoxGeometry(3,3,3);
// 创建材质 material  --- 网格基础材质
const material = new THREE.MeshBasicMaterial({
    color: 0x9ac833,  // # 使用 0x 替代  十六进制
});

// 创建网格模型 -- 就是 3D 物体了 -- 由几何体 gemetry 和 材质 material 构成
const mesh = new THREE.Mesh(gemetry,material); 
// console.log('网格',mesh);

mesh.position.set(0,10,0);  // 设置物体的位置 x y z  y 轴就是垂直的
// 把物体放到场景中间
scene.add(mesh);

// 设置相机的位置 position 
// camera.position.z = 100;  // 远距离和近距离
// camera.position.y = 50;  // 远距离和近距离
// camera.lookAt(0,10,0);
camera.lookAt(mesh.position);// 指向mesh对应的位置

// 动态的渲染函数
function animate() {
    requestAnimationFrame(animate);  // 逐帧渲染
    // 旋转
    mesh.rotation.x += 0.01;
    mesh.rotation.y += 0.01;
    renderer.render(scene,camera);
}
animate()

几何体的分类:

 几何体的颜色 == 材质 material 

 

材质的分类

 最终渲染 3D 物体  -- 网格对象

// 两个参数分别为几何体geometry、材质material
const mesh = new THREE.Mesh(geometry, material); //网格模型对象Mesh

 

把网格对象添加到场景seene中 最后使用渲染器执行渲染函数 ;

 

 

物体旋转效果可以调用 rotation 调整位置 ;

标签:正方体,threejs,渲染,camera,THREE,scene,mesh,new,3D
From: https://www.cnblogs.com/zhulongxu/p/18148910

相关文章

  • Unity3D 打造基于AStar的寻路与导航详解
    Unity3D打造基于AStar的寻路与导航详解BYCW丶零夜 ​关注 2人赞同了该文章前言寻路与导航是游戏开发中非常重要的一部分,它可以让游戏中的角色自动寻找到目标位置,并避开障碍物。本文将介绍如何使用Unity3D打造基于AStar算法的寻路与导航解,包括技术详......
  • CF1933D Turtle Tenacity: Continual Mods
    思路:此题其实很简单,不要被邪恶的出题人迷惑了双眼。此题判断有解一共有两种情况。通过题意可以知道将原数组排序后如果\(b_{1}\neb_{2}\),那么最后的结果一定\(\ne0\),这是第一种情况。第二种情况其实就是第一种情况的变形,在排序后\(b_{1}=b_{2}\)的情况下,如果\(b\)......
  • 开启智慧游园新篇章:公园设施3D可视化的魅力之旅
    在数字化浪潮席卷全球的今天,我们的生活正在经历一场前所未有的变革。从智能家居到无人驾驶,从在线购物到虚拟现实,科技的力量正在不断刷新我们对世界的认知。而今,这一变革的触角已经延伸到了我们休闲娱乐的场所——公园。 想象一下,你站在公园的入口处,通过手机或专门的AR设备,就能......
  • 3dmax材质编辑器崩溃怎么解决?3dmax渲染崩溃解决方法
    许多用户在更新版本后遭遇了一个共同的问题:一旦打开3dsMax的材质编辑器,程序就会崩溃。对此,众多用户感到困扰,不知道如何解决。下面我们以起来看看解决方法吧。3dmax材质编辑器崩溃解决方法1、登录到3dmax中,先开启渲染设置。2、选择【公用】【指定渲染器】,点击产品级,选择【V-R......
  • 3dmax在线渲染怎么取消?3dmax怎么关闭云渲染
    ​在线渲染,无论是通过云渲染服务还是渲染农场,已经成为众多3dmax动画制作者的首选方式来执行渲染任务。然而,如果在渲染过程中需要禁用这一在线渲染功能,该怎么操作呢?接下来,让我们一起探讨如何关闭这一功能的详细步骤。3dmax在线渲染关闭过程动画客户端1、3dmax文件在动画客户端......
  • 揭秘小型燃气站新宠:3D可视化技术引领行业变革
    随着科技的不断进步,越来越多的行业开始融入3D可视化技术,燃气行业也不例外。 小型燃气站作为城市燃气供应的重要节点,其安全性和运行效率至关重要。传统的燃气站管理方式往往依赖于人工巡检和纸质记录,这种方式不仅效率低下,而且难以发现潜在的安全隐患。 3D可视化技术的引入,为......
  • 球体与正方体[正六面体]
    前言常用结论:给定一个棱长为\(a\)的正方体[即正六面体],则其面对角线长为\(\sqrt{2}a\),其体对角线长为\(\sqrt{3}a\);且正六面体棱长、面对角线、体对角线三者之比为\(1\)\(\;:\;\)\(\sqrt{2}\)\(\;:\;\)\(\sqrt{3}\);设正方体的棱长为\(a\),则内切球的半径\(R_{内}=\cfrac{......
  • 【摘录】人形机器人和自动驾驶技术 —— 3D机器视觉技术
    以下内容引自:https://www.eda365.com/forum.php?mod=viewthread&tid=7442883D机器视觉技术分为两个部分,即3D重构技术和3D数据分析算法,前者获取3D信息、重构3D场景,后者对3D场景中的信息进行理解。目前,3D重构的常用技术类型有:被动3D视觉技术(分为单目3D、双目3D和多目3D,即分别......
  • 3d动画如何连续渲染?云渲染批量渲染3d动画
    在3D动画的生产过程中,从多个角度渲染同一场景既是时间消耗大户,也对设计人员的技术能力提出了高要求。好在云渲染技术的进步为这一挑战提供了高效的解决办法。通过利用云渲染服务进行批量渲染,设计师们可以大幅节约时间并提升工作效率。3d动画如何连续渲染方法一:批处理渲染1、点......
  • 探秘研发基地:3D可视化技术的魅力之旅
    在科技日新月异的今天,我们生活在一个充满无限可能性的时代。而在这个时代中,3D可视化技术正以其独特的魅力,引领着科技领域的新一轮变革。 3D可视化技术通过三维图像的方式,将现实世界或虚拟世界中的物体、场景等以立体、逼真的形式呈现出来。在研发基地中,3D可视化技术的应用更是......