针对setVertexBytes(:length:index:)方法在苹果的官方文档中有如下说明
对于小于4KB(即4096字节)的一次性数据,使用**setVertexBytes(:length:index:),如果数据长度超过4KB 或者需要多次使用顶点数据时,需要创建一个MTLBuffer对象,创建的buffer的目的就是为了将顶点数据存储到顶点缓存区,GPU可以直接访问该缓存区获取顶点数据,并且buffer缓存的数据需要通过setVertexBuffer(_:offset:index:)**方法传递到顶点着色器。
setVertexBytes
- 使用三角形的顶点数据和颜色,并传入顶点函数
// 1. 顶点数据、颜色数据
static const CJLVertex triangleVertices[] =
{
//顶点, RGBA颜色值
{
{
0.5, -0.25, 0.0, 1.0 }, {
1, 0,