(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左...