文地址:https://mellinoe.wordpress.com/2017/02/08/designing-a-3d-rendering-library-for-net-core/
作者:ERIC MELLINO
翻譯:楊曉東(Savorboard)
第一篇文章請(qǐng)看:http://www.cnblogs.com/savorboard/p/net-core-game-engine.html
在第二篇文章中,我將探索Veldrid,這個(gè)庫(kù)為Crazy Core的游戲引擎中的所有3D和2D渲染提供支持。我將討論這個(gè)庫(kù)的作用,我為什么建立它,以及它是如何工作的。
注意:對(duì)于本文中討論的一些內(nèi)容,建議對(duì)圖形API有基本的了解。對(duì)于初學(xué)者,我建議查看下面的示例代碼,以獲得所涉及概念的一般概念。
使用像.NET這樣的托管語(yǔ)言最明顯的好處之一是,您的程序可以立即移植到支持該運(yùn)行時(shí)的任何系統(tǒng)。一旦您開(kāi)始使用本地原生庫(kù),或者依賴于其他特定于平臺(tái)的功能,此優(yōu)點(diǎn)就會(huì)消失。那么,你如何設(shè)計(jì)一個(gè)硬件加速的3D應(yīng)用程序,它能夠運(yùn)行在各種操作系統(tǒng)和各種圖形API?好吧,你做一個(gè)抽象層,并屏蔽不利的代碼!與任何編程抽象一樣,必須非常仔細(xì)地進(jìn)行權(quán)衡以隱藏復(fù)雜性,同時(shí)仍然保持強(qiáng)大的和表達(dá)性的編程模型。有了Veldrid,我有幾個(gè)打到的目標(biāo)和非必須目標(biāo):