首页 > 其他分享 >Threejs搭建web3D场景

Threejs搭建web3D场景

时间:2023-08-20 14:00:53浏览次数:53  
标签:Threejs 场景 WebGL JavaScript Three js 搭建 web3D 3D

今天发现之前都没有写一个关于搭建web端3D场景的介绍,这节补上: ​ 了解ThreeJs之前先了解WebGL:

(如果你已经了解了threeJs可以跳过这一章)

WebGL(全写Web Graphics Library)是一种3D绘图协议,这种绘图技术标准允许把JavaScript和OpenGL ES 2.0结合在一起,通过增加OpenGL ES 2.0的一个JavaScript绑定,WebGL可以为HTML5 Canvas提供硬件3D加速渲染,这样Web开发人员就可以借助系统显卡来在浏览器里更流畅地展示3D场景和模型了,还能创建复杂的导航和数据视觉化。显然,WebGL技术标准免去了开发网页专用渲染插件的麻烦,可被用于创建具有复杂3D结构的网站页面,甚至可以用来设计3D网页游戏等等。

ThreeJs实际上是WebGL的框架,Three.js是在WebGL的api接口基础上,又进行的一层封装。相当于js和JQuery的关系,学习webgl需要图形学知识,而webgl需要通过js和glsl两种语言。如果我们不通过threejs使用webgl势必逃不过底层知识:你必须全面了解着色器语法和自己编写顶点着色片元着色;而有了Three.js就可以大大减少了3d开发所需的专业知识储备。

先看看Three有哪些特点: 面向对象:开发者可以使用的JavaScript对象,而不是仅仅调用JavaScript函数。原本从事后台java等面向对开发语言的开发者学习起来比较容易 功能非常丰富:Three.js除了封装了WebGL原始API之外,Three.js还包含了许多实用的内置对象,并内置了常用着色器。 速度很快:Three.js采用了3D图形最佳实践来保证在不失可用性的前提下,保持极高的性能。 支持交互:WebGL本身并不提供拾取(picking)功能(即是否知道鼠标正处于某个物体上)。而Three.js则固化了拾取支持,这就使得你可以轻松为你的应用添加交互功能。(鼠标点击发送向内的射线统计穿过的对象来实现交互) 包含数学库:Three.js拥有一个强大易用的数学库,你可以在其中进行矩阵、投影和矢量运算。 内置文件格式支持:你可以使用流行的3D建模软件导出fbx格式或其他格式的文件,然后使用Three.js加载 支持HTML5 canvas:Three.js不但支持WebGL,而且还支持使用Canvas2D、Css3D和SVG进行渲染。

入门:先下载好threeJs的文件官网地址:Threejs官网,在download中可以下载到three的相关文件和案例,不过是英文的,觉得不方便也有中文版本的:Three中文网中文网

下面开始学习threeJS的内容:

创建3D项目的几个要素:

1.场景:可以理解为创建一个空间用来展示3D模型,

2.相机:可以理解为人的眼睛,展现给相机的图就是屏幕上展示的图,对应的改变相机的位置和角度也会改变屏幕展示的图

3.渲染器:绘制完3D之后,需要渲染器去按照设定的3D模型位置,角度以及光源等信息进行渲染展示

4.光源:就是类似自然界中的光,绘制了3D模型需要加载上光源才能看得见,

5.3D模型,无论是用three手动绘制还是通过加载器加载的3D文件,加到场景中,否则你的3D场景就什么也没有

源码可以参考其他章节提供的。

标签:Threejs,场景,WebGL,JavaScript,Three,js,搭建,web3D,3D
From: https://blog.51cto.com/u_11231522/7160958

相关文章

  • rhel 6.5搭建MySQL 5.5.18一主一从高可用架构
    文档课题:rhel6.5搭建MySQL5.5.18一主一从高可用架构.系统:rhel6.564位数据库:MySQL5.5.18数据库安装包:mysql-5.5.18.tar.gzXtrabackup安装包:percona-xtrabackup-24-2.4.6-2.el6.x86_64.rpm架构信息如下:1、主从搭建1.1、前期准备安装两台MySQL数据库主机后,配置好主机IP地......
  • 使用 DcokerCompose 搭建 mongodb 副本集群
    前面我们搭建了mongodb单机环境,但是在实际生产环境中,为了高可用,肯定需要搭建mongodb集群。mongodb集群主要分为两种:副本集群和分片集群。其中副本集群搭建容易,是生产环境中使用最多的集群,因此很有必要掌握。副本集群比较类似于mysql的主从复制,一主多从,每个节点的数据都是......
  • 基于hexo和aws云搭建个人博客,0基础0费用(2W字超详细图文教程)
    这是篇概述文章,详细参考Hexo建站专栏 最近几个月一直在整理之前的技术笔记,目前虽在体系上还尚有欠缺,但内容方面整理的七七八八了,这些内容一部分记录在了云笔记中另一部分记录在了博客上。于是决定搭建一个个人的技术博客网站以方便技术体系和相关资料的展示和推广,初步的想法和需求......
  • 使用docsify搭建帮助中心
    一般比较复杂的产品会有一个帮助中心功能,帮助用户理解一些比较难理解的业务。前一段时间,公司想做一个轻量级的帮助中心,所以我就去调研了一下。找的时候发现网上做这个很多,经过初步的尝试,还是觉得docsify操作起来更简单一点。docsifydocsify是一款文档网站生成工具,它的官方说明文档......
  • 搭建小实战和Sequential的使用
    搭建小实战和Sequential的使用模型搭建以CIFAR10model结构为例搭建网络CIFAR10model结构torch.nn.Flatten是PyTorch中的一个模块,用于将多维的输入张量转换为一维的输出张量。它可以被用作神经网络模型中的一层,用于将输入张量展平后作为全连接层的输入。比如输入张量的形......
  • spark环境搭建
    我们在上一篇文章中搭建了相关的Hadoop,现在我们来搭建spark环境Hadoop搭建[https://www.cnblogs.com/xiaozhounandu/p/14166282.html]前言(注意,spark和Scala环境及配置文件必须每个节点都必须要有!!!)Spark必须在Hadoop集群上,它的数据来源是HDFS,本质上是Yarn上的一个计算框架,像M......
  • 禾匠小程序商城搭建教程
    1、演示环境配置服务器2核2G+centos7.9+php7.2+mysql5.7.40+redis6.2.7+baota8.0.12、创建网站保存好创建的数据库信息3、上传后台上传完毕以后,解压4、配置站点网站目录选择创建好的站点即可,不需要点击到站点目录里面5、配置数据库信息打开config/db.exam......
  • 利用text-generation-webui快速搭建chatGLM2-6b/LLAMA2-7B-chat大模型运行环境
    text-generation-webui 是一个基于Gradio的LLMWebUI开源项目,可以利用其快速搭建各种文本生成的大模型环境。一、安装text-generation-webui的readme其实已写得相当详细了,这里就不再重复,只说1个可能存在的坑:安装peft安装卡住requirements.txt中有一些依赖项,需要访问gith......
  • 【22.0】课程页面搭建
    【一】原型图【二】前端页面搭建【1】免费课页面<template><divclass="course"><Header></Header><divclass="main"><!--筛选条件--><divclass="condition"><ulclass="c......
  • 【23.0】搜索功能搭建
    【一】搜索功能后端luffyCity\luffyCity\apps\course\views.py#搜索---查询所有+过滤classSearchCourseView(GenericViewSet,ListModelMixin):serializer_class=CourseSerializerqueryset=Course.objects.filter(is_delete=False,is_show=True).order_......