OpenGL和D3D的區別

2021-09-07 23:49:56 字數 719 閱讀 2598

(1)世界座標系

opengl為右手座標系d3d為左手座標系

(2)裁剪空間

opengl中z的範圍:[-1.0, 1.0]d3d為:[0.0, 1.0]

(3)shader

shader開始是以彙編的形式出現,在推出一段時間後,就出現如下幾種類c的高階語言(注:這些高階語言會被編譯成顯示卡識別的彙編**)

opengl的shader語言為glsld3d為hlsl

cg是nvidia公司的shader語言   可以同時在opengl和d3d上跑

ashli(advanced shading language inte***ce)是ati公司的shader語言

(4)頂點顏色順序

opengl為:rgba格式d3d為:bgra格式

(5)視口座標系

opengl的原點為左下角畫素的中心   x軸向右 y軸向上

d3d9的原點為左上角畫素的左上角

d3d10+的原點為左上角畫素的中心

x軸向右  y軸向下

可參考:

跨越OpenGL和D3D的鴻溝(一) 開篇

有人說,opengl直接調到驅動,效能高於d3d。有人說,shader都得寫兩套,很麻煩。有人說,opengl和d3d在底層有很多區別,而且不可設定。有人說,圖形引擎如果要相容兩者,就只能取其功能的交集,最後還不如任何一種api。真的麼?下面先從幾個比較基本的方面來 如何跨越兩個api的鴻溝。ope...

跨越opengl和d3d的鴻溝(一) 開篇

多年來,在論壇和各個 上不斷能看到拿opengl和d3d進行比較的帖子和文章。他們經常製造很多謎思,使得初學者和一些從業人員對opengl和d3d產生了各種各樣的流言。有人說,opengl直接調到驅動,效能高於d3d。有人說,shader都得寫兩套,很麻煩。有人說,opengl和d3d在底層有很多區...

統一D3D與OpenGL座標系統

directx 3d與opengl座標系統的差異性,給我們帶來很大的麻煩,讓跨平台程式設計的新手很困惑。最近在做乙個跨平台的遊戲,仔細看了下兩者的矩陣,發現並沒有什麼大區別,將d3d左手系的矩陣傳遞給opengl shader完全可以正常工作。先說一下兩者一些概念上的區別 1 座標系統不同 d3d左...