gpt4 book ai didi

c++ - 仅修改特定元素类型的 VBO 缓冲区数据?

转载 作者:搜寻专家 更新时间:2023-10-31 00:45:32 24 4
gpt4 key购买 nike

目前我的 VBO 使用单个缓冲区,它有顶点、纹理坐标和颜色元素。

现在,是否可以只更新纹理坐标而不更新顶点/颜色?它应该与更新单独的缓冲区具有相同的效率。

最佳答案

您可以使用 glMapBufferRange 将特定范围的 VBO 映射到用户内存中.当然,如果你的顶点、颜色和纹理坐标数据是交错的,它就相当于一个glMapBuffer。 .

编辑:

如果您的 IBO 是:

[XYZ XYZ XYZ XYZ RGBA RGBA RGBA RGBA TxTy TxTy TxTy TxTy]

您可以通过映射缓冲区的最后一部分 ([TxTy TxTy TxTy TxTy]) 来仅上传纹理坐标并更新它。您也可以使用 glBufferSubData要做到这一点。更新该缓冲区比更新整个缓冲区要快。

但是如果你使用交错数据:

[XYZ RGBA TxTy XYZ RGBA TxTy XYZ RGBA TxTy XYZ RGBA TxTy]

那么你不能更新缓冲区的一部分。

关于c++ - 仅修改特定元素类型的 VBO 缓冲区数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6681871/

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