opengl-es - 获取多个片段的 Vulkan/OpenGL 子通道
问题描述
因此,Vulkan 引入了 subpasses,opengl 实现了与 ARM_framebuffer_fetch 类似的行为
过去,我成功地使用 framebuffer_fetch 进行色调映射后期效果着色器。
当时的限制是只能在当前渲染片段的位置读取帧缓冲区的内容。
现在,我想知道的是,Vulkan(甚至 OpenGL ES)现在是否有任何方法可以从多个位置读取(例如实现模糊内核),而无需平铺硬件来存储/加载到 RAM。
理论上我想这应该是可能的,第一遍 wpuld 只需要渲染比模糊子通道略大,基于内核大小(例如,如果内核大小是 4 像素,那么解析的图块需要比模糊子通道小 4 像素块内缓冲区大小)和一些像素必须冗余渲染(在块的重叠上)。
现在,有没有办法做到这一点?我似乎记得看过一些与 subpasses 相关的 Vulkan 指令,这些指令可以定义支撑尺寸(这听起来像我现在正在寻找的东西),但我不记得我在哪里看到的。所以我的问题:
使用移动平铺渲染器架构上的 Vulkan,是否可以前向渲染某些几何图形并在其上渲染全屏模糊,所有这些都在单个平铺通道中(无需硬件存储中间通道的结果先 ram,然后在模糊时从 ram 加载纹理)?如果是这样,怎么做?
如果 1 的答案是肯定的,是否也可以在 OpenGL ES 中完成?
解决方案
简短的回答,不。Vulkan 子通道仍然具有 1:1 片段到像素关联的要求。
推荐阅读
- sql - 异构查询需要 ansi_warnings 错误
- android-studio - 带有 Log.DEBUG 和 Log.VERBOSE 的 Log.println() 方法在诺基亚 1 中不起作用
- printing - 创建打印机设备上下文成功,除非在 windbg 下运行应用程序
- c# - Excel 中的饼图 3d 和饼图使用 Openxml C#
- c++ - c++11多线程,通过引用传递
- amazon-s3 - 使用 Terraform 为 Django 静态文件配置 AWS S3 存储桶
- css - CSS3111:@font-face 遇到未知错误“在启用不受信任的字体阻止时,在 IE11 中由 icomoon 应用程序创建的图标抛出
- webpack - mini-css-extract-plugin 不适用于 webpack-dev-server
- elixir - 如何将字符串转换为 HTML?凤凰灵药
- php - L5.6 - 数据透视表上的关系