所以我正在开发一个图形API,我已经知道如何创建一个窗口并绘制像素,我现在所缺少的只是GPU部分。我可以用Sycl或OpenCL来替换它吗?所以我想使用Sycl或OpenCL来访问gpu,并为我的图形做计算部分。使用GPU是一种有效的方法吗?
发布于 2022-02-21 08:11:14
是的,您可以使用OpenCL进行图形绘制。如果做的正确--对于比其他任何应用都快的特殊应用程序--这是非常快速的,但是你必须从头开始实现所有的东西:从3D到2D屏幕坐标的摄像机转换,用于行/三角光栅化的Bresenham算法,以及z缓冲区。
想想看:图像只是一个整数数组。您可以使用OpenCL在相应的像素坐标处将颜色值写入数组。然后将其作为框架缓冲区传递给您的图形API,并在屏幕上绘制它。
GPU的关键部分是并行化和内存访问:
与OpenCL交互的图形策略是如下所示:
免责声明:我已经写了我自己的光栅/射线跟踪图形引擎在OpenCL从零。有关实时演示,请参见这里。
https://stackoverflow.com/questions/71199193
复制相似问题