ゲームシステム設定機能
REDSTONEのゲーム設定画面関連の用語について解説。
DirectXにおけるDirectDrawとDIBの違い
結論としては、現代PCのほとんどではDirectDraw使用が推奨されます。DirectDraw
DirectDrawは、MicrosoftのDirectX APIの一部であり、主に2Dグラフィックス操作を高速化するためのライブラリです。以下に主な特徴を挙げます
- ハードウェアアクセラレーション
- DirectDrawは、グラフィックスカードのハードウェア機能を利用して、高速な描画処理を行います。
- ハードウェアの機能を直接制御できるため、ピクセル単位の操作やビットブロック転送(BitBLT)などのグラフィックス操作が効率的に実行されます。
- フルスクリーンモードとウィンドウモード
- DirectDrawは、フルスクリーンモードとウィンドウモードの両方で動作することができます。
- フルスクリーンモードでは、アプリケーションがディスプレイ全体を占有し、他のウィンドウとの干渉を避けることができます。
- バックバッファリング
- DirectDrawは、ダブルバッファリングをサポートしており、バックバッファに描画してから前面バッファに切り替えることで、スクリーンのちらつきを防ぎます。
DirectDrawは、2Dグラフィックスを高速かつ効率的に処理するために設計されています。以下の理由から、DirectDrawを使用する方が容易な場合が多いです
- ハードウェアアクセラレーション
- DirectDrawはグラフィックスカードのハードウェアアクセラレーションを活用できるため、高速な描画が可能です。これにより、特にリアルタイムでの描画処理が必要なゲームにおいて、大幅なパフォーマンス向上が期待できます。
- 描画の最適化
- DirectDrawは、スクリーン上に直接描画するための機能が豊富に揃っており、ビットブロック転送(BitBLT)やサーフェイス管理など、ゲーム描画に必要な機能が充実しています。
- フルスクリーンモードのサポート
- ゲームは多くの場合、フルスクリーンモードで動作させることが一般的です。DirectDrawはこのモードでの描画をサポートしており、パフォーマンスを最大限に引き出すことができます。
DIB(Device Independent Bitmap)
DIBは、デバイスに依存しないビットマップ形式で、主にアプリケーション内での画像データの操作や保存に使用されます。以下に主な特徴を挙げます
- デバイス非依存
- DIBはデバイス非依存であり、異なるデバイス間でも同じように表示されます。
- これは、異なる画面解像度やカラーフォーマットの違いを吸収するために設計されています。
- メモリ内のビットマップデータ
- DIBは、メモリ内にビットマップデータを格納します。このデータは、アプリケーションで直接操作することができます。
- 通常、ヘッダ情報(ビットマップファイルヘッダとビットマップ情報ヘッダ)とピクセルデータから構成されます。
- 互換性
- DIBは、WindowsのGDI(Graphics Device Interface)を通じて操作されることが多く、プリンタやディスプレイなど様々なデバイスと互換性があります。
- GDI関数を使用してDIBを描画したり操作したりすることができます。
DIBは以下の理由から、ゲーム描画にはあまり向いていない場合が多いです
- ソフトウェアベースの描画
- DIBは基本的にソフトウェアベースでの描画処理を行うため、ハードウェアアクセラレーションを活用できず、描画速度が遅くなることがあります。
- GDIの使用
- DIBの操作はWindowsのGDI(Graphics Device Interface)を通じて行われることが多いですが、GDIはリアルタイムでの高速描画には向いていません。そのため、ゲームのような高フレームレートを要求されるアプリケーションには不向きです。
- 描画のオーバーヘッド
- DIBを使用すると、メモリ内のビットマップデータを操作してからそれを画面に描画するため、描画処理にオーバーヘッドが生じやすくなります。
主な違い
- 目的と使用方法
- DirectDrawは、リアルタイムでの2Dグラフィックス操作と描画の高速化を目的としています。一方、DIBは画像データの保存や操作に焦点を当てており、異なるデバイス間での一貫した表示を目指しています。
- ハードウェアアクセラレーション
- DirectDrawは、グラフィックスカードのハードウェアアクセラレーションを活用するのに対し、DIBはソフトウェアベースでの操作が主です。
- 描画対象
- DirectDrawは、スクリーン上に直接描画するのに対して、DIBはメモリ内のビットマップデータを操作します。
結論
ゲーム描画において、特にリアルタイムでの高速描画が求められる場合は、DirectDrawの方が容易に処理を行うことができます。
DirectDrawは、ハードウェアアクセラレーションの利用や描画機能の最適化が可能なため、よりスムーズで高性能な描画が実現できます。
ただし、DirectDrawはDirectXの初期の技術であり、現在はDirect3D(DirectX
9以降)など、より高度なグラフィックスAPIに置き換えられています。
最新のゲーム開発では、Direct3DやOpenGL、Vulkanなどの3DグラフィックスAPIを使用することが一般的です。
スリープモード
導入の経緯はRSのLauncherを高速化するためのもの。XP時代には何もせずにRSを起動するとログイン画面が開くまでに5分かかることもよくありました。
昔はこれをONにしているとRSの起動が数分早くなりました。
Windows7が普及した頃からほぼ一瞬で起動するように改善。
今ではONにしてもしなくても大差ないです。
独占モード
リソースを優先的に割り当てる機能…ですが明確な変化は見られず。リソース割り当てが十分に行われないときに有効ですが、ブルースクリーンを誘発する可能性があるため非推奨。
ゲームが重い場合はネットワークの方に原因があることが多いです。
解像度を固定
ウィンドウモードが実装されて解像度を変更できるようになってから登場。※最初期はウィンドウモードすらなく、フルスクリーンのみでした。
起動時の解像度を固定できます。起動後は変更できません。