ブロック崩しはどうなったのか2007/03/10 11:59:22

体調がよろしくないこともあり、作業的にはほとんど進んでいません。
まずは、2D だった「ぶろくず」を 3D にリメイクしてみる方向に傾きつつあります。

グラフィック周りで GLScene を調査中です。
http://glscene.org/
Delphi で OpenGL を扱えるコンポーネントです。
サンプルがいっぱい付いてます。
コードを余り書かずともいろいろできそうです。
当初は DirectX9 を使おうと思っていたのですが、方針転換かも。

oxNewton という物理エンジンも興味あり。
http://www.dave.serveusers.com/oxNewton.html

サウンド周りは OpenAL を使ってみたい。
http://www.openal.org/
Windows Vista では DirectSound を HWアクセラレーションできなくなって、
代わりに OpenAL をサポートするようになったようだ。
# オイラは積極的に Vista を導入するつもりはないが。

日本語で書いてある情報があまりないから、頑張って英語を読まねば。。。

GLSceneはイイかも2007/03/13 23:07:23

サンプルがたくさんある。100以上ある。

思っていたよりも遙かにいろいろできる。
使いこなせれば、PS2以上PS3未満の画は出せるように思った。

ただ、Radeon9600 だと実行時にエラーが起きてしまう。
おまじない。
procedure TForm1.FormDestroy(Sender: TObject);
begin
FreeAndNil(GLSceneViewer1);
end;
これで回避可能。が、サンプル全部を直すのが面倒。
まだ、半分しかおまじないをいれてない。

ちなみにGeForce6600 だとそのままでもエラーは起きず。
Radeon のドライバ(のバージョン)が悪いのかな?
# 最近は Forceware の出来が微妙だとも言われてますが。。。

サンプルを一個ずつ解説ネタにすればブログの記事が出来上がりそうな...。

3つサンプルが動かなかったGLScene2007/03/15 23:19:53

動かないサンプルがあったのでちょっと悩んだが、数行直したら動いた。

■Demos\rendering\quadtreevisculling\fQuadtreeVisCulling.pas
 ・ExtendedFrustumMakeFromSceneViewer(rci.rcci.frustum, GLSceneViewer1))
  を
  ExtendedFrustumMakeFromSceneViewer(rci.rcci.frustum, 640, 480, GLCamera1))
と修正(したら、それっぽく動いてる)。

■Demos\materials\fire2d\MainUnit.pas
 ・uses 節の GR32_ByteMaps を GR32_OrdinalMaps に変更。

■Demos\utilities\GuiEditor\MainFormUnit.pas
 ・uses 節に GuiSkinEditorFormUnit を追加。
 ・GLGui.GUIComponentDialog((ListBox.Items.Objects[ListBox.ItemIndex] as TGLGuiComponent).Elements)
  を
  GuiSkinEditorFormUnit.GUIComponentDialog((ListBox.Items.Objects[ListBox.ItemIndex] as TGLGuiComponent).Elements)
  と修正(2カ所ある)。
  http://delphi.newswhat.com/geoxml/forumhistorythread?groupname=glscene.general&messageid=e9qjoi$p6v$1@news.talkto.net
に書いてありました。

とりあえず、スッキリ。

DCEDemo2007/03/17 11:50:40

DCEDemo もそのままではコンパイルできてなかった。
プロジェクトを開いたときに、moMushroom の Rendered プロパティがない、
と怒られた。
だけど、無視したら普通にコンパイルできて実行できた。

TCGShader コンポーネントをインストールする際に cg.dllが必要と言われるが、
BCBDemos\Library\cgDLL.zip
を解凍して出来上がった DLL を system32 にコピーすればOKのようだ。
ただ、Demos\glslshaders\ocean\ocean.exe は実行時エラーで動かなかった。
Validation failed - samplers of different types are bound to the same texture image unit.
というエラー。