【发布时间】:2017-05-07 05:43:34
【问题描述】:
世界几何的视频播放,也就是“电影纹理”,是许多游戏的重要功能。在 Android 上,这可以通过使用
GL_TEXTURE_EXTERNAL_OES
OpenGL ES 的扩展。
但我找不到任何类似的 vulkan 扩展或功能。
是否有人已经找到了如何使用 vulkan 播放视频的解决方案,它不涉及在 CPU 和 GPU ram 之间复制每一帧的纹理数据,因此对于 Android 设备来说足够高效?
【问题讨论】:
-
Vulkan 的外部内存扩展几个月前就已经登陆了。给它一些时间。它仍然被认为是实验性的,驱动程序需要实现这一点,并且第 3 方软件(如 Android)需要公开和利用该功能。
-
即
VK_KHX_external_memory和朋友可能是您正在寻找的扩展等价物。 -
是的。尽管正如 Nicol Bolas 在他的回答中提到的那样,external_memory 扩展并不是完整的答案:您还需要一种以可移植方式处理 YCbCr 格式和设备特定格式的方法。 GL_TEXTURE_EXTERNAL_OES 是一个巨大的驱动魔法黑盒(通常涉及隐藏着色器重新编译);在 Vulkan 中实现同样的目标不会那么简单。