Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >three.js从cubecamera创建纹理

three.js从cubecamera创建纹理
EN

Stack Overflow用户
提问于 2015-12-30 13:29:10
回答 2查看 1.2K关注 0票数 2

当使用立方体相机时,通常会将材料的envMap设置为cubeCamera.renderTarget,例如:

代码语言:javascript
运行
AI代码解释
复制
var myMaterial = new THREE.MeshBasicMaterial({color:0xffffff, 
        envMap: myCubeCamera.renderTarget,
        side: THREE.DoubleSide});

这对网格非常有用,因为这些网格是用来反射或折射立方体相机所看到的。但是,我想简单地创建一个纹理并将其应用到我的网格中。换句话说,我不希望我的对象反映或折射。我想把脸的正常值忽略掉。

我试过使用THREE.WebGLRenderTarget,但它不能处理立方体相机。显然,用一个带有WebGLRenderTarget的自检相机并不能给我提供360的纹理。

最后,简单地将cubeCamera.renderTarget分配给材料的“map”属性也不起作用。

能做我想做的事吗?

r73。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-01-04 07:48:45

答案是:将材料上的refractionRatio设置为1.0。然后,人脸法线被忽略,因为没有发生折射。

在一个正常的情况下,立方体相机是在同一场景中的网格,这将是没有意义的,因为网格将是无形的。但是在立方体相机正在看不同场景的情况下,这是一个有用的特性。

票数 1
EN

Stack Overflow用户

发布于 2015-12-31 04:38:00

编辑:这不是这个问题的作者想要的,我会把我的答案留给其他人

您的envmap已经是一个纹理,所以没有必要将它作为映射应用。此外,立方体地图和纹理在结构上是不同的,所以不可能交换它们,或者如果你成功地做到了这一点,结果可能不是你可能期望的那样。

我从您要求的内容中了解到,您希望在每个框架上更新一个静态envmap,如果是这样的话,就不要将myCubeCamera.updateCubeMap()运行到您的呈现函数中。相反,把它放在你的场景初始化结束与你想要的立方体相机的位置,你的envmap将只显示该帧。

见下面的例子:

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34537522

复制
相关文章

相似问题

提高网络编码性能

11

如何提高azure搜索性能

10

如何提高SQL Azure查询性能

12

通过网络提高mysql性能

10

如何提高神经网络的性能?

12
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档