位置: 编程技术 - 正文

THREE.JS入门教程(6)创建自己的全景图实现步骤(threejs入门教程)

编辑:rootadmin
译序 Three.js是一个伟大的开源WebGL库,WebGL允许JavaScript操作GPU,在浏览器端实现真正意义的3D。但是目前这项技术还处在发展阶段,资料极为匮乏,爱好者学习基本要通过Demo源码和Three.js本身的源码来学习。 0.简介 全景图非常酷。使用Three.js做一个属于自己的全景图并不是那么困难。 要做一个全景图,你需要一个软件用来做一张全景图片(译者注:如果你没有那些特殊的设备)。我使用了iPhone上的Microsoft Photosynth软件来制作。 1.环境纹理 首先什么是环境纹理?在WebGL或者OpenGL中他们实际上是种特殊的立方体纹理。一个立方体纹理是对整个场景(虚拟的或现实的)的观察,场景的样子被“贴”在了立方体的内部表面。想象一下,你站在山顶,向前看,向左看,向右看,向上看,向下看,最后向后看。每一次你都看到了这个“立方体”的内部表面,你就站在这个立方体的中心。如果这个立方体足够大,就很难分辨出立方体的棱和角,而给你一种错觉:你处在一个很大的环境里面。如果你还没弄明白,那么维基百科上的cube maps条目会非常有帮助。 这很酷,但是这怎么用?我们可以像做反射和折射一样,而且事实上这两者的函数都已经内建在GLSL,WebGL的着色器语言上了。你只需要传递给着色器6张纹理图片,每张代表立方体的一个内表面,然后告诉WebGL这是个立方体纹理,然后就可以使用上面的效果了。 半轴:这个术语服务于立方体纹理。因为我们通常使用三个轴来描述三维空间:x轴、y轴、z轴,所以用于立方体纹理的图片也用轴的名称来标识了。一共六张图片,每个轴两张图片,正半轴一个,负半轴一个。 2.创建全景图片 创建全景图片的第一步就是走出户外,使用手机上的应用来照一张。我在伦敦的金融区转了一圈,然后在Gherkin照了一张。我获得了下面这张图片: 值得指出的是,这个应用将图片做成了贴到球体上的那种。这看上去不错,但是我们现在需要将它贴到一个立方体的内表面上,所以还要处理一下这张图。 3.转化到立方体上 这部分我简短介绍一下。我把刚才获得的那张照片载入到一个3D建模软件中,比如Maya或者Blender,然后将其粘贴到一个球体的内表面上。然后我创建了6个正射投影的相机,每一个都对应于一个半轴。最后我将这6个相机捕捉到的图像保存了下来。具体怎么完成比较复杂,也没必要在这里讲解,所以我写了一个Blender脚本文件,所有的一切都设置好了。 使用这个脚本文件你只需要: 1.将你自己的全景图重命名为 environment.jpg; 2.将全景图和Blender脚本文件放在同一个文件夹下; 3.载入脚本文件; 4.点击右侧的 Animation 按钮; 5.等一会儿,6张图像已经创建好了。 很Cool吧?现在你可以重新命名这些图像,使之与每一个半轴相匹配。比如这样: &#;.png → pos-z.png &#;.png → neg-x.png &#;.png → neg-z.png &#;.png → pos-x.png &#;.png → neg-y.png &#;.png → pos-y.png 4.加入场景 现在我们已经获得了环境纹理,然后将其载入到场景中。Three.js使这变得非常简单: 现在只需要将cubemap指定到一个材质中去就可以了! 5.小结 就这样了,实现一个全景图很酷,尤其是你可以将你自己的地方制作为WebGL全景图。和往常一样,我打包了这次教程的源码

推荐整理分享THREE.JS入门教程(6)创建自己的全景图实现步骤(threejs入门教程),希望有所帮助,仅作参考,欢迎阅读内容。

THREE.JS入门教程(6)创建自己的全景图实现步骤(threejs入门教程)

文章相关热门搜索词:three.js bim,three.js入门教程(合集),three.js stl,three.js入门教程(合集),three.js入门教程(合集),three.js中文教程,threejs入门教程,three.js 教程,内容如对您有帮助,希望把文章链接给更多的朋友!

js中parseFloat(参数1,参数2)定义和用法及注意事项 今天在看jquery的时候里面用到了parseFloat(第一个参数,),一直不懂第二个参数是什么意思,于是上网查了一下,怕以后忘记就记下来。定义和用法:par

JavaScript起点(严格模式深度了解) 严格模式(StrictMode)是ECMAScript5新增的功能。ECMAScript5虽然可以向后兼容ECMAScript3,但如果使用严格模式,哪些ECMAScript5不在建议使用的ECMAScript3语法功能将

document.all的一个比较完整的总结及案例 一.document.all是页面内所有元素的一个集合。例如:document.all(0)表示页面内第一个元素二.document.all可以判断浏览器是否是IEif(document.all){alert("isIE!");}三.

标签: threejs入门教程

本文链接地址:https://www.jiuchutong.com/biancheng/379145.html 转载请保留说明!

上一篇:js鼠标点击事件在各个浏览器中的写法及Event对象属性介绍(js鼠标点击事件监听)

下一篇:js中parseFloat(参数1,参数2)定义和用法及注意事项(js parseint parsefloat)

  • 偶然所得纳税计算
  • 购入安装设备的专用材料分录
  • 小规模纳税人减征额怎么计算
  • 股东转让股权公司如何做账
  • 最新增值税申报表及附表下载
  • 普通发票作废要本人去拿吗
  • 公司为员工租房费用的会计分录
  • 园林项目绿化工程
  • 境内机构经常项目外汇账户
  • 土地租赁合同交不交印花税
  • 有限合伙企业对外转让财产份额
  • 开票时税收编码必须和进项一致吗
  • 关于商业健康保险产品的规范和条件
  • 金税盘用户管理是灰色不能点击
  • 物业代收水电费,业主不交怎么办
  • 预付账款和其他应收款可以抵消吗
  • 收回代扣社保怎么处理
  • 企业年检网上申报时间
  • 公司注销的时候注册资金都没交可以吗?
  • 或有事项确认资金怎么填
  • 出口退税业务流程顺序
  • 申报专利 费用
  • 留存收益净利润之间关系
  • 待认证进项税额借贷方向
  • 鸿蒙实用工具在哪里
  • 电脑上一键复制是哪个键
  • 违约金没有写按什么算
  • 不需要认证的进项税额怎么处理
  • win10您需要权限来执行删除
  • vue引入高德地图绘制多边形,编辑多边形
  • 什么是民办非企业属于民营经济吗
  • php扫一扫识别代码
  • html中的标签有哪些
  • 包装费和售后服务的区别
  • 小规模纳税人进项税额怎么处理
  • 外管证预缴税款怎么做分录
  • 初学者应该看什么书
  • 小微企业可以不交税吗
  • 通过SQLServer 2008 操作 MySQL的方法
  • sql server 2008使用说明
  • 专票丢了重开需要交钱吗
  • 个税 收入
  • 个税填在资产负债表哪个地方
  • 备用金支出没有发票怎么办
  • 应付职工薪酬的账务处理
  • 合同权利义务包含债务吗
  • 社保刚转回来,生孩子能报销吗
  • 对方企业倒闭了是否能函证
  • 固定资产一次计提折旧
  • 未认证的进项税发票入账
  • 已认证进项税转出口退税怎么处理
  • 退休人员基本养老金计发表
  • 无形资产与固定资产一样都会存在实体性贬值
  • 会计月末都需要做什么
  • 工会经费不够
  • shell 加密密码
  • 批量更新数据库最多多少条
  • vnc server apk
  • pc guide
  • Win10系统里的Smartscreen筛选器的使用以及开启方法
  • 延长药品使用时间的方法
  • android开发webview
  • eclipce System.loadLibrary报错
  • cocos2d
  • Python随机生成均匀不重复的数
  • 动作
  • nodejs middleware
  • 运行node.js的应用程序服务器
  • node 回调函数
  • Unity AssetBundle爬坑手记
  • css弹性布局是什么
  • javascript设计简单计算机
  • js控制浏览器返回按钮
  • js中对象
  • 快速学会java
  • js动态添加trtd
  • 购房发票怎么查验
  • 甘肃国家税务总局
  • 内蒙古机关事业单位工资调整最新消息
  • 成都网上税务局
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设