gpt4 book ai didi

c++ - 改变每帧顶点的颜色(OpenGL)

转载 作者:太空狗 更新时间:2023-10-29 21:25:35 25 4
gpt4 key购买 nike

我正在使用本教程:http://www.opengl-tutorial.org/beginners-tutorials/tutorial-4-a-colored-cube/

练习如下:完成后,让颜色在每一帧都发生变化。你必须在每一帧调用 glBufferData。确保在 !

之前绑定(bind)了适当的缓冲区 (glBindBuffer)

我不知道该怎么做。我知道如何修改颜色缓冲区来改变颜色,但不知道如何在每一帧中改变它们。谁能帮忙?

最佳答案

如练习所述:调用 glBufferData!您已经完成了第一次设置颜色。

更改数据后,使用 glBindBuffer 重新绑定(bind)颜色缓冲区,然后重复调用 glBufferData - 都使用与第一次相同的参数 - 以及您的新的颜色缓冲区数据将被发送到 GPU。

关于如何实际更改数据,例如,您可以使用如下循环在颜色数据数组的每个单元格中插入相同的值:

for (int i = 0; i < 12 * 3; ++i) // Replace 12 with the correct amount of points if it's wrong, the 3 is the amount of components per colour
{
g_color_buffer_data[i] = 1.0f; // Replace 1.0f with your desired colour component value
}

或者,如果您想在颜色的每个组件中插入特定值:

for (int i = 0; i < 12; ++i)
{
g_color_buffer_data[i*3+0] = 1.0f; // i * 3 is the start of a colour
g_color_buffer_data[i*3+1] = 0.5f; // i * 3 + 1 is the second component
g_color_buffer_data[i*3+2] = 0.0f; // This you should be able to figure out
// Again, replace component values with your own ones
}

这些循环应该位于调用 glBufferData 之前,在您的渲染循环中。

关于c++ - 改变每帧顶点的颜色(OpenGL),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13791241/

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