[表示 : 全て 最新50 1-99 101- 201- 301- 2chのread.cgiへ]
Update time : 05/09 20:20 / Filesize : 95 KB / Number-of Response : 312
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Delphi持ってるならGLSceneを使え



1 名前:デフォルトの名無しさん mailto:sage [2006/11/12(日) 03:17:59 ]
Delphi用OpenGLライブラリGLSceneのためのスレッドです。
フリーの3Dコンポーネントでお気楽プログラミング。

とうとうGLScene正式版リリース
glscene.sourceforge.net/index.php

ヘルプはこっちで落とした方が良さそう。
GLScene Help Project
caperaven.co.za/

ついでにGraphics32もあれば心強い
www.graphics32.org/wiki/

Lazarus使いなら、これ。Lazarus with GLScene bundled
www.skinhat.com/

質問は出来る限り詳しく的確にお願いします。
日本語情報ほとんど無し。GLSceneマスター様、情報お願いします。
GLSceneの他にもこんなライブラリがあるという情報もおk。


32 名前:デフォルトの名無しさん [2007/01/12(金) 21:09:02 ]
>>31
サンクス。
みてみるす

33 名前:デフォルトの名無しさん mailto:sage [2007/01/12(金) 23:46:25 ]
GLSceneに大量のサンプルが付いているんで驚いた。
意外に少ないコードでも結構いろんなことが出来るみたい。

34 名前:デフォルトの名無しさん mailto:sage [2007/01/13(土) 18:22:17 ]
GLPolygonにテクスチャを適用したいけど、テクスチャが正常に表示されない
GLPlaneみたいにファイル設定するだけじゃ駄目なのか

35 名前:デフォルトの名無しさん mailto:sage [2007/01/14(日) 18:50:56 ]
>>34状況をもっと詳しく頼む。
とりあえず静的に貼り付けてみた。

Form1にGLSceneとGLSceneViewerをドロップし、GLSceneエディタでGLCameraとGLPolygonを追加。
以下のプロパティをセットする。
GLSceneViewer1のCameraプロパティにGLCamera1をセット
GLCamera1のPosition(X,Y,Z) を(2,2,3)にセット
GLCamera1のTargetObjectにGLPolygon1をセット
GLPolygon1のNodesに、(0,0,0)(1,0,0)(0,1,0)をセット
お次にGLPolygonのMaterialで「・・・」ボタンを押してMaterial Editorを立ち上げる。
Textureを選択して、Imageに貼り付けたいテクスチャを選択する。Disabledのチェックを外して、OKを押す。

俺のは一応これで張り付いた。

36 名前:デフォルトの名無しさん mailto:sage [2007/01/14(日) 22:54:32 ]
試しに入れてみたけどデモ多くてワロタ
誰かこれでピンボール作ってくれ

37 名前:デフォルトの名無しさん mailto:sage [2007/01/14(日) 23:09:04 ]
GLSceneがどのくらいの速度か、簡単なベンチを作って比較してみました。
(直線を20万本描くだけ)

CPU:Pentium4 2.6GHz
Mobility Radeon9000

GLScene 1倍
Graphics32 3.2倍
DirectX7+GDI 28.6倍
TBitmap+GDI 51.1倍

「DirectX7+GDI」とは、単に俺がDirectXで直線の描き方を知らず、
DirectDrawサーフェスにGDIで描いちまった。

結局、GDIがどれだけ遅いかを示しただけのベンチになっちまった。
orz

38 名前:デフォルトの名無しさん mailto:sage [2007/01/15(月) 00:04:11 ]
デモにGLSceneとGDIを比較するcanvasってのがあったよ。
Core2Duo X6800
GeForce7900GTで以下のスコア。
        GLScene:GDI (カッコ内はペンサイズ2)
直線2万     1:40 (1:180)
楕円2万     1:9.3 (1:30.1)
矩形2万     1:16 (1:16)
点20万      1:18.4 (1:18.0)
文字2万     1:1.2 (1:1.1)

まあGDIと比較するのがナンセンスだわな

39 名前:デフォルトの名無しさん mailto:sage [2007/01/15(月) 05:23:17 ]
もう少し低レベルなAPIを直に使いたいんだけどGLSceneでそういうのできる?

40 名前:デフォルトの名無しさん mailto:sage [2007/01/15(月) 08:57:18 ]
それならGLScene使う必要ないんじゃないの?



41 名前:デフォルトの名無しさん mailto:sage [2007/01/16(火) 22:59:45 ]
>>35
提示されたコードのおかげで原因が判りました
ポリゴンのサイズが大きすぎた(一辺50)のと、始点が(0,0,0)でなかったからみたい
もうちょっと根本から勉強が必要か…

42 名前:デフォルトの名無しさん mailto:sage [2007/01/16(火) 23:52:34 ]
試行錯誤も勉強のうちじゃない。いいことだ。

43 名前:デフォルトの名無しさん mailto:sage [2007/01/21(日) 01:56:24 ]
>>39
低レベルなAPIって、こういうこと?
<< 以下、例 >>
Form1にGLSceneとGLSceneViewerをドロップし、GLSceneエディタでGLCameraとGLDirectOpenGLを追加。
GLSceneViewer1のCameraプロパティにGLCamera1をセット
GLCamera1のPosition(X,Y,Z) を(0,0,5)にセット
Usesに「GLTexture」と「OpenGL1x」を追加
GLDirectOpenGL1のOnRenderイベントに、次のようなOpenGLのコマンドを書く。

procedure TForm1.GLDirectOpenGL1Render(Sender: TObject; var rci: TRenderContextInfo);
begin
glMatrixMode(GL_MODELVIEW);
glPushMatrix;
glTranslatef(-1, 0, 0);
glDisable(GL_LIGHTING);
glEnable(GL_COLOR_MATERIAL);
glBegin(GL_TRIANGLES);
glColor3f(1.0,0.0,0.0);
glVertex3f( 0.0, 1.0, 0.0);
glColor3f(0.0,1.0,0.0);
glVertex3f(-1.0,-1.0, 0.0);
glColor3f(0.0,0.0,1.0);
glVertex3f( 1.0,-1.0, 0.0);
glEnd();
glDisable(GL_COLOR_MATERIAL);
glEnable(GL_LIGHTING);
glPopMatrix;
end;


44 名前:デフォルトの名無しさん [2007/01/22(月) 00:50:34 ]
GLSceneオブジェクトの絶対座標は、どうやって割り出しゃいいんだろ
プロパティに無いんだけど、まさか、計算か

45 名前:デフォルトの名無しさん mailto:sage [2007/01/22(月) 10:22:50 ]
他にどうしろと

46 名前:デフォルトの名無しさん mailto:age [2007/01/23(火) 00:48:04 ]
>>44
publishedじゃないけど、AbsolutePositionプロパティ(TVector型)があるよ。
TVector型は配列になっていて、
(X,Y,Z) = (AbsolutePosition[0], AbsolutePosition[1], AbsolutePosition[2])
となっています。
・・・以下、使用例。GLCube1の位置について、GLCube2からの相対座標を割り出す。

usesに「VectorGeometry」を追加(TVectorが定義されている)
//GLCube1の絶対座標をGLCube2の相対座標にする。
var
LocalPosition:TVector;
begin
LocalPosition:=GLCube2.AbsoluteToLocal(GLCube1.AbsolutePosition);
end;


47 名前:デフォルトの名無しさん [2007/01/23(火) 01:45:15 ]
もしかしたら、市販ゲーで使うかもしれないage

ひと段落したら、素のOpenGLエンジン+Win32APIから、
これ+VCLに乗せ変えようと思っております。

しぇーだって、どれくらいのマシンで動いてくれるんだろうか・・・

48 名前:デフォルトの名無しさん mailto:sage [2007/01/23(火) 05:18:16 ]
BCBでも使えますか?

49 名前:デフォルトの名無しさん mailto:sage [2007/01/23(火) 08:28:28 ]
>>48
5と6で使える

50 名前:デフォルトの名無しさん mailto:sage [2007/01/23(火) 11:44:36 ]
>49
BDS版のBCBではムリ?



51 名前:デフォルトの名無しさん mailto:sage [2007/01/23(火) 23:23:26 ]
>>50
自 分 で 試 せ よ

52 名前:デフォルトの名無しさん mailto:sage [2007/01/24(水) 12:38:05 ]
俺はBCB持ってないんでなんとも言えないけど、
BCB6で試してみれば?

53 名前:デフォルトの名無しさん mailto:age [2007/01/27(土) 01:13:51 ]
上の方でGLSceneと一緒に使えそうなサウンドの話が出てたけど、
OpenAL Unit(Delphi OpenAL)
www.noeska.com/doal/
というのはどうなんでしょうか?Ogg再生のチュートリアルがあるんで使えそうな気がするんですけど。

僕はライセンスのことは良くわからないけど、こんな感じ?
A・・・OpenAL(LGPL)
B・・・Delphi OpenAL(MPL)
C・・・オリジナルのプログラム
※AはBに動的リンクされて、BはCに静的リンクされる

(1)A,B,Cの配布は、有料・無料関係なく自由(フリー)
(2)Aを配布する場合は、ソースコードを添付しなけばならない。
(3)Bに静的リンクしているCは、コードを非公開にできる。ただしCのコード内にB(MPL)のコードが含まれるため、そのBのソースコードがどこで入手出来るかを明記しなければならない。

54 名前:デフォルトの名無しさん [2007/01/27(土) 02:30:34 ]
>>53
俺は、音は、DirectSound+OggVorbis使ってるw

しかしOpenALって全然しらべても資料がないんだよな。
そこにつけて、Delphiっとなると・・・
って、お前よくそんなサイト見つけたなw



55 名前:デフォルトの名無しさん mailto:sage [2007/01/27(土) 02:47:09 ]
(´・∀・`)ヘー よく見つけたねー すごいねー

56 名前:デフォルトの名無しさん [2007/01/27(土) 03:00:54 ]
>>53
OggVorbis鳴らすサンプル動いたよ。

別途、OpenAL32.dllが必要。
これが、LGPLなんかな。

(2)Aの配布は、ソースコードつけなくていいよ。
ソース入手先(配布元)を書いておけばいい。
(3)Bのコードを改変した場合は、そのソースコードの開示義務が出る。
だけど、Cに静的リンクしているだけなら、改変とみなされないので、特に開示する必要ない。
ただ、著作表示は書く必要あったはず。

MPLは、あくまでそのものを改変した場合、つまり、ライブラリなら、それを改造した場合のみ適用される。
それを組み込んだ側、つまり使う側には、不都合な制限はうけないはず。


57 名前:デフォルトの名無しさん [2007/01/27(土) 17:53:58 ]
GLScene使ってみたんだが、
アプリケーション終了時にエラーが起こる・・・。
なんとかならんのか?

---------------------------
デバッガ例外通知
---------------------------
プロジェクト fire.exe は例外クラス EGLContext (メッセージ 'Context activation failed: C0070006, ')を送出しました。
---------------------------
ブレーク(B) 継続(C) ヘルプ
---------------------------

と出て、無限にダイアログが出て終了できなくなる。
demoのFireでも起こったし、自作のアプリでも起こった。

Delphi2006
GLScene 1.0.0.0714


58 名前:57 [2007/01/27(土) 18:53:41 ]
CVS版でも起こりますね・・・
困った

59 名前:デフォルトの名無しさん mailto:sage [2007/01/27(土) 18:54:45 ]
どうでもいいことだけどバージョンの付け方がうざすぎるよな

60 名前:53 mailto:age [2007/01/27(土) 22:04:24 ]
>>54
ありゃりゃ、DirectSoundでもOgg使えたのか。
僕の勉強不足だったです。DirectSoundでOggが使えれば、ほとんど解決ですね。
mp3のライセンスが極悪なんで、Oggが使えるライブラリを探していたら、たまたまDelphiOpenALを見つけました。
>>56
サンクスです。LGPLへの動的リンクは、ソース入手先等を書いとけばいいのですね。
>>57
僕の場合は、GLScene付属のデモ(Fire含めて)も自作アプリも、そんなエラーは出たこと無いのですが・・・
TuboDelphi2006(10.0.2288.42451 Update 2) +GLScene 1.0.0.0714
ですので、ほとんど同じですね。
・・・・・・ということは、グラボのドライバが怪しい?



61 名前:57 [2007/01/27(土) 22:29:30 ]
そっか、そちらでは、エラーでてないのですかー。
ドライバ更新してみっか・・・

62 名前:57 [2007/01/27(土) 23:11:19 ]
だめだ、ドライバ更新したのに直らないや・・・
困った。

GeXCube RADEON 9600XT Game Buster
ドライバー: 2006/12/16 ver 8.33.0.0

他の環境でも試して見ます・・・。


63 名前:53 mailto:age [2007/01/27(土) 23:42:49 ]
>>57
やはり全く同じエラーが出ている人もいるようです。
www.wincustomize.com/skins.aspx?skinid=171&libid=40
delphi.newswhat.com/geoxml/forumhistorythread?groupname=glscene.support&messageid=c7omik$cim$1@talkto.net
でも、原因も解決方法がわからないです。
もうちょっと調べてみます。

64 名前:デフォルトの名無しさん [2007/01/28(日) 00:03:18 ]
delphi入門
delphi-delphi.tripod.com/delphi.html


65 名前:57 [2007/01/28(日) 00:29:31 ]
素のOpenGL使ってるときには、起こらなかったから、
GLScene側の問題だとは思うのだが、環境によっておこらないとなるとねえ。

66 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 00:38:12 ]
>>57
もしかして、標準のopengl32.dllとグラボのドライバとの相性が悪かったりして・・・
試しにMesa6.2 Win32を使ってみたらどうだろ?
(GLSceneのサイトからダウンロード出来る)
念のためWindows\System32\opengl32.dllをバックアップして、Mesaのopengl32.dllと入れ替えしてみて

67 名前:57 [2007/01/28(日) 00:46:51 ]
newswhat.com [glscene.general]
delphi.newswhat.com/geoxml/forumhistorythread?groupname=glscene.general&messageid=ed92mg$g4m$1@news.talkto.net

ここにも、同じこと言っている人がいた。
同じビデオチップだ・・・

68 名前:57 [2007/01/28(日) 00:51:29 ]
newswhat.com [glscene.general]
delphi.newswhat.com/geoxml/forumhistorythread?groupname=glscene.general&messageid=ecudnn$nd7$1@news.talkto.net

これ?が解決策だろうか?

69 名前:57 [2007/01/28(日) 01:00:03 ]
>>66
MesaのOpenGL.dllをデモと同じディレクトリに置きました。
そっちを優先的に見ると思うので・・・

で、結果ですが、終了時のエラーは起きませんでした。
(ただ、fireのdemo自体はは正常に動いていませんが)

むふー。

70 名前:53 mailto:age [2007/01/28(日) 01:01:36 ]
「About Ati Context OnClose bug, quick solution」ってやつ?
viewerを開放するって、手動で開放するってことかな?



71 名前:57 [2007/01/28(日) 01:13:08 ]
えーと、TForm.OnCloseに
Viewerの開放処理、つまり、
FreeAndNil(GLSceneViewer1);
を入れたら、エラーは出ませんでした。


72 名前:53 mailto:age [2007/01/28(日) 01:14:30 ]
>>57
もし、この英文どおりドライバのバグなら、Catalyst7.1を入れたらどうでしょうか?
ati.amd.com/index.html


73 名前:53 mailto:age [2007/01/28(日) 01:18:24 ]
>>57
あ、一応解決ですね。
・・・と言う事は・・・
Radeon対策に、TGLSceneViewerの開放処理をしたほうが良さそうですね。

74 名前:57 [2007/01/28(日) 01:20:09 ]
これでも、まあいいのですが、
一応、エラーの原因は追究しておきたいと思います。

エラーというか、例外がおきているんですよ。
procedure TGLWin32Context.DoActivate;
内の
  if not wglMakeCurrent(Cardinal(FDC), Cardinal(FRC)) then
が、失敗し、次の行の
  raise EGLContext.Create(Format(cContextActivationFailed,
で、例外発生。


どうも、GLScene的に、WM_DESTROYをフックして(GLWin32Context.TrackHookProc)、
そのときに開放処理を行っているようなのですが、
その中で、終了時なのに、GLContext.TGLContext.Activate呼び出して、
wglMakeCurrentやってるんですよね・・・。
なんか、奇妙だ。

素でOpenGL使っていたときはやらなかったからなあ。


ソースが追えるところの、呼び出し履歴を張っておきます。

:7c812a5b kernel32.RaiseException + 0x52
GLWin32Context.TGLWin32Context.DoActivate
GLContext.TGLContext.Activate
GLContext.TGLContext.DestroyContext
GLWin32Context.TGLWin32Context.DestructionEarlyWarning(???)
GLWin32Context.TrackHookProc(0,0,1244640)


75 名前:57 [2007/01/28(日) 01:22:13 ]
>>72
7.1は、先ほど、ドライバを最新に・・・と言われたときに入れました。
それでも同じでした。

76 名前:57 [2007/01/28(日) 01:45:17 ]
> どうも、GLScene的に、WM_DESTROYをフックして(GLWin32Context.TrackHookProc)、

このタイミングがわるいのかと思い、フックしない設定
つまり、
GLWin32Context.vUseWindowTrackingHook := False;
とやったのですが、これでも起こりました。

GLWin32Context.TGLWin32Context.Destroyで普通におきる罠・・・


呼び出し履歴:

GLWin32Context.TGLWin32Context.DoActivate
GLContext.TGLContext.Activate
GLContext.TGLContext.DestroyContext
GLContext.TGLContext.Destroy
GLWin32Context.TGLWin32Context.Destroy
:00463cf9 TGLContext.Destroy + $1D
:00443106 TWinControl.WndProc + $49E
:0044288f TWinControl.MainWndProc + $2F

77 名前:53 mailto:age [2007/01/28(日) 02:12:02 ]
僕も今、ソースを追ってみたのですが・・・
あ、頭が混乱してきた・・・
あー力不足。

>その中で、終了時なのに、GLContext.TGLContext.Activate呼び出して、
>wglMakeCurrentやってるんですよね・・・。
>なんか、奇妙だ。
なんでこんなとこでバインドする必要があるんだろ?本当に奇妙ですよね。
glGetString(GL_VENDOR)のため?・・・いや、関係ないか。

ぼちぼちもうちょっとソース追ってみようっと。



78 名前:53 mailto:sage [2007/01/30(火) 00:09:32 ]
ニュースグループにも、ATI Mobility X1300で同じ症状の人がいるみたいです。
(procedure TGLWin32Context.DoActivateのwglMakeCurrent(Cardinal(FDC), Cardinal(FRC))で例外発生)
「TForm.onDestroyでGLSceneViewer1.Buffer.DestroyRC;」しろ!とレスされてます。

でも・・・私のノートパソがATI Mobility X1400なので、もしかしてと思い、試してみたのですが・・・(fireデモ含んで)例外は発生しませんでした。
本当に何が原因なんだろ?

79 名前:デフォルトの名無しさん [2007/01/30(火) 03:26:10 ]
Delphiで、3Dライブラリといったら、Rage3Dっつーのもあるんですね。
Google Code Searchふらついてたら見つけた。

Rage 3D Game Engine News - Open Source free game engine for commercial games and free game use
www.rage-game-engine.za.net/


とは言え、サンプルとかが多そうなGLSceneをしばらくは使ってみますが。
浮気するには、まだ早い!

80 名前:デフォルトの名無しさん mailto:sage [2007/02/04(日) 00:51:00 ]
Rage3D、インストールの仕方もわからんかった。
やはりGLSceneの方が良さそうか。



81 名前:デフォルトの名無しさん mailto:sage [2007/02/06(火) 17:15:24 ]
これ、使いやすくていいですね!
キューブにtexture画像を貼り付けると、自動的にstretchされるんですが、
tileにするにはどうすればよいか教えていただけませんか?

82 名前:デフォルトの名無しさん [2007/02/07(水) 17:59:04 ]
落としたファイルにライセンス条項が見当たらないのですが、
本家ページによればMPL相当らしいので、配布には、copyrightを書かねばいけませんよね?
copyrightは、どう書けばいいのですかな。


GLScene (c) GLScene Project
glscene.org

83 名前:デフォルトの名無しさん [2007/02/07(水) 18:02:10 ]
GLScene, Delphi + OpenGL
caperaven.co.za/

ここのヘルプに書いてありますね。

GLScene (c) 2000-2001 Eric Grange
glscene.org

でよいのかな・・・


84 名前:デフォルトの名無しさん [2007/02/07(水) 18:36:54 ]
思ったのですが、
VectorGeometryは、通常のFPUと、SSEと、3DNow!で、場合分けしますよね?
リプレイの実装で問題がでそうなので、OFFりたい、というか、FPUオンリーにしたいのですが、

initialization の CPU判別ルーチンをコメントアウトしておけば、
vSIMD:=0; が初期値なので、OKですよね。


85 名前:デフォルトの名無しさん mailto:age [2007/02/10(土) 23:33:18 ]
>>81
マテリアルライブラリからなら、タイル状に貼れるぞ。
例えば、GLMaterialLibrary1の0番目に入っているテクスチャを貼りたい時、
GLMaterialLibrary1.Materials[0]のプロパティTextureScaleをいじってみてくれ。
たとえば5×5にするなら、X=5,Y=5だ。

86 名前:デフォルトの名無しさん [2007/02/12(月) 09:54:17 ]
>>85
サンキューです。できました。
簡単にできて、素晴らしいですね。直にOpenGLいじる気なくなりますね。

87 名前:デフォルトの名無しさん [2007/02/15(木) 17:58:16 ]
物理エンジンoxNewtonをインストールしてみました。
www.dave.serveusers.com/oxNewton.html

TGLSceneが拡張されて、oxNewton用のGLSCeneObjectが追加されます。
何故か嬉しい事にOpenAL用コンポーネントも付いているようです。
また時間が空いているときにいじってみようと思います。

88 名前:デフォルトの名無しさん [2007/02/15(木) 18:13:21 ]
インストールに悩みました。同じ様に悩む人もいると思うので、やり方を書きます。

解凍後、GLSceneのフォルダにコピーする。
→GLVectorFileObjects.pasが上書きされる
oxNewtonフォルダのinstalldll.batを実行する。
→「Newton.dll」「oxNewton.dll」「OpenAL32.dll」「wrap_oal.dll」がsystem32にコピーされる
ライブラリパスに「\oxNewton」を追加する。
GLSceneのDelphi***.dpkをダブルクリックして、プロジェクトマネージャーを立ち上げる。フォルダDesignTimeにある「oxNewtonRegister.pas」をDelphi***.dpkに追加し、再構築&インストールする。

89 名前:デフォルトの名無しさん mailto:age [2007/02/16(金) 19:18:29 ]
>>87
乙です。
・・・ということは、GLSceneでODE(Open Dynamics Engine)とNewtonと二つの物理エンジンが使えるってことだよね。
どっちがどう違うんだろ?
誰か知っている人います?

90 名前:デフォルトの名無しさん mailto:sage [2007/02/25(日) 02:17:28 ]
GLScene入れてみた。
殆どコード書かなくても3D的な事ができるな。こりゃ楽だ。
しかし.3dsかぁ。teapotを10000個出して動かしてみたけど、楽しくないや。
モデリングソフトはさっぱり知らんが、もっと手軽なフォーマットがないかな。



91 名前:デフォルトの名無しさん mailto:sage [2007/02/26(月) 22:50:54 ]
>>90
有名どころのフリーのモデラーの出力形式をコピペしてみた。GLSceneが対応しているフォーマットは>>22が書いてるとおり。

【Blender】
3D Studio, AC3D, COLLADA, DEC Object File Format, DirectX, Lightwave, MD2, Motion Capture, Nendo, OpenFlight, PLY, Pro Engineer, Radiosity, Raw Triangle, Softimage, STL, TrueSpace, VideoScape, VRML, VRML97, Wavefront, X3D Extensible 3D, xfig export

【OpenFX】
3D Studio models(.3DS) , DXF models(.DXF) , STL Stereo Lithography(.STL) , VRML files(.WRL)

【Wings3D】
Nendo (NDO) , 3D Studio (3DS) , Wavefront (OBJ) , VRML (WRL) , Renderware (RWX) , FBX (on Windows and Mac OS X)

これからするとやはりフォーマットは、3dsがポピュラーっぽいね。


92 名前:90 mailto:sage [2007/02/27(火) 23:13:01 ]
>>91
おぉ、すごい。ありがとう。今から見てきます。

今週末はタイマー周りで遊んでみた。
GLTimeEventsMGRがあるので、自前でタイマー処理を書かなくて済むし、
GLCadencerの設定変えれば描画スキップして10ms毎に確実にカウントできる処理とかもできるし。
これ便利だわ。

93 名前:87 [2007/02/28(水) 00:09:27 ]
物理エンジンoxNewtonを試してみました。ヘルプが無いのが辛いです。まだまだわからない事ばかりですが簡単にまとめてみます。

・剛弾性体の運動および衝突をシミュレートしてアニメーション。
・TGLSceneの代わりにToxNewtonManager(TGLSceneから継承)を使用する。TGLCadencerは必須。
・ToxNewtonManagerで設定する必要のあるプロパティは以下のとおり
Cadencer←TGLCadencer、Cadencer側でもToxNewtonManagerを指定
WorldSizeMax,WorldSizeMin
WorldMaterialElasticity←弾性係数
WorldMaterialKineticFriction←動摩擦係数
WorldMaterialStaticFriction←静摩擦係数
WorldMaterialSoftness
WorldStepMode
・・・mdNormalStepの場合はWorldStepTimeで設定
・・・mdMultyplyStepの場合はWorldMultiplyTimeで設定
・・・mdCadencer 実時間?
Gravity←初期値は(0,0,-9.81)つまりz軸が上方向

・ToxNewtonManagerをダブルクリックしてGLSceneエディタを立ち上げて、oxNewtonオブジェクトを追加していく。
・Dynが付くのは動くオブジェクトで、Staが付くのは動かないオブジェクト(床や壁等)。
・弾性係数はMaterialElasticityプロパティで動摩擦係数はMaterialKineticFrictionプロパティ。
・oxNewtonManagerやoxNewtonオブジェクトやジョイントはフォームのonCreateイベントで初期化しておく。
・onNewtonには直接関係ないけど、GLSceneを使ったときは、フォームのonCloseイベントで以下のコードを追加しましょう。
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
// ATI onclose context error fix
if assigned(GLSceneViewer1) then GLSceneViewer1.Free;
end;

94 名前:91 mailto:age [2007/03/08(木) 22:53:10 ]
>>90
俺もそのレス読んで思わずGLCadencerやGLTimeEventsMGRで色々と遊んでしまった。
GLCadencer自体、便利だね。ASAPを選べば余分な割り込みは発生しないし、かと言ってApplicationIdleも選べるし。
GLSceneを使う限りApplicationIdleを選択する必要は無いかもしれんが。
結局はプロパティはデフォルトのまま使えそう。
自前でタイマーのコードを書かなくて済むのが楽だね。

95 名前:デフォルトの名無しさん mailto:age [2007/03/12(月) 02:39:54 ]
age
本家HP(glscene.org)のニュースより。
GLSceneライブラリの大幅なバグフィックス&拡張&最適化版のリリースが近々始まるそうです。
以前よりももっと良くなるらしいです。
(もしかして、これが去年夏頃から再開発を開始したGLSceneのver2かな?)
更に強力で更に早い!とのことで、リリースがとても楽しみです。


96 名前:デフォルトの名無しさん mailto:sage [2007/03/12(月) 02:51:33 ]
俺もGLSceneを入れてみた。
ビジュアルコンポーネントになってて、こりゃ使いやすそうだわ。
3Dゲームプログラミングに関する限り、QuadrupleDよりも上かも知れんな。
誰か、日本語の詳しいヘルプを作ってくれ。

97 名前:デフォルトの名無しさん mailto:sage [2007/03/12(月) 10:15:26 ]
メッシュとかどうなの?

98 名前:デフォルトの名無しさん mailto:sage [2007/03/12(月) 22:04:50 ]
>>96
己が神になれるチャンスをなぜ人に振る?

99 名前:デフォルトの名無しさん [2007/03/12(月) 22:27:26 ]
流れ者です。

ttp://wiki.lazarus.freepascal.org/GLScene/ja

DelphiとGLSceneで書いておけば、
Lazarusでのコンパイル(Linux,Mac)もそれほど難しいものではないかも。


100 名前:デフォルトの名無しさん mailto:sage [2007/03/12(月) 23:20:44 ]
おまえらGLSceneを使ってるサンプルソースでも集めてくださいよ



101 名前:デフォルトの名無しさん mailto:sage [2007/03/13(火) 18:48:30 ]
>>100
ほう。ぼちぼちサンプルでも作ってみるかな。

102 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 03:00:48 ]
>>101
サンプルまだー?チンチン

103 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 16:26:53 ]
>>102
分かりやすいサンプルを作るのは難しいな。
それにプログラムのアップとかはどうすりゃいいんだろとか
いろいろ考えているうちに萎えた。
orz

104 名前:デフォルトの名無しさん [2007/04/13(金) 12:14:25 ]
アプロタは、gamdev使えばいいよ。ゲームがらみなんだから。(つかなんで、この板にあるんだ?)

105 名前:デフォルトの名無しさん [2007/04/14(土) 18:21:34 ]
gamdevってなんだろ?と思い、ググってみた。
もしかして、これのこと?
ttp://gamdev.org/

おぉなんと、ゲムデブWikiのDelphiまとめというところにGLSceneという項目が!
(ちょっと情報が古い感は否めないが・・・)
Wikiは良く知らないんだけど、これって勝手に編集したりしても、いいの?

106 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 18:42:59 ]
いいわけねぇだろww

107 名前:デフォルトの名無しさん [2007/04/14(土) 20:09:58 ]
gamdevは、ゲ製作技術板 pc11.2ch.net/gamedev/
のサポートサイトで、ゲーム制作関係用にアプロダとかwikiは、
勝手に使っていいのです。

>>106
むしろ勝手に編集してください。



108 名前:デフォルトの名無しさん [2007/04/14(土) 20:12:40 ]
ここだよね?

GamDevPukiWiki - GLScene
gamdev.org/w/?%5B%5BGLScene%5D%5D


109 名前:103 mailto:age [2007/05/14(月) 23:27:37 ]
GamDevPukiWikiのDelphiまとめのGLSceneのところに、
リファレンスという項目を作ってみた。

ちと膨大な作業になりそうで、ひとりじゃ絶対無理なんで、
皆様も、追加&修正頼みます。


110 名前:デフォルトの名無しさん mailto:sage [2007/05/16(水) 00:32:24 ]
>>109
縦に長すぎて編集しづらい



111 名前:103 mailto:age [2007/05/16(水) 01:04:09 ]
>>110
スマソ。慣れてないもんで・・・
もうちょっと分割したほうがいい?

112 名前:103 mailto:age [2007/05/16(水) 02:07:49 ]
ちょこっと分割してみました。
こんなもんで、どうでっしゃろ?

113 名前:デフォルトの名無しさん mailto:sage [2007/05/16(水) 02:35:44 ]
GLScene良さそうだけど何から何までよくわかんないから
wiki作成頑張ってくれ

114 名前:デフォルトの名無しさん mailto:sage [2007/05/17(木) 20:45:56 ]
>>109
これの翻訳元(?)ってどこよ

115 名前:103 mailto:sage [2007/05/17(木) 22:50:10 ]
>>114
主にGLScene本家glscene.orgのhelp→Reference Manualを基にしてます。
また一部、GLScene付属のヘルプを基にしたり、GLSceneのソースを解読したりして、
色々書き換えたりしてます。
既に書いたやつも、気が付いたら書き加えたり訂正したりしようと思っています。

私自身何かと忙しく、更新が遅れ気味にはなるとは思います・・・
本当に一人じゃ不可能なんで、 皆様も、追加&修正頼みます。
何卒、ご協力お願いいたします。
m(__)m


116 名前:デフォルトの名無しさん mailto:sage [2007/05/19(土) 08:53:50 ]
お疲れ様です

117 名前:デフォルトの名無しさん mailto:sage [2007/05/19(土) 20:56:56 ]
これ使ってる凄いソフトなんかある?デモ的なものでもいいから機能がわかるやつ頼む

118 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 18:54:52 ]
>>117
glscene.sourceforge.net/wikka/AdvancedDemos
この中のAirBlastなんて、どう?
一応、ソース付きです。

他のAdvanced Demoは古いバージョン(Snapshot版)のGLSceneを使っているらしく、
ソース直して再コンパイルしないとまともに動かないと思う。


119 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 01:07:31 ]
>>118
起動できない

---------------------------
Application Error
---------------------------
Exception EOpenGLError in module Archipelago.exe at 000802C9.
Need at least OpenGL version 1.1.
---------------------------
OK
---------------------------


120 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 23:21:54 ]
>>119
あ、はい、、「Archipelago.exe」なら、まず最近のPCじゃ動かないと思います。
Advanced Demoの「Archipelago.exe」は、GLScene ver1.0より古いもの(SnapShot版か?)でコンパイルされていると思われます。
と言うのは、古いGLSceneの中にあるunit OpenGL12(OpenGL12.pas)のOpenGLのバージョンチェックにバグがあるのです。
具体的に言えば、OpenGLのver1.5までしか認識しないようです。
GLScene ver1.0からは「unit OpenGL12」は廃止になっていて、代わりに「unit OpenGL1x」を使ってくれ。。。
となっております。
そのため動かしたい場合は、ユニット名を変更して再コンパイルする必要があります。
その他、以前と変わっているユニット名は「Geometry」→「VectorGeometry」くらいか?

しかし・・・
更に古いベータバージョンは、クラス名や仕様の変更、メソッドの廃止・変更・追加など色々有ったようなので、
ちょっとした修正だけでは動かない可能性もあります。
「Archipelago.exe」のソースは確認していないので、動くかどうかは分かりません。

ベータバージョンが終了して公式バージョンのGLScene1.0がリリースされたは去年の7月なんで、ソフトウエアが出て来るのはまだまだこれからだと思います。




121 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 22:38:26 ]
さっき「Archipelago.exe」のソースを見てみました。
このとき初めて知ったのですが、ベータバージョンのユニットGLMiscは、正式バージョンではGLMiscとGLStateとGLUtilsの3つに分かれたようです。
そしてInvertGLFrontFace手続きはGLMiscからGLStateに移動し、更にTGLStateCache型のクラスメソッドになったようです。

つまり、「Archipelago.exe」を再コンパイルするには、
ソースの以下の部分を変更する必要があります。
(1)ユニットGeometryをVectorGeometryへ名前を変更
(2)ユニットGLStateとGLUtilsを追加(多分GLUtilsはいらないが念のため)
(3)ユニットOpenGL12をOpenGL1xへ名前を変更
(4)クラスTGLStateCacheをインスタンス化して、InvertGLFrontFaceを呼び出ししている箇所(4ヶ所)をそのオブジェクトのメソッドに変更。

これでとりあえず動くはず・・・多分

(4)のやり方が分からない人は、以下のようにしてみてください。
@implementation部のuses節の後くらいに「var sc:TGLStateCache;」を追加
AForm1.onCreateに、「sc:=TGLStateCache.Create;」を追加
BForm1.onCloseを作って「sc.Free;」と書く
C全ての「InvertGLFrontFace;」を「sc.InvertGLFrontFace;」に変更する

122 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 22:40:18 ]
って書いてるうちに、ソースの修正が終わったので、実行してみた。
このデモ、初めて見た。結構きれい。

でも・・・どうせ本家HPにデモを載せるなら、コードを修正してからの方が・・・
ボソッ

123 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 07:55:04 ]
Delphi Doom
www.geocities.com/jimmyvalavanis/applications/delphidoom.html

124 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 12:38:14 ]
>>123
もしかして、これってGLScene(OpenGL)じゃなくDirectXでは?

125 名前:デフォルトの名無しさん mailto:sage [2007/06/17(日) 17:39:18 ]
久々にGLSceneのNewsGroupをチェックしました。
GLScene用物理エンジンoxNewtonの新バージョン(Ver1.48)がもう少しでリリースされるようです。
そのバージョンで、「bsp loader」という新しいオブジェクトが追加されるようです。
Quake3形式のbspマップの読み込みと表示が出来るようになるようです。

表示テスト用
www.dave.serveusers.com/Basic_BSP.rar

Quake3マップビュワー(25Mbもあるので要注意)
www.badongo.com/file/2962824

スクリーンショット
www.dave.serveusers.com/skyfix1.jpg
www.dave.serveusers.com/skyfix2.jpg
www.dave.serveusers.com/cuis1.jpg
www.dave.serveusers.com/cuis2.jpg
www.dave.serveusers.com/cuis3.jpg
www.dave.serveusers.com/tts.jpg
www.dave.serveusers.com/tts2.jpg
www.dave.serveusers.com/tss3.jpg


126 名前:125 mailto:age [2007/06/17(日) 17:41:59 ]
デモを見る限り、表示が速くて綺麗なのですが・・・
レベルエディタgtkRadiantで作ったマップデータは商用利用が禁止されているらしいですが、そもそもQuake3形式のbspマップの商用利用も、やはり禁止されているのでしょうか?

だとしたら、もし商用利用したい場合は、
QuArk+OpenBSP
しか方法は無いのでしょうか?
誰か教えてください。


127 名前:デフォルトの名無しさん mailto:sage [2007/06/17(日) 20:15:20 ]
流石に他人のフンドシをモロに使うのはどうなんだろう。

128 名前:デフォルトの名無しさん mailto:sage [2007/06/17(日) 22:43:23 ]
>>126
id SoftwareのHP内を色々見て回ったけど、それらしい文章は見つけられませんでした。

しかし、GLSceneのHPのHelp→ArticlesのOpenBSPの項の「Why use OpenBSP compared to normal BSP?」というところに、
If you use the IDSoft BSP format commercially you must pay a license fee of $US50000.
と書いてありました。
つまり、QuakeのBSPマップの商用利用は可能だが、その代わりライセンス料として5万ドル!支払う必要があるようですね。

だから、もしQuake形式のBSPマップを使う場合はフリーウエアに限定したほうが良いでしょうね。ちなみにこの形式のカスタムマップは、様々な人がフリーで公開しています。

「QuArk+OpenBSP」の方なら、現在のところ商用利用も問題なさそうですね。


129 名前:デフォルトの名無しさん mailto:sage [2007/06/17(日) 22:54:53 ]
>>127
>>128
レス、サンクスです。
シェアウエアを作る予定は今のところ無いのですが、
とにかくすっきりしました。


130 名前:デフォルトの名無しさん mailto:sage [2007/06/17(日) 23:26:01 ]
QuArkを入れてみたけど、表示がなんか変。
説明が難しいけどたぶん、壁や床が全く表示されてないんだと思う。
GeForce FX5200
WindowsXP



131 名前:デフォルトの名無しさん mailto:sage [2007/06/18(月) 00:57:47 ]
>>130
コントロールパネルから、地域と言語のオプションを選択
地域オプションタブの標準と形式のところを
「英語(米国)」
に変更してみて。多分、壁が表示される様になるから。
何故かは分からないけど。

132 名前:デフォルトの名無しさん [2007/06/18(月) 23:01:13 ]
>>128
フォーマットに権利があるのか・・・
最悪だなw id softwareもやるな






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](*・∀・)<95KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef