我正在以下列方式为我的天空盒指定立方体贴图纹理:
texData
unsigned char*
是vector
glTexImage2D
。
使用Visual Studio Debugger我发现每行大约需要4ms才能运行,因此使用6行指定立方体贴图纹理总共需要大约20-25ms。我在主循环的每次迭代中更新了这个立方体贴图纹理,它大大减慢了我的主循环。我知道天空盒是传统的静态,但我的应用程序需要更新天空盒,因为我正在创建一个360视频查看器。
还有另一种方法可以指定更快的立方体贴图纹理吗?我已经检查过OpenGL的文档,但我没有看到更快的方法。
更新:我对除glTexSubImage2D
次迭代以外的所有迭代替换0th
glTexSubImage2D
,现在6 var json = JsonConvert.SerializeObject(obj);
var dictionary = JsonConvert.DeserializeObject<Dictionary<string, string>>(json);
行的总时间不到5毫秒。这对我来说是令人满意的,但我想我会把问题保持开放,因为从技术上来说还没有答案。
答案 0 :(得分:0)
答案 1 :(得分:-3)
glTexImage2D很慢,因为它正在将大量的dqta从CPU内存复制到GPU内存。如果图像来自视频解码器,则它们可能已经存在于GPU存储器中。在这种情况下,您可以使用OpenGL扩展进行纹理化。
这些往往是特定于平台的。