我有一个关于计算着色器的问题。 DX 9 中提供计算着色器吗?如果 GPU 上没有计算着色器片段,是否仍然可以使用带有 DX9 驱动程序的计算着色器? (SGX 545 没有,但 SGX 6X 一代将会有),据 IMG 所说。我想知道我是否可以使用 DirectX9 或 OpenGL 驱动程序在 SGX GPU 上进行一些简单的通用编程。
另外,我是否可以使用 OpenGL 顶点着色器进行 GPGPU 编程?这是我的想法:
我会将矩阵/数据加载到顶点缓冲区中,并将它们绑定到程序上下文。我将把一些其他静态变量加载到统一变量中,并将我的实际计算程序加载到顶点着色器中。到目前为止,它看起来是可行的(是吗?),但顶点着色器的输出将经过光栅化,并被馈送到片段着色器(根据 openGL 中的情况)。无论如何,我是否可以阻止数据通过整个图形管道,或者我可以在顶点着色器执行完成后进行拦截,并以某种方式读取执行所需的值和时间?
无论如何,我可以使用 OpenGL 顶点着色器进行 GPGPU 编程吗?
从顶点着色器出来的东西通常在光栅化阶段进行插值。在旧版本的 openGL 中,您可以指定对于特定变量是否应该进行此类插值。我不知道你是否仍然可以这样做...是的,你仍然可以(感谢 datenwolf 的提示)...但在我看来,更好的方法是使用片段着色器。对于任何后期处理效果,使用简单的顶点着色器渲染覆盖整个帧(四边形)的两个三角形,渲染到全帧,并在片段着色器中进行计算。将要用作纹理输入的数据放入纹理中,并使用帧缓冲区对象 (FBO) 将结果渲染到其他纹理。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)