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;
相关推荐
好奇龙猫14 小时前
【AI学习-comfyUI学习-第二十三-法线贴图工作流-depth 结构+MiDaS 法线-各个部分学习】
人工智能·学习·贴图
啊西:21 小时前
SuperMap iClient3D for WebGL与iObjects Java结合实现前端动态绘制面与体的布尔运算
java·3d·webgl
心前阳光1 天前
Unity发布webgl重要选项
webgl
schinber3 天前
Python包管理工具全景指南:从pip到现代化工具实战
python·conda·pip·uv
1024肥宅3 天前
综合项目实践:可视化技术核心实现与应用优化
svg·webgl·canvas
五点六六六3 天前
跨端RN 与 浏览器Web 的 长渲染性能 差异 与 底层 揭秘
前端·react native·webgl
nnsix3 天前
Unity WebGL端调用Windows窗口选择文件
unity·游戏引擎·webgl
我命由我123453 天前
JavaScript WebGL - WebGL 引入(获取绘图上下文、获取最大支持纹理尺寸)
开发语言·前端·javascript·学习·ecmascript·学习方法·webgl
sinat_384503114 天前
unity 的webgl生成.docx文件
unity·游戏引擎·webgl
曲幽4 天前
FastAPI入门:从简介到实战,对比Flask帮你选对框架
python·flask·fastapi·web·route·uv·uvicorn·docs