gpt4 book ai didi

ios - Metal for iOS 中的 GL_TRIANGLE_STRIP 是什么?

转载 作者:可可西里 更新时间:2023-11-01 03:48:53 24 4
gpt4 key购买 nike

尝试绘制一条三角形,如下所示:

GL_TRIANGLE_STRIP

完成了 objc.io tutorial ,他们使用两个三角形绘制四边形。三角形断开连接并单独绘制,这意味着我需要指定 6 个顶点而不是 4 个。

// Interleaved vertex data X,Y,Z,W,  R,G,B,A
static float vertexData[] = {
// First triangle: From bottom right, clockwise
0.5, -0.5, 0.0, 1.0, 1.0, 0.0, 0.0, 1.0, // bottom right
-0.5, -0.5, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, // bottom left
-0.5, 0.5, 0.0, 1.0, 0.0, 0.0, 1.0, 1.0, // top left

// Second triangle: From top right, clockwise
0.5, 0.5, 0.0, 1.0, 1.0, 1.0, 0.0, 1.0, // top right
0.5, -0.5, 0.0, 1.0, 1.0, 0.0, 0.0, 1.0, // bottom right
-0.5, 0.5, 0.0, 1.0, 0.0, 0.0, 1.0, 1.0, // top left
};

有没有办法像在 OpenGL ES 中那样在不复制顶点的情况下绘制 strip ?

最佳答案

简短的回答是:

renderEncoder.drawPrimitives(MTLPrimitiveType.TriangleStrip, vertexStart: 0, vertexCount: 6)

它等同于 GL_TRIANGLE_STRIP

您可能还想使用索引绘图,那么您将只加载每个顶点一次,之后您将需要使用顶点索引数组来指定绘制顺序。这样您就可以通过不指定重复的顶点来保存数据。

这是对索引绘图的调用。

renderEncoder.drawIndexedPrimitives(submesh.primitiveType, indexCount: submesh.indexCount, indexType: submesh.indexType, indexBuffer: submesh.indexBuffer.buffer, indexBufferOffset: submesh.indexBuffer.offset)

干杯!

关于ios - Metal for iOS 中的 GL_TRIANGLE_STRIP 是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31477133/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com