[表示 : 全て 最新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。


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もやるな



133 名前:デフォルトの名無しさん [2007/06/19(火) 22:28:49 ]
流れをぶった切った質問で申し訳ないのですが、GLCubeをいくつか表示
している時に、マウスが乗っかったのがどのGLCubeか判別するメソッドは
ないでしょうか?

134 名前:デフォルトの名無しさん mailto:sage [2007/06/20(水) 00:13:01 ]
>>133
メソッドありますよ。
TGLSceneViewerのBufferプロパティのGetPickedObjectメソッドを使えばいいです。
function GetPickedObject(x, y : Integer) : TGLBaseSceneObject;

例えばGLSceneViewerのonMouseMoveイベントで、
procedure TForm1.GLSceneViewer1MouseMove(Sender: TObject;
Shift: TShiftState; X, Y: Integer);
var
pick : TGLBaseSceneObject;
s : String;
begin
pick:=GLSceneViewer1.Buffer.GetPickedObject(x, y);
if Assigned(pick) then begin
s:=pick.Name;
showmessage(s);
end;
end;

上記の様にNameプロパティを使って判別するのもよし、Tagで判別するのもよし・・・


デモのinterfaceフォルダの中のpickを参照してみてください。


135 名前:133 [2007/06/20(水) 16:02:34 ]
>>134
ありがとうございます。とても分かりやすいご説明、感謝いたします。

136 名前:デフォルトの名無しさん mailto:age [2007/06/20(水) 23:15:34 ]
>>131
おかげで、QuArkが正常に動くようになりました。
大変助かりました。サンクスです。

www.skinhat.com/
ここの「Quark for GLScene using OpenBSP」をインストールしました。
なかなか楽しい。こりゃ、QuArkの使い方も覚えないと・・・。

サンプルのsanom.exe、例の「Need at least OpenGL version 1.1」エラーが出るけど、
ソースを再コンパイルすれば無事動くようになりました。
OpenBSPって、もしかしてGLScene専用か?


137 名前:デフォルトの名無しさん mailto:sage [2007/06/20(水) 23:41:01 ]
>>132
日本の法律だとフォーマットは著作権によって保護されない。


製作者の主張に沿うように扱うべきなのかもしれないけどね
・・・ん?フォーマットに権利があるとしたらgtkRadiant以外で
作ったとしてもNGなんじゃない?

138 名前:デフォルトの名無しさん mailto:sage [2007/06/20(水) 23:57:06 ]
日本の法律だと大丈夫なの?

id Softwareに従うとすれば・・・
gtkRadiant以外のエディタ、例えばQuArkでQuakeのBSPマップを作れば、商用はNGだと思う。
とりあえずGLSceneで使うなら、QuArkで作ったOpenBSPを使うのが無難な選択だろうね。

まあ、フリーウエアを作るなら、上記のどれを使おうが問題は無いのだろうが。


139 名前:デフォルトの名無しさん mailto:sage [2007/06/21(木) 00:15:12 ]
「同人は商用ではありません。」っていう主張は果たして通用するのかが気になる。

140 名前:デフォルトの名無しさん mailto:sage [2007/06/21(木) 00:19:46 ]
うむぅ。。。実際には通用しないような・・・

141 名前:デフォルトの名無しさん mailto:sage [2007/06/21(木) 00:20:43 ]
するわけねーだろ馬鹿

142 名前:デフォルトの名無しさん mailto:sage [2007/06/21(木) 00:21:34 ]
id Softwareの*.bspフォーマットが商用不可だから、
OpenBSP(*.obsp)という商用可のフォーマットを作った、
ということじゃないのかな?

【以下はOpenBSPの開発コントリビューター達】
Eric Grange・・・GLSceneの開発リーダー
Igor T. (GWin)
Mike Lischke
Osman Turan・・・OpenBSPの開発リーダー
SkinHat・・・本家GLSceneのHelpの大半を書いてる人




143 名前:デフォルトの名無しさん mailto:sage [2007/07/02(月) 08:50:31 ]
クォータニオンを計算する関数は見つけたんですが、
クォータニオンからXYZの角度を算出する関数って無いですか?
クォータニオン算出関数の中を見て、逆をやればと思ったのですが、
数学がへっぽこなので。・゚・(ノД`)・゚・。



144 名前:デフォルトの名無しさん mailto:sage [2007/07/02(月) 09:12:14 ]
これQuadrupleDと比べてなにが優れてるの?

145 名前:デフォルトの名無しさん mailto:sage [2007/07/03(火) 01:41:04 ]
比べること自体間違ってる

146 名前:デフォルトの名無しさん mailto:sage [2007/07/03(火) 19:31:22 ]
ゲーム用のライブラリで3Dグラフィック表示・演算支援、入力支援などがあり
目的も機能も目指すところは同じように見えるんだが?


147 名前:デフォルトの名無しさん mailto:sage [2007/07/03(火) 22:24:11 ]
目的も方向性もほぼ同じで比較は難しいが・・・・・
3Dに関しては、GUIで確認できるGLSceneの方が敷居が低いと思う。


148 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 16:10:16 ]
>>146
それぞれのベースとなってるOpenGLとDirectXで
すでに違いがあるから、まずはそれを調べたら?

149 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 19:17:53 ]
>>148
つまりどちらも薄いラッパーなのですか?

150 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 20:21:10 ]
2D表示をするにはどの命令を使えばいいですか?

151 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 22:38:47 ]
>>149
私は<<146では無いのですが・・・

それは、GLScene(OpenGL)とQuadrupleD(DirectX)が薄いラッパーか?ってこと?
どちらも薄いラッパーではないと思います。

でも、
QuadrupleDはDirectXラッパー+αってかんじかな?
GLSceneはOpenGLラッパーはラッパーなんだけど、OpenGLの機能以外のものを充実してるって感じかな。

つまり、QuadrupleDを使う場合はDirectXを意識しないと使えません。少なくともDirectXのHelpは必須でしょう。(私の場合だけか?)
GLSceneの場合は、表示機能だけは内部でOpenGLを使ってますよ、と言う感じで、あまりOpenGLを使う意識をせずに使えてしまいます。OpenGLのことをあまり知らなくてもGLSceneは使えると思います。

・・・そういう意味では、GLSceneの方が濃いラッパーと言えるかもしれません。


152 名前:デフォルトの名無しさん mailto:sage [2007/07/07(土) 06:55:28 ]
>>150
2D表示命令は知らんが・・・
GLSceneオブジェクトでは、「HUD objects」や「GUI objects」というカテゴリーにあるのが2D座標専用オブジェクトだ。
非コンポーネントのクラスでは、TGLCanvasが物理座標(スクリーン座標)専用だ。

ビットマップを使うなら、TGLHUDSpriteが便利。
幾何学図形なら、機能は貧弱だがTGLCanvasが便利。




153 名前:デフォルトの名無しさん mailto:sage [2007/07/14(土) 08:44:49 ]
オレのメモ

Genesis Device Engine
www.genesisdevice.net/

SLG Core
sourceforge.net/projects/ptisc/

Mondo 3DMMORPG engine
sourceforge.net/projects/gamemundo/


154 名前:デフォルトの名無しさん mailto:sage [2007/07/14(土) 20:43:10 ]
>>152
GLSceneViewerの表面に、オブジェクトまでの距離を現すグラフを
書きたいんです。
TGLCanvasでたとえば、単純に対角線を引くにはどうするのでしょうか。




155 名前:デフォルトの名無しさん mailto:sage [2007/07/15(日) 00:15:49 ]
>>154
とりあえずは、TGLCanvasの使用例を説明すればいいのかな?

GLSceneエディタで追加したカメラ名をGLSceneViewerのCamerasプロパティに設定する。
uses節にGLCanvasとGLTextureを追加する。
GLSceneエディタでDirect OpenGL(TGLDirectOpenGL)を追加する。
GLDirectOpenGL1のonRenderイベントに、次のようなコードを書く。

procedure TForm1.GLDirectOpenGL1Render(Sender: TObject; var rci: TRenderContextInfo);
var
glc:TGLCanvas;
begin
glc:=TGLCanvas.Create(GLSceneViewer1.Width,GLSceneViewer1.Height);
glc.PenColor:=clRed;
glc.PenWidth:=3;
glc.Line(0,0,glc.CanvasSizeX-1,glc.CanvasSizeY-1);
glc.Free;
end;

ラインは上記の様にLineで描くことも出来るし、TCanvasの様にMoveToやLineToで描くことも出来ます。
y軸を逆転させることも出来ます。→その場合は左下が(0,0)になる
その他の描画命令はヘルプを参照してください。・・・何故かArcが無い?

それと、付属のデモのbenchフォルダのcanvasを参照してみてください。


156 名前:デフォルトの名無しさん mailto:sage [2007/07/15(日) 11:21:15 ]
ありがとうございます。かけました。

GLDirectOpenGL1に書くと、シーンの
影響をうけないかどうか、見てみます。

Arcは必要ならEllipseなどをみて作ればいいんでしょうけども、
作ったら本家フィードバックしたほうがいいんでしょうか?




157 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 01:03:26 ]
2D幾何学図形が高速で描けるのもGLSceneの利点ですね。
TCanvas(GDI)は遅すぎるし、QuadroupleD(DirectX)で幾何学図形を描くのは大変過ぎるし。

作ったら、コードの公開義務があるかどうかってこと?
それはMPL(Mozilla Public License)に従ってください・・・と返事するのはあまりにも冷たすぎると思うので・・・

Eric Grange氏はヘルプのライセンスのところで、改造したGLSceneを公開する場合について以下の様に書いています。

Modifications made to GLScene units must be made public (no need to publish the full code, only to state which parts were altered, and how), but feel welcome to open-source your code if you so wish.

つまり、要約すると・・・
改造したユニットの全てのコードを公開する必要は無いが、どこをどの様に変更したかを明記する義務があります。でも、その改造したコードをオープンソースにするのは歓迎しますよ。
ってな感じです。

改造したGLSceneを配布などをする場合は、その改造箇所を明記してくださいね。
それと義務では有りませんが、そのソースをオープンにしたり、本家へのフィードバックするのは喜ばれると思います。

ちなみに蛇足ながら、GLSceneを使って作ったソフトをクローズドソース(ソースコード非公開)にするのは使用者の自由です。


158 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 11:55:29 ]
ありがとうございます。

3Dシーン上に、2Dのメータを書くのはGLSceneViewerの
Buffer.WrapUpRendering
のコールバックで書くようにしました。

(もちろんご指摘の方法でもOkでした)

また質問で申し訳ないですが、TGLDirectGLで自分で書いた
プリミティブや曲線を、マウスによる選択はどうすればいいんでしょうか。

>>133には、GetPickedObjectの例がありましたが、何か実装する
場所がありますか?

159 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 13:48:13 ]
↑glPickMatrix等がいるかと思いましたが、
なにも実装しなくてもできました。スルーしてください。


160 名前:デフォルトの名無しさん mailto:sage [2007/07/17(火) 21:14:35 ]

GetPickedObject、動的に生成したシーンオブジェクトを追加すると、
どこをピックしてもそのオブジェクトがかえってきます。

GLScene1.Objects.addChild( 〜 )
で追加するのはまずいのでしょうか。

#サンプルでもそうやって追加しているし、ピック以外は正常に動いている。


161 名前:デフォルトの名無しさん [2007/07/22(日) 08:55:29 ]
お世話になります。
clothactorのデモでtrinityが動くのを見て、すごいなぁと思いました。
smdというファイル形式で保存されていますが、これはどのようなソフトで
作られたデータなのでしょうか。googleで探しても、Sega Mega Driveとか
Jphoneの着メロばかり出てきてしまいます。

また、同時に何人もこんなのを動かしても普通に動くのでしょうか。

162 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 02:11:45 ]
>>161
"smd形式 3D"でぐぐったらすぐ出てきたけど



163 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 18:01:06 ]
マウスクリック位置が、GetPickedObjectでのオブジェクト上の
どの位置かを知るにはどうしたら良いでしょうか。



164 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 21:15:55 ]
Delphi用のNURBSライブラリ情報はないですか。






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

前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