glVertexAttribPointer语言 - 顶点法线或颜色
glVertexAttribPointer - vertex normal or color
当我使用glVertexAttribPointer时,OpenGL如何知道我是指顶点,正常还是颜色?下面是我的代码:
glEnableVertexAttribArray(0);
glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 6 * sizeof(float), 0);
在这个例子中,我指的是顶点。那么OpenGL是怎么知道的呢?如果我想给我的形状添加法线,我怎么告诉OpenGL这是法线?
没有。
你指定给GL,要么通过在着色器中的内联位置属性,要么通过与glBindAttribLocation绑定哪个位置将与你的输入着色器属性一起使用。
在shader中的位置语法(一个布局限定符):
layout(location = attribute index) in vec3 position;
编辑添加:我应该提到,如果你不指定位置,GL将自己选择,然后你必须通过glGetAttribLocation询问它使用的位置。
相关文章:
- 如何在内核C++中使用1920x1080x16M图形或类似的16M颜色?(VGA)
- 使用 std::string () const 函数启动线程或未来
- 线程消息传递或更好:在"大师班"中访问其他班级的成员
- 从不同进程中的另一个线程挂起/恢复线程或进程
- 多线程:线程或进程.h - C++
- 给定使用 C++ 或 C,我如何测量在 linux 下进行线程切换需要多长时间?可能吗?
- Qt信号和插槽如果从QRunnable或其他线程调用,则不起作用
- 在计时器或主线程外部的命令上销毁/替换线程
- 在librdkafka中,dr_cb在produce()线程或poll()线程上执行
- 在不同的线程中调用向量析构函数或清除
- 自终止线程.使用联接或分离
- QTcpSocket 或 QSslSocket 是否会自动创建用于读取/写入的线程?
- 睡眠线程或进程的指令是否在线程/进程休眠时继续执行?
- 我们是否需要对多线程 x32 系统使用 lock 来读取或写入 uint32_t 变量
- C STD ::线程中的种族状况或内存损坏
- 无法在QImage上绘制或更改像素的颜色
- 睡眠:(睡眠或usleep)并没有将我的线程中的所有内容悬挂在Linux中,而是在Windows中悬挂吗?为什么
- 如何将控制台输出的文本颜色更改为红色,但如果从Powershell或CMD运行,背景将保持相同的颜色
- 更好的做法:永远循环线程或连续线程
- glVertexAttribPointer语言 - 顶点法线或颜色