携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第12天,点击查看活动详情 >>
aoMap 环境遮罩
如果没有AO,整个场景感觉非常扁平(flatter),我们大脑潜意识根本获取不到场景的深度信息。 所以,AO主要目标是模拟和计算我们能直接看到那部分场景的阴影。 aoMap:纹理 该纹理的红色通道被用作环境遮挡贴图。默认值为null。aoMap需要第二组uv。
const doorAmbientOcclusionTexture = textureLoader.load("./img/ambientOcclusion.jpg");
material.aoMap = doorAmbientOcclusionTexture;
aoMapIntensity 环境遮挡效果的强度
环境遮挡效果的强度。默认值为1。零是不遮挡效果。
material.aoMapIntensity = 1;
map 颜色贴图
颜色贴图。可以选择包括一个alpha通道,通常与 .transparent 或 .alphaTest。默认为null。 纹理贴图颜色由漫反射颜色 .color 调节。
const doorColorTexture = textureLoader.load("./img/color.jpg");
material.map = doorColorTexture;
displacementMap 置换贴图
位移贴图会影响网格顶点的位置,与仅影响材质的光照和阴影的其他贴图不同,移位的顶点可以投射阴影,阻挡其他对象, 以及充当真实的几何体。位移纹理是指:网格的所有顶点被映射为图像中每个像素的值(白色是最高的),并且被重定位。
Displacement Map(置换贴图,也叫移位贴图)可以改变模型对象的几何形状,因此在提供最真实的效果的同时也会大幅增加渲染性能的开销。
// 初始化一个纹理加载器
const textureLoader = new THREE.TextureLoader();
// 用.load()加载纹理贴图
const doorheightTexture = textureLoader.load("./img/height.jpg");
// 材质贴图
material.displacementMap = doorheightTexture;
alphaMap 透明度贴图
alpha贴图是一张灰度纹理,用于控制整个表面的不透明度。(黑色:完全透明;白色:完全不透明)。 默认值为null。 只使用纹理的颜色,忽略alpha通道(如果存在)。 对于RGB和RGBA纹理,WebGL渲染器在采样此纹理时将使用绿色通道, 因为在DXT压缩和未压缩RGB 565格式中为绿色提供了额外的精度。 Luminance-only以及luminance/alpha纹理也仍然有效。
const textureLoader = new THREE.TextureLoader();
const doorAlphaTexture = textureLoader.load("./img/alpha.jpg");
material.alphaMap = doorAlphaTexture;
// transparent得设置
material.transparent = true;