cdirectx编程
⑴ directx12不能用c#编程了吗
directx12不能用c#编程了
directx12不能用c#编程了
directx12不能用c#编程了
⑵ c语言用DirectX编程的疑惑
CPU调用GPU就是向GPU发送数据,读取数据。可以想象成读写硬盘的过程,只不过显卡不但存储数据还会处理数据。他们之间传输数据肯定遵循一定协议,这些都在显卡驱动程序中规定了。不过对这些驱动编程相当复杂,而且不同厂商的驱动是不一样的。所以DirectX帮你当管家,你只要调用DirectX,DirectX然后再去调用显卡驱动。其实DirectX只要提供一系列类似于printf的函数让用户调用即可,不过鉴于复杂性,DirectX在编程时用C++。所谓硬件加速就是使用GPU的运算能力,所以要使用硬件加速就需要调用DirectX或OpenGL。掉不调用决定权当然在程序自己手中,只不过3D程序不使用硬件加速,速度太慢,没有实用价值,所以3D程序都是用DirectX或OpenGL。
⑶ 请问directx和opengl是对显卡的编程吗那shader又是什么三者有什么关系呢
DirectX(Direct
eXtension,简称DX)是由微软公司创建的多媒体编程接口。由C++编程语言实现,遵循COM。被广泛使用于Microsoft Windows、Microsoft XBOX、Microsoft
XBOX 360和Microsoft XBOX ONE电子游戏开发,并且只能支持这些平台。最新版本为DirectX 12,创建在最新的Windows
8.1上。
OpenGL(全写Open
Graphics Library)是个定义了一个跨编程语言、跨平台的编程接口的规格,它用于三维图象(二维的亦可)。OpenGL是一个开放的三维图形软件包,它独立于窗口系统和操作系统,OpenGL可以与Visual C++紧密接口,便于实现机械手的有关计算和图形算法,可保证算法的正确性和可靠性目前,2.0版本开始加入了很多类似于DirectX中可编程单元的设计.
Shader Model(在3D图形领域常被简称SM)就是“优化渲染引擎模式”。Shader(着色器)是DirectX中一段能够针对3D对象进行操作、并被GPU所执行的程序。早在微软发布DirectX 8时,Shader
Model的概念就出现在其中了,并根据操作对象的不同被分为对顶点进行各种操作的Vertex Shader(顶点渲染引擎)和对像素进行各种操作的Pixel
Shader(像素渲染引擎)。
到了Shader Model 4.0,在VS和PS之间引入了一个新的可编程图形层--几何渲染器(Geometry
Shader)。原来的Vertex Shader和Pixel Shader只是对逐个顶点或像素进行处理,而新的Geometry
Shader可以批量进行几何处理。然而性能受到诟病,为了兼顾性能,在DirectX11(SM
5.0)开始引入了Tessellation来取代GS的部分功能。
说白点,三者的关系是,Shader Model是DirectX其中一个技术协议程序,而DirectX和OpenGL则是多媒体编程接口的竞争对手。