微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Vulkan / OpenGL子通道可获取多个片段

如何解决Vulkan / OpenGL子通道可获取多个片段

因此,Vulkan引入了子通道,并且opengl通过ARM_framebuffer_fetch实现了类似的行为

过去,我已成功使用framebuffer_fetch进行色调映射后效果着色器。

当时的局限性是只能读取当前渲染片段所在位置的帧缓冲区内容

现在,我想知道的是,Vulkan(或什至是OpenGL ES)中是否有任何方法可以从多个位置读取(例如,实现模糊内核),而无需平铺的硬件来存储/加载到RAM。

从理论上讲,我认为应该有可能,基于内核大小(例如,如果内核大小为4像素,则解析出的图块需要为4),第一遍wp只需渲染比模糊子遍稍大一点即可像素小于拼贴缓冲器中的像素),并且某些像素将不得不冗余渲染(在图块的重叠区域)。

现在,有办法吗? 我似乎想起曾经看过一些与子通行证有关的Vulkan指令,这些指令可以定义支撑尺寸(听起来像我现在正在寻找的尺寸),但我不记得在哪里看到了。 所以我的问题:

  1. 在移动平铺渲染器体系结构上使用Vulkan时,是否可以向前渲染某些几何图形并对其进行全屏模糊渲染,而这些操作都可以在一次拼贴中完成(无需硬件存储)中间传递到ram的结果,然后在模糊时从ram加载纹理)?如果可以,怎么办?

  2. 如果对1的回答是“是”,那么也可以在OpenGL ES中完成吗?

解决方法

简短回答,不。 Vulkan子通道仍然具有1:1的片段对像素关联要求。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。