首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在OpenGL中获取矩阵堆栈的当前大小?

在OpenGL中获取矩阵堆栈当前大小的方法如下:

首先,确保矩阵堆栈被启用。如果你没有将矩阵作为变换,则不需要它。使用OpenGL函数glEnableVertexAttribArray()启用相应的属性,并使用glGetAttribLocation()获取属性的唯一索引。下面是一个示例代码:

代码语言:txt
复制
// 顶点在缓冲区的位置
GLfloat vertices[] = {0.5f, 0.5f, 0.0f, 0.0f};

// 顶点属性
glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 0, vertices);

// 启用并设置矩阵堆栈属性
glEnableVertexAttribArray(1); // 启用属性 1
glVertexAttribDivisor(1, 1); // 设置 divisor

GLint matrixStackSize = 0;
glGetAttributei(GL_MATRIX_STACK_BINDING, GL_ACTIVE_MATRIX_STACK_DEPTH, matrixStackSize); // 获取矩阵堆栈属性

这个代码段中,属性的数量(0)指的是顶点缓冲区的大小,而1指的是矩阵堆栈大小,这是你关注的信息。你可以使用glGetIntegeri_v()函数访问属性值。

总之,启用矩阵堆栈并使用glGetAttribLocation()获取属性id1并使用glGetIntegeri_v()获取矩阵堆栈的大小。

此外,还可以使用如下代码:

代码语言:txt
复制
// 矩阵缓冲区大小
glNamedBufferSubData(matrixBuffer, 0, &matrixStackSize * sizeof(GLint), NULL);
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

2分29秒

基于实时模型强化学习的无人机自主导航

领券