一.环境介绍

倘若你只是使用Three.js库中所提供的几何体,且不载入任何纹理贴图,则网页是可以从本地的文件系统中打开,并且是能够直接运行的,只需在文件管理器中双击HTML文件,它就可以在浏览器中进行显示。 (此时你将在地址栏中看到类似这样的URL:file:///yourFile.html);但这些是不能满足项目需要的,我们在作项目的时候是需要加载模型师给我们做好的模型而不是Three.js库中所提供的几何体。我们需要从外部文件里载入几何体或是纹理贴图,由于浏览器same origin policy(同源策略)的安全限制,从本地文件系统载入外部文件将会失败,同时抛出安全性异常,这里有两种方式解决这个问题:

1.1在浏览器中改变本地文件的安全策略,这将使你可以通过file:///yourFile.html来直接运行本地文件系统中的文件。(本人不建议使用这种方式,如个您感兴趣可以自行百度)

1.2从本地的服务器运行文件,这可以让你通过http://localhost/yourFile.html来访问运行在本地服务器上的文件(个人建议下载一个phpstudy工具,使用很简单 或者自己使用nodejs弄一个服务)。

二. 开始项目

2.1  准备一个  模型,threejs支持模型格式挺多的,常见的有glb(gltf)、obj、fbx、json等

2.2 引入threejs 文件  three.min.js、OrbitControls.js(相机控制器)、GLTFLoader.js(模型加载器这里展示的是glb格式模型加载器)如下:

My first three.js app

2.3 准备工作已经好了 现在开始进入代码阶段

2.3.1  我们需要以下几个对象:场景、相机和渲染器,这样我们就能透过摄像机渲染出场景。

let scene,camera,renderer,controls,load;

scene = new THREE.Scene();//场景

camera = new THREE.PerspectiveCamera( 75, window.innerWidth / window.innerHeight, 0.1, 1000 );//相机

renderer = new THREE.WebGLRenderer();//渲染器

renderer.setSize( window.innerWidth, window.innerHeight );//渲染器尺寸

document.body.appendChild( renderer.domElement );//将渲染器加入body中

controls=new THREE.OrbitControls(camera, renderer.domElement);//相机控制器

2.3.2 引入模型

load=new THREE.GLTFLoader();

load.loader('./model/test.glb,function(gl){

scene.add(gl.scene)//将模型加入到场景中

renderer.render( scene, camera );//渲染

});

到这里 理论上我们的项目已经完成了。但是我们都是要对模型、相机进行实时操作的。所以我们需要对场景进行实时渲染

function onUpdate() {

requestAnimationFrame( onUpdate );

renderer.render( scene, camera );

}

onUpdate();

至此 一个完成的项目就操作完成,后续我会继续在此项目给大家分享 模型的一些操作功能 谢谢大家

three.js和php,threejs--初创项目相关推荐

  1. node.js require 自动执行脚本 并生成html,利用node.js实现自动生成前端项目组件的方法详解...

    本文主要给大家介绍了关于利用node.js实现自动生成前端项目组件的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍: 脚本编写背景 写这个小脚本的初衷是,项目本身添加一个组件太 ...

  2. 总结Vue中index.html、main.js、App.vue、index.js之间关系以及Vue项目加载流程

    总结Vue中index.html.main.js.App.vue.index.js之间关系以及Vue项目加载流程 文章目录 总结Vue中index.html.main.js.App.vue.index ...

  3. 下载基于LigerUI+JBPM5自定义表单+Node.js的J2EE大型金融项目《财务预算系统》

    基于LigerUI+JBPM5自定义表单+Node.js的J2EE大型金融项目<财务预算系统>开发全程实录 地址:http://pan.baidu.com/s/1c3zLGZ2 密码:e7 ...

  4. animate inater插件_基于animate.css动画库的全屏滚动小插件,适用于vue.js(移动端、pc)项目...

    功能简介 基于animate.css动画库的全屏滚动,适用于vue.js(移动端.pc)项目. 安装 npm install vue-animate-fullpage --save 使用 main.j ...

  5. Vue3+node.js网易云音乐实战项目(五)

    推荐歌单详细页面顶部 1.推荐歌单详细页面 1.1.导航条和背景 1.2.头像和简介 1.3.头部完整代码 1.4.链接 实现效果 1.推荐歌单详细页面 1.1.导航条和背景 推荐歌单页面做好后,我们 ...

  6. 《Node.js开发指南》MicroBlog项目的问题汇总

    重要说明:本博已迁移到 石佳劼的博客,有疑问请到 文章新地址 留言!!! 最近对Node产生了点兴趣,就看了<Node.js开发指南>一书,按照书中的例子敲完了所有代码.书是好书,非常适合 ...

  7. 3.Vue.js 实战 调查问卷WebApp项目

    问卷调查demo已上传,欢迎大家指正,欢迎大家下载:https://download.csdn.net/download/lzb348110175/11085995 如果您没积分的话,可以私信/评论, ...

  8. 又闹分裂?Node.js 被分叉出一个项目 — Ayo.js

    Ayo(发音为"eye-oh"或 IO)是当前流行的 JavaScript 运行时 Node.js 的一个分支.它的创建是由于 Node.js 项目内部发生了一个关于"行 ...

  9. css+js+ajax+html实现京东项目

    css+js+ajax+html实现京东项目 项目开始老样子先上效果图 : 登录页面 注册页面 首页 商品详情页面 购物车页面 接下来我们开始上代码 HTML登录页面代码块 ```html <! ...

  10. 轻JS逆向分析“攒经验”项目之某交易所Sign加密参数逆向分析

    最近忙着在搞大数据相关的东西,没什么太多时间去研究复杂的JS,所以给大家来几个练手的网站"攒攒经验"吧!这次出的系列是<轻JS逆向分析"攒经验"项目> ...

最新文章

  1. 软件测试人员找工作,去大公司还是去小公司?今天就和大家唠唠
  2. HTML5会成为移动互联网应用开发的未来吗?
  3. python快速编程答案-100+Python编程题带你快速上手(附答案)
  4. 开发者必备的15 个Web开发工具
  5. mysqldump死住(实际是导致mysqld crash)
  6. 前端学习(1345):用户的增删改查操作2
  7. Callable创建多线程
  8. 查看scala变量数据类型_Scala文字,变量和数据类型| Scala编程教程
  9. 【zipkin】链路追踪
  10. 蓝桥杯 ADV-131算法提高 选择排序
  11. 解决 Illegal DefaultValue null for parameter type integer 异常
  12. 模型部署翻车记:pytorch转onnx踩坑实录
  13. 历经8年双11流量洗礼,淘宝开放平台架构和技术难点解密
  14. Java、JSP在线问卷调查系统的分析与实现
  15. Python 结合bat批处理文件 实现密码保管箱
  16. 李丰新年展望 | 一张图看清2020中国机会
  17. 在Mac OS系统下安装Java
  18. 职场必备:Excel2016,官方推荐使用技巧
  19. Selenium 循环删除页面元素
  20. macbook修改账户名称

热门文章

  1. js微信监听返回_微信小程序(2)- 框架结构amp;运行环境
  2. 原来数学才是世界上最浪漫的学科!
  3. 鬲融:从唐山走出的国际杰出青年学者
  4. 数学和物理的共同演化
  5. 纽大博士宿舍内自缢身亡,本月即将毕业
  6. 推荐系统--矩阵分解(3)
  7. IoTDI2019论文列表
  8. Java解析json出现双引号变成转义字符解决办法
  9. Springmvc架构详解
  10. 数据结构实验:连通分量个数