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;
相关推荐
CG_MAGIC1 天前
3ds Max材质编辑器:精简模式与Slate模式对比
3d·编辑器·材质·贴图·uv·建模教程
玉夏1 天前
【Shader基础】UV 与纹理采样 Part1
unity·着色器·uv
魔士于安2 天前
Shader forge技术美术专用
游戏·unity·游戏引擎·贴图·技术美术·模型
codeaideaai2 天前
使用UV创建python项目
python·fastapi·uv
milo.qu2 天前
Python工程工具链:uv + 虚拟环境
uv
魔士于安3 天前
unity 音乐会场景 unity2022
游戏·unity·游戏引擎·贴图·模型
砍材农夫3 天前
python环境|pip|uv|venv|Conda区别
后端·python·conda·pip·uv
auccy4 天前
Unity Sprite 添加法线贴图
unity·贴图·normal
jingqiulyue4 天前
uv sync 找不到uv怎么办
uv
love530love4 天前
2026年终极防坑指南:基于 EPGF 架构彻底“本地化” UV 环境与工具
人工智能·windows·python·架构·devops·uv·epgf