译序
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吧?现在你可以重新命名这些图像,使之与每一个半轴相匹配。比如这样:
•0001.png → pos-z.png
•0002.png → neg-x.png
•0003.png → neg-z.png
•0004.png → pos-x.png
•0005.png → neg-y.png
•0006.png → pos-y.png
4.加入场景 现在我们已经获得了环境纹理,然后将其载入到场景中。Three.js使这变得非常简单:
复制代码 代码如下:
// 纹理图像的url
var urls = [
'path/to/pos-x.png',
'path/to/neg-x.png',
'path/to/pos-y.png',
'path/to/neg-y.png',
'path/to/pos-z.png',
'path/to/neg-z.png'
],
// 打包成我们需要的对象
cubemap = THREE.ImageUtils.
loadTextureCube(urls);
// 设置格式为RGB
cubemap.format = THREE.RGBFormat;
现在只需要将cubemap指定到一个材质中去就可以了!
复制代码 代码如下:
var material = new THREE
.MeshLambertMaterial({
color: 0xffffff,
envMap: cubemap
});
5.小结 就这样了,实现一个全景图很酷,尤其是你可以将你自己的地方制作为WebGL全景图。和往常一样,我打包了这次教程的源码
相关推荐:
AI免费写文章生成器高效写作新革命
文字写作AI生成工具:让创作更简单、更高效
智能AI写文章:高效创作新风尚
SEO怎么做才能提升网站流量与排名?这篇文章给你全攻略,铁岭定制网站推广公司电话
seo网络上什么意思,seo表示什么 ,如何避免今日头条ai写作检测
SEO要不,来看看如何通过SEO优化提高网站流量和曝光度,seo 获客技巧
SEO关键词推广软件官网-助力企业实现高效精准的网络营销,圈圈ai
AI缩写文本:助力智能生活的革新力量,ai智能写作生成神器下载
SEO手段:提升网站流量的制胜法宝,idc网站怎么推广
SEO地址优化的秘诀:提升网站排名与流量的关键,临沂如何优化网站关键词
seo逻辑是什么,seo思路 ,语音主播怎么ai写作业
ChatGPT无法使用?了解原因及解决方法,轻松恢复智能对话体验!,ai满版图案
Zkept:重塑未来生活的智能科技革新,营销推广的面试问题
为什么做seo矩阵项目,为什么做seo矩阵项目不能做 ,怎么用ai写作
SEO目标:让您的网站轻松登顶搜索引擎,优化购物网站的搜索
seo计算了什么,seo的常用术语 ,ai智能有意思的口令
什么是神马排名?让你的网站脱颖而出,轻松占据搜索引擎的C位!,乳山网站优化关键词排名
专业SEO方案助力企业网站流量暴增,精准引流不再是难题,网站建设合同4篇
pbootcms前端翻译插件-轻松实现网站多语言支持,拓展全球市场,st ai绘画
SEO站群:打造强大网络营销引擎,助力企业快速提升排名与流量,seo网站排名案例
什么是SEO优化方案,seo的优化方案 ,ai emorobot
ChatGPTO1免费:突破智能聊天的极限,体验AI无限可能,糯米ai唱歌
文章AI指令提升写作效率的智能助手
seo需要买什么,seo需要考虑什么 ,ai做表头
SEO超级,助力企业站点冲刺搜索引擎排名,白云全网营销推广哪家强
用AI写文章:效率与创意的完美结合
seo竞价做的什么工作,seo 竞价 ,office智能ai
ChatGPT宕机恢复时间如何解决用户焦虑与技术背后的故事,ai人工智能写作火山
优方法-高效生活与工作的秘密武器,钻石营销推广方案
企业如何借助SEO咨询实现精准流量引爆,助力业绩提升,立刻推广的旅游线下营销
专业关键词助力SEO优化,让你的内容脱颖而出,东营响应式网站优化
ChatGPT不能用了?了解这一背后的真相及解决方法,ai恐怖头像
AI网页生成:轻松构建智能网站,提升品牌竞争力,杭州专业ai智能教育
seo规范是什么意思,seo包括哪些内容 ,AI智能破解
SEM做得好可以取代SEO吗?浅析两者的异同与未来趋势,王道ai
什么是seo技术,什么是seo及seo的作用 ,AI倒放仓鼠
优化平台:让数字化转型更简单、更高效,莆田谷歌seo品牌排行
二创AI:打破创意壁垒,引领未来内容创作新潮流,背影教案网站建设游戏
ChatGPT页面无法访问?解决方案,让你轻松摆脱困扰!,ai染发颜色
OpenAI银联支付-未来支付新体验,安全便捷全新升级,医学加ai
为什么关键词太少会影响你的网络营销效果?,陕西seo网站推广工具
SEO注意事项:助力网站流量提升的关键策略,济宁快速seo优化价格
怎么让AI写文章,轻松实现内容创作的智能化
ChatGPT+维护页面:您的智能助手之旅,安全、高效、无忧,奥特曼画图ai
如何选择适合你的AI工具?全面解析AI工具哪个好用
seo网站需要做什么,seo都需要做什么 ,ai怎么做喷漆效果
用AI优化文章,轻松提升内容质量与创作效率
ChatGPT显示503:如何应对AI服务不可用的困境?,ai宝贝宝贝
“曝光量扩大,助力品牌腾飞的秘密武器”,盐山网站优化免费咨询
ChatGPT中显示已进行一处编辑,但看不到内容?你需要了解的隐藏问题!,ai敲