gpt4 book ai didi

api - 什么是opengl当前顶点?

转载 作者:行者123 更新时间:2023-12-04 04:47:29 25 4
gpt4 key购买 nike

这是我在 opengl 文档中找到的:

void glGetVertexAttribfv(GLuint index,  GLenum pname,  GLfloat *params);

GL_CURRENT_VERTEX_ATTRIB
params returns four
values that represent the current value for the
generic vertex attribute specified by index. Generic
vertex attribute 0 is unique in that it has no
current state, so an error will be generated if
index is 0. The initial value
for all other generic vertex attributes is
(0,0,0,1).
glGetVertexAttribdv and glGetVertexAttribfv
return the current attribute values as four single-precision floating-point values;
glGetVertexAttribiv reads them as floating-point values and
converts them to four integer values; glGetVertexAttribIiv and
glGetVertexAttribIuiv read and return them as signed or unsigned
integer values, respectively; glGetVertexAttribLdv reads and returns
them as four double-precision floating-point values.

但我的问题是,我不知道当前顶点是什么。如何设置当前顶点?我可以用它来测试我发送到 opengl 的属性是否包含正确的数据吗?

最佳答案

glGetVertexAttrib返回与通用顶点属性关联的值,可以使用 glVertexAttrib 设置功能。

更详细地说,OpenGL 中有两种类型的属性可用:

  • 在执行绘图调用(例如 glDrawArrays )时处理的已启用顶点数组中为每个顶点更新的那些。
  • 那些有点像着色器制服,用于为没有关联的、启用的集合顶点数组的属性提供值。

  • 例如,假设您使用 glVertexAttribPointer 启用两个数组用作顶点属性。 , 和 glEnableVertexAttribArray ,然后通过调用 glDrawArrays( GL_POINTS, 0, NumPoints ) 进行渲染.在这种情况下,绑定(bind)的顶点着色器将被执行 NumPoints次,每次从两个数组中的每一个读取一个新值。

    但是,如果您只在数组上启用(例如,顶点数组零),您可以使用 glVertexAttrib 为属性一设置属性值。职能。如果再次调用 glDrawArrays( GL_POINTS, 0, NumPoints ) 进行渲染,顶点着色器将再次执行 NumPoints次,属性 0 的值使用启用的顶点属性数组中的值进行更新,但属性 1 的值是“常量”,并设置为 glVertexAttrib 提供的值.

    关于api - 什么是opengl当前顶点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17961990/

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