OpenGL中几个概念

1、重启图元是什么意思就是glPrimitiveRestartIndex这个接口的作用是什么?2、实例化绘制是什么意思比如glDrawArraysInstanced有什么... 1、重启图元是什么意思
就是glPrimitiveRestartIndex这个接口的作用是什么?

2、实例化绘制是什么意思
比如glDrawArraysInstanced有什么特别之处?

求高手指点一二。
展开
 我来答
peacexf
2012-10-31 · TA获得超过293个赞
知道小有建树答主
回答量:476
采纳率:100%
帮助的人:406万
展开全部
glPrimitiveRestartIndex
例如,你在绘制多个四边形,要多次调用glDrawElements(GL_QUADS)函数,每个函数里面包含相同的图元类型参数GL_QUADS,如果使用重启图元就相当于你只用写一次glDrawElements(GL_QUAD)函数,同时只要建立一个存储所有顶点索引的数组,这个数组里还存有若干RestartIndex值,然后函数依据glPrimitiveRestartIndex(RestartIndex)函数中的RestartIndex值,提取数组中部分顶点进行四边形绘制,每遇到RestartIndex值就绘制一次,直到所有顶点结束绘制。
图元重启的好处是不用来回调用函数

glDrawArraysInstanced

glDrawArraysInstanced()的运行和glMultiDrawArrays()类似,只不过对于glDrawArrays()的每次调用,开始索引和顶点计数是相同的(分别由first和count指定)。
void glDrawArraysInstanced(GLenum mode, GLint first, GLsizei count
GLsizei primcount);
primcount次有效地调用glDrawArrays(),在每次调用前设置GLSL顶点着色器值gl_InstanceID。mode指定了图元类型。first和count指定了传递给glDrawArrays()的数组元素的范围。
glDrawArraysInstanced()和如下的连续调用具有相同的效果(只不过我们的应用程序不必手动更新gl_InstanceID):
for (i = 0; i <primcount; i++) {
gl_InstanceID = i;
glDrawArrays(mode, first, count);
}
gl_InstanceID = 0;
富港检测技术(东莞)有限公司_
2024-06-06 广告
ISTA3L是一个基于研究、数据驱动的测试协议,它模拟了由零售公司完成的产品订单被直接运送给消费者时所经历的危险,它允许用户评估包装产品的能力,以承受运输和处理包装产品时所经历的供应链危险,从接收到任何电子商务零售商履行操作,直到最终消费者... 点击进入详情页
本回答由富港检测技术(东莞)有限公司_提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式