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則是多媒體編程介面的競爭對手。