c语言用DirectX编程的疑惑
程序是硬件加速还是软件加速是程序本身设定的还是操作系统控制的?还有cpu是怎样调用gpu绘图的,在c里面如何实现?...
程序是硬件加速还是软件加速是程序本身设定的还是操作系统控制的?还有cpu是怎样调用gpu绘图的,在c里面如何实现?
展开
2个回答
展开全部
CPU调用GPU就是向GPU发送数据,读取数据。可以想象成读写硬盘的过程,只不过显卡不但存储数据还会处理数据。他们之间传输数据肯定遵循一定协议,这些都在显卡驱动程序中规定了。不过对这些驱动编程相当复杂,而且不同厂商的驱动是不一样的。所以DirectX帮你当管家,你只要调用DirectX,DirectX然后再去调用显卡驱动。其实DirectX只要提供一系列类似于printf的函数让用户调用即可,不过鉴于复杂性,DirectX在编程时用C++。所谓硬件加速就是使用GPU的运算能力,所以要使用硬件加速就需要调用DirectX或OpenGL。掉不调用决定权当然在程序自己手中,只不过3D程序不使用硬件加速,速度太慢,没有实用价值,所以3D程序都是用DirectX或OpenGL。
展开全部
程序本身是可以设定运行在哪种模式下,但是,即使开启了硬件加速,如果遇到硬件不支持的特性,就可能会用软件模拟的方式来支持运行,效果可想而知。
cpu如何调用这个你无须关心,以前的显卡是固定的渲染管道,但现在基本上是可编程的。gpu有自己专门的汇编指令,以前的年代有时候是直接用这种指令来编程,现在如果要对gpu编程,高层次的语言可以使用HLSL(这包含在DirectX中),或者Cg(这是一种和C很像的),GLSL(这包含在OpenGL2.0以上版本中)。
cpu如何调用这个你无须关心,以前的显卡是固定的渲染管道,但现在基本上是可编程的。gpu有自己专门的汇编指令,以前的年代有时候是直接用这种指令来编程,现在如果要对gpu编程,高层次的语言可以使用HLSL(这包含在DirectX中),或者Cg(这是一种和C很像的),GLSL(这包含在OpenGL2.0以上版本中)。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询