three.js和php,threejs--初创项目

一.环境介绍

倘若你只是使用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();

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/512084.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数字营销行业大数据平台云原生升级实战

简介: 加和科技CTO 王可攀:技术是为业务价值而服务 王可攀 加和科技CTO 本文将基于加和科技大数据平台升级过程中面临的问题和挑战、如何调整数据平台架构以及调整后的变化,为大家介绍数字营销行业大数据平台云原生升级实战经验。主要分为以…

云上更安全?亚马逊云科技宣布将持续加大在中国区域安全合规领域投入

编辑 | 宋慧 出品 | CSDN云计算 新冠疫情对我们工作产生了深远的影响,远程在线的工作与交流愈加普及,国内更多公司在推出居家办公的“混合办公”模式。不过,这也给了网络攻击更多的机会,CSDN看到,有多个安全领域的报告…

场景模型驱动自动化测试在盒马的探索及实践

简介: 盒马业务有如下几个特点:线上线下一体化、仓储配送一体化、超市餐饮一体化、经营作业一体化、多业态与平台化。在以上的种种原因,生鲜及物流体验是盒马的特点,但仓储配送一体化作业中,如何能更高效的提升测试效率…

基于 KubeVela 的 GitOps 交付

简介: KubeVela 是一个简单、易用、且高可扩展的云原生应用管理和交付平台,KubeVela 背后的 OAM 模型天然解决了应用构建过程中对复杂资源的组合、编排等管理问题,同时也将后期的运维策略模型化,这意味着 KubeVela 可以结合 GitOp…

php curlopt_postfields,PHP的CURLOPT_POSTFIELDS参数使用数组和字符串的区别 - CSDN博客

PHP的CURL组件是非常常用的HTTP请求模拟器。通常要发送post数据时,我已经习惯于这样写:curl_setopt( $ch, CURLOPT_POSTFIELDS,$post_data);但是在向某一个服务器发送请求的时候,服务器返回500。而使用socket方式连接上去发送请求&#xff0c…

BCS2022大会将提前至5月 网络安全产业空间扩容将成热门话题

年度网络安全的盛会即将开启。 2022年3月30日,2022年北京网络安全大会(BCS2022)新闻发布会在北京奇安信安全中心召开,宣布2022年北京网络安全大会“提档”至5月24日至26日,并与北辰集团国家会议中心达成战略合作&#…

基于 Istio 的全链路灰度方案探索和实践

简介: 本文介绍的基于“流量打标”和“按标路由” 能力是一个通用方案,基于此可以较好地解决测试环境治理、线上全链路灰度发布等相关问题,基于服务网格技术做到与开发语言无关。同时,该方案适应于不同的7层协议,当前已…

图像检索在高德地图POI数据生产中的应用

简介: 高德通过自有海量的图像源,来保证现实世界的每一个新增的POI及时制作成数据。在较短时间间隔内(小于月度),同一个地方的POI 的变化量是很低的。 作者 | 灵笼、怀迩 来源 | 阿里技术公众号 一 背景 POI 是 Poin…

Redis HyperLogLog 是什么?这些场景使用它~

作者 | 就是码哥呀来源 | 码哥字节在移动互联网的业务场景中,数据量很大,我们需要保存这样的信息:一个 key 关联了一个数据集合,同时对这个数据集合做统计。统计一个 APP 的日活、月活数;统计一个页面的每天被多少个不…

matlab三角形分割,MATLAB 2014b及以上版本中带有画家渲染器的三角形拆分补丁

在解决实际问题之前,这是一个值得怀疑的解决方法:对角线只是三角形之间的空白区域,所以我们看到的是补丁后面的白色空间.愚蠢的想法:让我们用匹配的颜色填充该空间而不是白色.为此,我们将复制所有对象,并通过一个tiiiiny位来抵消新对象.码:hi…

网易云音乐音视频算法的 Serverless 探索之路

简介: 网易云音乐最初的音视频技术大多都应用在曲库的数据处理上,基于音视频算法服务化的经验,云音乐曲库团队与音视频算法团队一起协作,一起共建了网易云音乐音视频算法处理平台,为整个云音乐提供统一的音视频算法处理…

小小的 likely 背后却大有玄机!

作者 | 张彦飞allen来源 | 开发内功修炼今天我给大家分享一个内核中常用的提升性能的小技巧。理解了它对你一定大有好处。在内核中很多地方都充斥着 likely、unlikely 这一对儿函数的使用。随便揪两处,比如在 TCP 连接建立的过程中的这两个函数。//file: net/ipv4/t…

阿里云马涛:因云进化的基础软件

简介: 基础软件的云原生化。 编者按:2021 年10 月20 日,在2021 云栖大会云计算产业升级峰会上,阿里云“因云而生”云原生心智大图正式发布,包含弹性计算、云网络、基础产品、基础设施、操作系统、云安全、开放平台等7个…

阿里云ECI如何6秒扩容3000容器实例?

简介: 2021年云栖大会现场,阿里云工程师演示了在6秒时间内成功启动3000个ECI,并全部进入到Running状态。本文将为你揭开阿里云ECI是如何做到极速扩容的。 引言 根据最新CNCF报告,有超过90%的用户在生产环境使用容器,…

matlab 轴承 压力分布 绘图,数值计算绘制动压轴承压力场分布图

动压轴承的压力场分布,要求求解雷诺方程的简化形式为:!!xh3!!px!"!!zh3!!pz!"6U"!h!x公式中参数的含义参见流体动力学。1编程求解雷诺方程采用有限差分的五点差分格式,120120网格点计算。采用C语言编写求解轴承压力分布的程序,可以大大提高运行速度,节省计算时间…

巧用友盟+U-APM 实现移动端性能优化—启动速度

简介: 移动端性能对用户体验、留存有着至关重要的影响,作为开发者是不是被这样吐槽过,“这个 APP 怎么这么大?”、“怎么一直在 APP 封面图转悠,点不进去”、“进入详情效果有些卡”、“用 4G 使用你们的 APP&#xff…

第25版 OpenStack Yoga 已发布

OpenStack社区今日正式发布第25版-Yoga,该版本通过支持先进的硬件技术如SmartNIC DPUs,优化与云原生软件如Kubernetes、Prometheus等的集成以及减少技术债等方式来保持OpenStack内核的稳定性与可靠性。 OpenStack作为开源基础设施即服务(Iaa…

项目实战总结以及接入U-APM

简介: 导致 App 性能低下的原因有很多,除去设备硬件和软件的外部因素,其中大部分是开发者错误地使用线、系统函数、编程范式、数据结构等导致的。即便是较有经验的程序员,也很难在开发时就能避免所有导致性能低下的“坑”&#xf…

oracle redo 200mb,Oracle的redo log在各场景下的恢复

Oracle的redo log非常重要,redo log损坏将导致数据库开法开启或数据丢失,针对redo log在各种场景下如何打开或恢复数据库,特别模拟测试说明:各场景包括如下(共6个场景):场景一.非归档下inactive状态的redo 恢复场景二.非归档下act…

站在原地就是退步——除了死磕通道,云通讯服务商还该做些什么?

受访嘉宾:吴佳钊,杭州云片网络科技有限公司联合创始人、CTO 当前,全球通信云已经步入2.0时代,最大的变化在于通信形式的变革:传统短信语音的通信形式将逐步向包括即时通讯IM实时音视频RTC的互联网通信转变。尤其在5G时…