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;
相关推荐
二狗哈3 分钟前
Cesium快速入门8:相机的方向与位置
webgl·cesium·地图可视化
da_vinci_x20 小时前
PS 图案预览 + Sampler:告别“修接缝”,AI 量产 4K 无缝 PBR
人工智能·游戏·aigc·贴图·技术美术·游戏美术·法线贴图
一个很帅的帅哥21 小时前
three.js和WebGL
开发语言·javascript·webgl
二狗哈1 天前
Cesium快速入门4:天空盒
webgl·cesium·地图可视化
大、男人1 天前
python uv 包管理介绍
uv
二狗哈1 天前
Cesium快速入门1:打造第一个Cesium应用
webgl·cesium
tangdou3690986552 天前
AI真好玩系列-WebGL爱心粒子手势互动教程 | Interactive Heart Particles with Hand Gestures
前端·人工智能·webgl
mylinke3 天前
虚拟同步发电机离网并网无缝切换MATLAB仿真模型VSG simulink建模
贴图
小oo呆4 天前
【学习心得】UV包和项目管理工具
uv
JustNow_Man5 天前
【UV】 推荐使用UV管理Python
人工智能·python·uv