Home > 遊戲編程 > 圖像編程

圖像編程 Archive

開始實作圖像引擎

昨晚只是寫 Blog 已經花了幾小時。不過這也是值得的,因為我可以從寫的過程中把思路弄清楚一點。今晚終於開始編程。

詳細的設計留待一兩天才說吧,今天基本上只寫了一些數學部分、Direct3D9 的起動、一個叫 Geometry 的類別和一個 Chamfer Box。但全部都通過編譯但未進行測試。

我希望在這幾天內實現以下的產出 (deliverables):

  1. 在 C# 創建的視窗中渲染一個旋轉 Chamfer Box,只有直線光源。
  2. 用 C++ 和 Lua 寫同一個和 (1) 相同的程序。
  3. 用 C# 創建的視窗中運行 (2) 中的 Lua 的程序。
  4. 在 cygwin 上執行 (2),使用 gcc 和 OpenGL。

過了這一步,就可以加入輸入和嘗試做一些遊戲性相關的實驗。有時間的話,也想找一部 PSP 用開源的 SDK 試試移植。

跨平台的圖像渲染引擎

今天轉一個話題,暫時不想 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 > 遊戲編程 > 圖像編程

Search
Feeds
Meta

Return to page top