今天学习给平面添加贴图效果
创建平面
首先创建一个平面,给平面设置一个颜色,并添加到场景中。
// 创建平面
var planeGeometry = new THREE.PlaneGeometry(1, 1);
// 给平面设置颜色
var planeMaterial = new THREE.MeshLambertMaterial({
color: 0xffffff
});
let plane = new THREE.Mesh(planeGeometry, planeMaterial);
scene.add(plane);
添加纹理贴图
接下来添加纹理贴图,创建纹理加载器,加载图片,通过map将纹理贴图传进去,就可以看到我们的纹理贴图效果了。
// 创建纹理加载器
let textureLoader = new THREE.TextureLoader();
// 加载纹理贴图
let texture = textureLoader.load(jinggai);
// 创建平面
var planeGeometry = new THREE.PlaneGeometry(1, 1);
// 给平面设置颜色
var planeMaterial = new THREE.MeshLambertMaterial({
color: 0xffffff,
map:texture
});
let plane = new THREE.Mesh(planeGeometry, planeMaterial);
scene.add(plane);
我们也可以通过planeMaterial.map=texture;
来设置纹理贴图。
设置透明度
我们通过设置透明度来让需要透明的地方透明 transparent: true
// 创建纹理加载器
let textureLoader = new THREE.TextureLoader();
// 加载纹理贴图
let texture = textureLoader.load(jinggai);
// 创建平面
var planeGeometry = new THREE.PlaneGeometry(1, 1);
// 给平面设置颜色
var planeMaterial = new THREE.MeshLambertMaterial({
color: 0xffffff,
map:texture,
transparent: true,
});
let plane = new THREE.Mesh(planeGeometry, planeMaterial);
设置环境遮挡贴图aoMap
该纹理的红色通道用作环境遮挡贴区。 默认值为null,aoMap需要第二组UV.
我们可以通过gui调整来查看aoMap贴图的效果。
const gui = new GUI();
// 添加世界坐标辅助器
var axesHelper = new THREE.AxesHelper(20);
scene.add(axesHelper);
// 创建纹理加载器
let textureLoader = new THREE.TextureLoader();
// 加载纹理贴图
let texture = textureLoader.load(jinggai);
let aoMap = textureLoader.load(aoMapImg);
// 创建平面
var planeGeometry = new THREE.PlaneGeometry(1, 1);
// 给平面设置颜色
var planeMaterial = new THREE.MeshLambertMaterial({
color: 0xffffff,
map:texture,
transparent: true,
aoMap:aoMap
});
let plane = new THREE.Mesh(planeGeometry, planeMaterial);
// planeMaterial.map=texture;
scene.add(plane);
gui.add(planeMaterial, 'aoMapIntensity').min(0).max(1).name('ao强度');
演示地址
学习笔记
当前内容为 threejs视频教程 Three.js可视化企业实战WEBGL课 -Three.js开发入门与调试设置-贴图的加载与环境遮蔽贴图强度设置-学习笔记