2009年8月29日星期六

Mesa 3D

多年沒有注視的 Mesa 3D 原來已經支援 OpenGL 2.1,亦表示它包含了 Glsl 的編輯器與運行期軟件。但更令我感到驚喜的是它的驅動層是可以使用 Direct3D9 作為實作。這個實作應該是基於 GlDirect 為藍圖,把一個個 OpenGL 指令變換成 Direct3D 的函數。
理想地,我不必再為不同平台間的 Graphics API 而煩惱;因為 OpenGL 本身就是設計成可擴充的,而 Mesa3D 又提供了一個很好的起步點。我的引擎只要沿用 OpenGL,再對 Mesa3D 的驅動層稍為修改就應該可在 XBox 上跑。
這兩天會花點時間對這想法的實際可行性多作研究。

imageimage

2 則留言:

  1. The alternative, like many engines do, is to have an abstraction layer, so you can target D3D or OpenGL platforms. It is of course a lot of work just to get the layer right. For me, I just target OpenGL since I use a Mac for development.

    回覆刪除
  2. Yes, you are right. The previous game engine project I work with also use that approach.
    But instead of making a third API to abstract the hardware, I think it's possible to reuse OpenAL or DirectX as the base API, and wrap the other one around. Of course this would be very costly at the beginning, but this way the abstracted API can benifit other projects too.

    回覆刪除