Home > Tags > Abstraction

Abstraction

跨平台的圖像渲染引擎

今天轉一個話題,暫時不想 Script 的部份。本來想寫一些圖像的代碼,但敲了幾個鍵又停下來思考,猶豫不決,便希望寫這一篇 blog 整理一下思緒。希望大家能多給意見。

沒有一個圖像渲染引擎可以適合所有平台、所有應用。我暫時設定的目標是

  1. Windows Direct3D 9
  2. Windows Direct3D 10
  3. Windows OpenGL
  4. Linux
  5. OSX
  6. M記3代(實際是2代? ^_^)
  7. S記3代
  8. S記手提
  9. N記W機

當然,我不是要立即把它們全部實現,而是在開始做的時候考慮到它們。當中,電腦的平台上只考慮支援有 Shader 的硬件 (其實不同的 GPU 可以視為不同的平台)。而一些遊戲機是只有 Fixed Pipeline的。

跨平台方案

如下圖所示,一個圖像渲染的引擎大概是介乎應用程式和 Graphics API之間。

renderengine1.png

有一些平台,例如一些遊戲機,可以讓應用程式跨過 Graphics API 和 OS/Driver,直接操作硬件。這種方式和 DOS 年代的電腦遊戲做法一樣。

要實現跨平台的應用程式 (遊戲),我想到有4個方案

  1. 使用跨平台的 Graphics API (如 OpenGL、或 Java 的甚麼幾個數字標準…)
  2. 每一個平台編寫一個把平台Graphics API 抽像化的 API
  3. 每一個平台編寫一個 Render Engine
  4. 每一個平台編寫一個 Application

由於我的目標比較廣,基本上第一個方案不作考慮。

Continue reading

Home > Tags > Abstraction

Search
Feeds
Meta

Return to page top