NeoFT構想/内部仕様案

Sprite描画ライブラリ

  • 投稿者: C477?
  • 優先順位: 普通
  • 状態: 提案
  • カテゴリー: グラフィック・音響
  • 投稿日: 2004-03-18 (木) 16:34:08

メッセージ

描画の中枢部分はDirectX9.0のSpriteを使って行うものとする。
#将来的に3Dオブジェクトとの混在もやりやすい?
スプライトとサーフェスをより抽象化し、DirectXの今後のバージョンだけでなく
OpenGLなど他の技術へも移行しやすい、APIインターフェースを用意する。
当面の実装はFreeTrainのコードを流用したDirectDraw7ベースとする。

Managed DirectXは.NET用DLLの再配布が面倒なので使わない。
FreeTrain同様C++のDLLで対応する。

ライブラリでサポートするSprite描画機能

  • 拡大縮小
    • (1/4倍,)1/2倍,1倍,2倍(,4倍)
  • 特殊描画
    • 半透明描画(Alpha 50%固定)
    • 焼き込みカラー描画(特定色を強調した暗色化:夕焼け、朝靄効果用)
    • 着色モノトーン描画(最低限、SYSTEM基本8色に対応)
    • 交差描画(描画先サーフェイスの非透明色部分にのみスプライトを描画する)
  • カラーフィルター描画
    • RGBチャネル置換(FTでの色相置換)、カラーマップ置換、色相シフトなど
    • ユーザー定義のフィルターを使用した描画をサポート

ライブラリでサポートするその他の描画機能など

  • 指定色による矩形領域塗りつぶし
  • 指定色によるポリゴン領域塗りつぶし
  • サーフェイス←→ビットマップ 相互変換
  • テキストのスプライト化

  • FTにもいいたいことですが、OpenGLを使って、Linux対応にしてほしい。(SimuTransみたく) -- 221? 2005-03-25 (金) 12:48:02
  • OpenGLでもDirectXでもいいから、高速スプライト描画のライブラリ作ってくれる人いませんかね。あとOpenGLを使うだけでLinux対応になるんだろうか?Microsoft.Win32パッケージやDllImport("kernel32.dll")みたいなコードも含まれてるんですけど・・・。・・・まあ、どのみち私自身はLinux不慣れだし、移植まで手が回らないので、誰か奇特な方がやってくれるのを待つことになるでしょうか。 -- 477? 2005-03-26 (土) 09:33:54
  • SDLを使ってみるのも良さそう。(日本語の解説)少し調査してみるかな。 -- 477? 2005-03-26 (土) 09:45:44
  • 自己レス。SDLは既存のウィンドウに貼りこむのが難しい。しかも複数のウィンドウを作れないようだ。したがって、今のFreeTrainのようなMDIフレームアプリは作れない。GUIを自作するのも面倒だし、やっぱこの案は没かな。 -- 477? 2005-03-26 (土) 22:04:16
  • 最近はSlimDXってのが良いらしい。Windows7で導入されたDirect2D(DirectDraw的なことができる新API?)を使えるとか。まあまだ日本語の情報も少ないし、描画周り改良は、またしばらく後で。 -- 477? 2010-07-11 (日) 20:44:21


Last-modified: 2010-07-12 (月) 09:47:05 (151d)