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;
相关推荐
子午18 小时前
Python的uv包管理工具使用
开发语言·python·uv
平行云2 天前
赋能数字孪生:Paraverse平行云实时云渲染平台LarkXR,提供强大的API与SDK用于二次开发和深度集成
3d·unity·ue5·webgl·实时云渲染·云xr
AndrewHZ4 天前
【3D算法技术】blender中,在曲面上如何进行贴图?
算法·3d·blender·贴图·三维建模·三维重建·pcg
haveyb4 天前
python版本管理和依赖管理的最佳实践,pyenv + uv
python·virtualenv·pip·uv·pyenv
星空彡5 天前
MCP学习一——UV安装使用教程
uv·uv工具使用
愈努力俞幸运5 天前
uv教程 虚拟环境
python·uv
letwant6 天前
uv使用指南
uv
刘皇叔code7 天前
记一次用Three.js展示360°全景图的折腾
webgl·three.js
寒水馨8 天前
Windows 11 手动下载安装配置 uv、配置国内源
windows·python·国内源·uv·windows11
MonkeyKing_sunyuhua9 天前
mac怎么安装uv工具
python·macos·uv