ThreeJS是WebGL的一种前端框架,UV坐标的原理是一样的。
前置知识
WebGL纹理
如果对WebGL有兴趣,可以去看WebGL贴材质这篇文章简单了解下。本文完整代码地址在GitHub。
纹理坐标系统
uv其实就是纹理坐标,因为xyz已经被顶点坐标占用了,所以uvw就用来表示纹理坐标。它时候贴图影射到模型表面的依据,把表面的点与平面上的像素对应起来,一般取值在0~1;
u:图片在显示器水平的坐标
v:垂直方向
w:垂直于显示器表面
一般情况只是在表面贴图,就涉及不到w,所以常称为uv。
ThreeJS纹理贴图
使用纹理对象贴图
ThreeJS本身做了封装,贴图十分方便,如果大家英文好可以直接去官网,嫌麻烦也可以在中文网站上直接查看教程或对象方法。(⚠️以下非完整代码)
const w=h=64,textureW=textureH=64;
var geometry = new THREE.PlaneBufferGeometry(w, h); //矩形平面
// TextureLoader创建一个纹理加载器对象,可以加载图片作为几何体纹理
var textureLoader = new THREE.TextureLoader();
// 执行load方法,加载纹理贴图成功后,返回一个纹理对象Texture
textureLoader.load('./p.jpg', function (texture) {
texture.wrapS =