Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Graphics GPU编程和游戏中图形卡的使用有何不同?_Graphics_Gpu - Fatal编程技术网

Graphics GPU编程和游戏中图形卡的使用有何不同?

Graphics GPU编程和游戏中图形卡的使用有何不同?,graphics,gpu,Graphics,Gpu,GPU编程的一种方法是OpenCL,它将处理并行化的数字运算 现在想想你最喜欢的3D电脑游戏。当屏幕呈现时,发生了什么?开发人员是手工制作OpenCL内核(或类似的东西),还是在图形卡中使用预编程功能 很抱歉,这听起来像是一个家庭作业问题,我想不出更好的方法来问它。当您运行游戏时,您的GPU上可能有两个不同的系统: OpenGL将图像渲染到屏幕(图形) OpenCL执行通用计算任务(compute) OpenGL是用着色器编程的。OpenCL是用内核编程的 如果您想更详细地了解游戏如何在GP

GPU编程的一种方法是OpenCL,它将处理并行化的数字运算

现在想想你最喜欢的3D电脑游戏。当屏幕呈现时,发生了什么?开发人员是手工制作OpenCL内核(或类似的东西),还是在图形卡中使用预编程功能


很抱歉,这听起来像是一个家庭作业问题,我想不出更好的方法来问它。

当您运行游戏时,您的GPU上可能有两个不同的系统:

  • OpenGL将图像渲染到屏幕(图形)
  • OpenCL执行通用计算任务(compute)
OpenGL是用着色器编程的。OpenCL是用内核编程的


如果您想更详细地了解游戏如何在GPU上工作,我建议您阅读有关OpenCL、OpenGL和游戏引擎体系结构的内容。

H'好的,我将从历史的角度回答这个问题。希望这能很好地概述情况,让您决定如何继续

图形管道 3D图形有一套近乎一成不变的计算流程。从变换矩阵开始,乘以顶点位置(可能会动态生成更多),计算出像素的颜色,然后给出结果。这是3D图形(过于简化)的要点。要更改其中的任何内容,只需使用“着色器”稍微旋转管道的一个方面,即使用定义的输入和输出的小可编程元素,以便将它们插入管道中

早期GPGPU 当GPGPU还处于婴儿期时,人们获得GPU大规模并行功能的唯一途径是通过图形着色器。例如,有片段着色器,它基本上计算屏幕上每个像素上应该有什么颜色(我在这里有点过于简单,但这就是它们所做的)

因此,例如,您可以使用顶点着色器在利用颜色混合(有效地将数学问题空间转换为…嗯,颜色空间)减少片段着色器中的一组值之前,先使用顶点着色器来夹住有关屏幕的数据

其要点是,旧的GPGPU在3D图形的范围内工作,使用与其他3D图形管道相同的“图形卡中的预编程功能”

读、写、想都很痛苦(或者至少,我觉得很痛苦以至于我被劝阻了)

CUDA和OpenCL以及[所有其他不太流行的GPGPU解决方案] 然后一些人过来说:“哇,这有点愚蠢——当我们想做更一般的计算时,我们被困在图形管道中了!”

因此GPGPU摆脱了图形管道的限制,现在我们有了OpenCL、CUDA、Brook、HSA和。。。好吧,你明白了

tl;博士
GPGPU内核和3D图形内核之间的区别在于,后者被卡在一个附带(方便的)约束的管道中,而前者的要求要宽松得多,管道由用户定义,结果不必附加到显示器上(尽管如果你是那样的受虐狂,他们也可能是).

所以理论上我可以只使用内核来编程3D游戏?假设你允许自己从CPU端调用一些内核,理论上你可以…但这是一个受虐狂的尝试-你将牺牲通常的帧/像素/向量/等等-缓冲区抽象的所有便利性(在其他有用的方面中)由OpenGL等工具包提供。我也相当确定,如果您只使用供应商支持的工具包,您的代码会更慢、更笨重、更复杂。