能否在Three.js上将反射(使用cubemap)与材质结合起来?

问题描述 投票:1回答:1

如果我在three.js中拥有一个对象,该对象应用了一个纹理(彩色纹理),例如一辆汽车--我如何在表面添加部分反射,使最终的材质是比如说,闪亮的红色金属和场景的反射的组合?

我很熟悉使用额外的相机和立方体贴图来创建反射,但我不确定如何将其与对象现有的材质相结合。

我正在使用的反射方法的一个例子可以在这里找到。

https:/github.commrdoobthree.jscommit4d1dd95d62ff48b1842bf4e3fe0c393f5bd6f4d6#commitcomment-1832509。

如果可以组合材料,是否可以控制每个部分的不透明度(原始材料与反射),以控制表面的 "反射 "程度?

衷心感谢

reflection three.js textures opacity
1个回答
2
投票

是的,但它是 reflectivity,不是 opacity 控制表面的反光程度。

请看这个例子。http:/mrdoob.github.comthree.jsexampleswebgl_materials_cubemap.html。

EDIT:这个例子并没有显示出应用在材质上的纹理,但在上面的例子中,可以这样添加。

var texture = THREE.ImageUtils.loadTexture( 'texture.jpg' );

var cubeMaterial1 = new THREE.MeshLambertMaterial( {
    color: 0xffffff,
    ambient: 0xffffff,
    map: texture,
    envMap: reflectionCube
} );

(附注: cubeMaterial1 在例子中,是应用在网格上的材料--尽管变量名的选择很特别。)

© www.soinside.com 2019 - 2024. All rights reserved.