threejs ShapeGeometry 自定义贴图的uv坐标

问题描述:

由于一些原因,要绘制一个长方形,但是这个长方形并不是 PlaneGeometry,而是一个ShapeGeometry。但是同样的贴图,同样的形状,贴图贴在PlaneGeometry上时可以正常显示,但是贴在ShapeGeometry中却不可以正常显示。所以判断是贴图uv坐标问题。

问题排查:

PlaneGeometry默认顶点坐标和uv坐标对应关系如下,其中点1,2,3,4为geometry的vertex顺序

ShapeGeometry默认顶点坐标和uv坐标对应关系如下:

我们看到,uv是这样的,和他的顶点坐标是一致的,但是实际上,我们希望uv的对应关系和PlaneGeometry是一致的。所以我们手动修改uv和顶点的对应关系

解决办法:

javascript 复制代码
const uvs = [];

uvs.push(0, 1);
uvs.push(1, 1);
uvs.push(1, 0);
uvs.push(0, 0);

groud.geometry.setAttribute('uv', new THREE.Float32BufferAttribute(new Float32Array(uvs), 2));
groud.geometry.getAttribute('uv').needsUpdate = true;
相关推荐
SunnyRivers7 小时前
uv 与 pip:Python 包与依赖管理工具对比
python·pip·uv
布史1 天前
UV 项目管理指南
uv
cuckooman1 天前
uv设置国内源
python·pip·uv·镜像源
电棍2331 天前
使用uv的一些心得记录
uv
银月光科技1 天前
从光源到体验:UV LED技术如何推动美甲固化设备升级
uv·紫外led
电棍2331 天前
AUTODL服务器环境配置和下载数据概述
运维·深度学习·uv
至此流年莫相忘1 天前
Python包管理工具之UV
python·uv
Zomcxj2 天前
PasteLabel 图像编辑器:贴图标注,解决样本采集难题
人工智能·python·编辑器·贴图
全栈王校长3 天前
Three.js 材质进阶
webgl·three.js
全栈王校长3 天前
Three.js Geometry进阶
webgl·three.js