微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用顶点的 UV 属性将单个纹理映射到立方体的所有侧面?

如何解决如何使用顶点的 UV 属性将单个纹理映射到立方体的所有侧面?

目前我正在创建一个像这样的立方体网格:

        //bottom vertices of cube
                    positions.push([ 0.0,0.0,0.0 ]);
                    uvs.push([ 0.0,0.0 ]);

                    positions.push([ 1.0,1.0 ]);

                    positions.push([ 1.0,1.0 ]);
                    uvs.push([ 1.0,1.0 ]);

                    positions.push([ 0.0,0.0 ]);


                    //upper vertices of cube
                    positions.push([ 0.0,1.0,0.0 ]);
                    uvs.push([ 1.0,0.0 ]);

                    positions.push([ 0.0,1.0 ]);

(我使用 16x16 像素大的纹理)

但我很难映射这些 uv 位置,因为工作的最大边数是 4。 如果每边有 4 个顶点(总共 24 个),我会知道该怎么做,但由于性能原因,我不想这样做。

有没有办法在每个立方体只有 8 个顶点的情况下做到这一点?

解决方法

  • 最小的立方体有六个面

  • 每边有两个三角形

  • 一个最小立方体将有十二个三角

  • 不要,重复不要费心尝试分享顶点。如果出于某种原因您想这样做,请稍后再做。

  • 只需确保每对 tris(一个正方形)具有正确的 UV

https://stackoverflow.com/a/36845398/294884

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。