PS4 的圖形 API——GNM 和 GNMX 究竟是怎樣的?和 OpenGL/Direct3D 11 對比呢?
本人只用過 PS3 的 GCM。即使我或其他人能接觸到 GNM/GNMX,也會基於 NDA 不能透露其內容。
但由於每款遊戲機的硬體是固定規格,不需要像 OpenGL/Direct3D 這樣兼容不同硬體,所以 API 可提供一些硬體的專門功能,並且因為減少抽象層而加強一點性能及可操控性。所以相對於使用 通用 OpenGL/Direct3D 等 API 的平台會稍有一些優勢(XBOX系列有特別版本的 Direct3D,不過也沒有這麼底層)。
其實這些封閉 API 基本上只對於那些有開發 license 的開發者有意義。從開發者角度,這些 API 只是一層薄薄的軟體層去驅動各種硬體功能,通常開發者需要思考的東西(例如怎麼最優地實現某些圖形演算法、渲染管道)在於硬體特性而不是 API。
這一代的遊戲機和 PC 的硬體架構差距又更小了(以前的 PS 都比較奇特,Xbox360也不是Intel),這種底層 API 的差異應該不會對開發者有很大影響。gcm, gxm, gnm(x)都玩過,但是有NDA,具體內容不能透露
主機的硬體固定的,API通常會暴露更多硬體相關的介面,比較少的抽象,對比的話你可以去看dx12/vulkan.。。。。。。 竟然有人邀請我,那沒辦法了,我只能去百度給你了。
SCE的高級工程師Chris Norden對PS4的硬體規格的細節闡述無疑是最受中外記者關注的。其在發言中提到,通過SCE針對PS4專門設計的編程語言和API,PS4將實現比同等配置PC快得多的性能表現,並實現和未來產品的良好兼容性。
所以使用獨有的API主要是為了性能考慮,OpenGL/Direct3D 11就像小車,什麼地形都能應對, GNM 和 GNMX 就像高鐵,在鐵路上超快,這很容易理解吧。
請參考:GDC2013:索尼次時代PS4技術細節公開 運行速率把同配置PC遠甩身後用起來沒什麼特殊感覺
大項目都是用引擎,API都被包起來了。
所有平台API,都跟不存在一樣...(最近在被lightWeightConstUpdateEngine折磨,在開了LCUE和YEBIS時用GeometryShader, GS的output 的trianglestream就被渲染成point了。快要被虐瘋了,誰有什麼思路嗎?(淚顏)———對了對了 我要吐槽pssl就是hlsl啊 搞的每次我都是去msdn查 查完去ps4sdkDocs扒拉看名字 有沒有些許不同
gnm很底層,比dx12vulkan還要低點,啥都要自己做。。。索尼的文檔老子各種看的不明覺厲。。。就只能說這麼多了。
抖個機靈:照目前PS4/Xbox One/PC的硬體層的統一程度,以後開發跨平台遊戲只需要在工程里點三次另存為就可以了。
推薦閱讀:
※遊戲性能優化(1)-why & benchmark
※遊戲資源傳送門
※unity3d在android使用sqlite
※讓角色半透明:樹形結構(三)
※換個角度去看棋牌遊戲
TAG:遊戲開發 | OpenGL | CC | 計算機圖形學 | PlayStation4 |