OpenGL顶点规范和绘图命令:顶点属性除数 Vertex Attribute Divisors

  1. OpenGL顶点规范和绘图命令 Vertex Specification and Drawing Commands
  2. 图元类型 Primitive Types
  3. 当前顶点属性值 Current Vertex Attribute Values
  4. 顶点数组 Vertex Arrays
  5. 通用顶点属性的数组 Specifying Arrays for Generic Vertex Attributes
  6. 顶点属性除数 Vertex Attribute Divisors
  7. 使用顶点数组绘制命令 Drawing Commands Using Vertex Arrays
  8. 条件渲染 Conditional Rendering

在OpenGL中,“顶点属性除数”是一种用于控制属性在渲染期间前进速率的概念,特别是在一次绘制调用中处理多个图元实例的情况下。这对于希望使某些属性的变化频率低于每个顶点的情况特别有用,尤其是在渲染多个图元实例时。

具体工作原理如下:

  • 如果将除数设置为零,则相应的属性每个顶点前进一次。
  • 如果除数为非零,则属性每个除数实例的图元集合前进一次。

如果相应的除数值为非零,则泛型属性被称为“实例化”。

要为从顶点数组对象中获取的属性设置除数值,可以使用以下命令:

  • VertexBindingDivisor:

    void VertexBindingDivisor(uint bindingindex, uint divisor);
    

    对于此命令,顶点数组对象是当前绑定的顶点数组对象。它将为绑定到顶点数组对象的指定bindingindex的缓冲区设置除数值为指定的divisor

  • VertexArrayBindingDivisor:

    void VertexArrayBindingDivisor(uint vaobj, uint bindingindex, uint divisor);
    

    对于此命令,vaobj是顶点数组对象的名称。它将为绑定到顶点数组对象的指定bindingindex的缓冲区设置除数值为指定的divisor

以下命令是一个简便方法,等效于VertexAttribBindingVertexBindingDivisor的组合:

  • VertexAttribDivisor:

    void VertexAttribDivisor(uint index, uint divisor);
    

    此命令等效于(假设没有生成错误):

    VertexAttribBinding(index, index);
    VertexBindingDivisor(index, divisor);
    

总之,这些命令提供了一种控制渲染期间某些属性变化速率的方法,特别是在涉及多个图元实例的场景中。

  • 7
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值