如何使用 VAOs/VBOs 为相同的顶点指定多个 UV 坐标?

How can I specify multiple UV coordinates for same vertexes with VAOs/VBOs?

我处于一种情况,我想使用 VAO/VBO 来回收相同的顶点并使用索引来加速渲染。

一切都很好,除了我的纹理模型使用 UV 坐标并且对于完全相同的顶点(大约 >80%)我可能最终会根据我预期渲染的三角形得到不同的 UV 坐标(事实上,我正在使用 md2 models 和纹理)。

这种渲染方式非常适合旧的 立即 模式;现在,解决这个问题并通过 VAOs/VBOs 呈现的最佳方法是什么?
我想到的是 分解 三角形并创建具有重复顶点的非常大的 VBO,这样我就可以 link 每个 "same" 的正确 UV 坐标。

我不得不说我不喜欢这个……有什么想法吗?

Ps。对于不理解格式的人:如果你想使用纹理映射,我相信你已经使用基于你正在渲染的三角形的自定义 UV 坐标。不然贴图颜色都乱了!

All is fine, apart my textured models use UV coordinates and for the very same vertexes (approx >80%) I may end up having different UV coordinates based on which triangle I'm expected to be rendering

那么它们就是不同个顶点。顶点是其所有属性(位置、法线、颜色、纹理坐标等)的整体组合。如果这些值中只有一个不同,那么您正在处理一个完全不同的顶点。