とりあえず日本語でおk
初めてGLSceneに触る方のために簡単チュートリアル。
Form1にGLSceneとGLSceneViewerとGLCadencerの3つをドロップする。
GLScene1をダブルクリックするとGLSceneエディタが立ち上がるから、Camerasにカメラを追加。
以下のプロパティをセットする。
GLSceneViewer1のCameraにGLCamera1
GLCadencerのSceneにGLScene1
以上で基本設定終了。
GLSceneエディタで上のアイコン「show Behavious/Effect」をクリックしておいてくだされ。
5 :
4:2006/11/13(月) 23:53:42
ここからチュートリアル開始です。
GLSceneViewer1のBuffer.Background=clBlackにして背景を黒くしてください。
気が向いたらGLSceneViewer1のAlign=alClientにでもしておいてください。
GLSceneエディターで、GLLightSourceとDummyCubeとGLDodecahedron(正十二面体)を追加。
・・・別にGLDodecahedronじゃなくてもいいが
ツリー上で、GLDodecahedron1はDummyCube1の「子」にしておく
Camera1のプロパティPosition(X,Y,Z)=(0,2,6)
Camera1のプロパティTargetObject=DummyCube1
↑手前のちょっと上からDummyCube方向を見るってこと
GLDodecahedron1のプロパティPosition(X,Y,Z)=(2,0,0)
↑DummyCube1の子オブジェクトなので、DummyCube1の相対位置になる
ここでちょっと動きをつけてみましょう。
ここでは、DummyCube1(見えない立方体)を回転させます。
まずはuses節にGLBehavioursを追加。
GLSceneエディタで、DummyCube1を選択してBehaviousに「Simple Inertia」を追加。
Simple InertiaのプロパティTurnSpeed=30をセット
↑y軸を中心に30度/秒の速度で回転させるということ
んで、おもむろに実行!!!
DummyCubeを回転させれば、その子オブジェクトの十二面体も一緒に回転します。
ここでもっとDummyCubeを追加したり回転を加えたりすると、もっと複雑な動きが出来ます。
GLCadencerのOnProgressイベントにコードを書いたら、もっと複雑な動きもできます。
6 :
4:2006/11/13(月) 23:55:17
<続き>
お次はエフェクトです。
GLFireFXManager(GLScene PFXタブ)をForm1にドロップ。
GLFireFXManager1のプロパティFireRadius=0.2くらいにしておきましょう。
GLSceneエディタで、GLDodecahedron1を選択してEffectsに「FireFX」を追加して、FireFXのプロパティManager=GLFireFXManager1にする。
はい、実行。
ををー、火が出た!!!
お次はGLThorFXManagerをForm1にドロップ。
プロパティCadencer=Cadencer1、Target(X,Y,Z)=(-2,0,0)
GLSceneエディタでGLDodecahedron1を選択してEffectsに「ThorFX」を追加して、ThorFXプロパティManager=GLThorFXManager1にする。
はい実行。イナズマだ!!!
ってな感じでパーティクル系のFXはいろいろ有るようです。
スクリーンショットと導入手引きどこ?
>7
スクリーンショットも導入の手引きも、公式にあるぞ。
・・・とは言っても、導入の仕方は詳しく書いていない。orz
導入の仕方は次の通り。
(1)GLSceneのsourceフォルダとその下のフォルダ全てにライブラリパスを通す
ライブラリパス通すのは結構面倒くさい。
(2)以下のdllファイルをシステム環境変数のPATHの通ったフォルダ(例:c:\Windows\system32)へコピーしておく。dllは実行ファイルと同じフォルダにあればokだけど、この方が便利。
SDL.dll・・・GameAPIs
ODE.dll・・・PhysicsAPIs
FMOD.dllとBASS.dll・・・SoundAPIs
(3)GLScene***.dpk(***は使用しているDelphiのバージョン)をダブルクリック。
ここからはDelphiのバージョンによって違う。古いバージョンのは忘れた。とにかくインストールを選択。
Delphi2006の場合はプロジェクトマネージャーを表示させて右クリックでインストールを選択。
(4)「GLS_ODE***.dpk」「GLS_SDL***.dpk」「GLSS_FMOD***.dpk」「GLSS_BASS***.dpk」も同じようにインストール
OpenGL単体で扱うのに疲れてきたので、GLSceneつかってよかですか?
全画面にするのは、どうすればいいんだろ・・・
また、DirectDraw使うか・・・
今は、DirectSound使ってます。
しかし、サウンドの、FMODって、1タイトル最低$3000って高すぎるんですが(泣
11 :
デフォルトの名無しさん:2006/12/13(水) 11:54:29
BASS.dllも、Single Commercial license: ?950ヽ(`Д´)ノ ウワァァン!!
DirectSound使うか・・・
それともSDLか・・・
これと、SDLの組み合わせ使っている人います?
VB.NETでManaged DirectX使ったほうが簡単だね
13 :
デフォルトの名無しさん:2006/12/13(水) 16:39:12
>>12 Managed DirectXは死にましたけど・・・
ん?Delphi自体初心者なんですけどDirect3Dなみに速いんですか?
3Dゲームとかつくれるんですか?
16 :
デフォルトの名無しさん:2006/12/13(水) 18:08:19
>>15 俺もいま、GLSceneは使おうかってところだけど、
GLSceneが使っているOpenGL自体は、ゲームにも使われている。
速度は、よほどのことしないかぎり、Direct3Dと変わらんよ。
3Dゲームは作れるよ。
17 :
15:2006/12/13(水) 19:06:09
>GLSceneが使っているOpenGL自体は、ゲームにも使われている。
つまりOpenGLのラッパーってやつですか?
18 :
デフォルトの名無しさん:2006/12/13(水) 19:30:22
>>9 TGLScreenViewerの代わりにTGLFullScreenViewerを使えばいいよ。
例
procedure TForm1.FormClick(Sender: TObject);
begin
GLFullScreenViewer1.UseCurrentResolution;
GLFullScreenViewer1.Active:=True;
end;
procedure TForm1.GLFullScreenViewer1Click(Sender: TObject);
begin
GLFullScreenViewer1.Active:=False;
end;
20 :
デフォルトの名無しさん:2006/12/13(水) 19:57:39
21 :
8:2006/12/14(木) 11:01:26
>>7 導入の補足
もし、Graphics32をインストールしているのなら、GLSceneでもGraphics32を使うようにしよう。
1.GLSceneのSourceフォルダに入っている「GLScene.inc」をメモ帳等で開く
2.以下の部分を変更
// Activate support for Alex Denissov's Graphics32 library (
http://www.g32.org)
{.$DEFINE GLS_Graphics32_SUPPORT}
↑このドットを削除
{$DEFINE GLS_Graphics32_SUPPORT}にする。
Graphics32はTBitmapやGDI描画よりも比べ物にならないくらい早いので、導入しても損は無いです。
22 :
デフォルトの名無しさん:2007/01/06(土) 00:41:03
シーンオブジェクトのTGLFreeFormやTGLActorとかで読めるファイルフォーマットは沢山あるようですが、
3ds bsp gl2 gts lwo md2 md3 md5 mdc ms3d nmf nurbs obj oct ply smd stl tin vrml・・・
・・・大半は聞いたことが無いOTL
お勧めのモデラーとかあれば教えてください。
ライセンスが糞過ぎて使えない
>>23 ライセンスって MPL みたいだけど、MPL もウィルスよりも酷い GPL 並に最悪なライセンスなんだっけ?
25 :
デフォルトの名無しさん:2007/01/07(日) 00:12:37
>>24 確かにMPLは伝染性は高いですが、GPLやLGPLほどではありません。
>mozilla.orgのFAQ参照方
http://www.mozilla.org/MPL/mpl-faq.html MPL ver1.1に従えば・・・
GLSceneを使ってソフトを作るときは、1.9項および3.7項あたりに相当すると思います。
簡単に言えば、もしMPL化されたコード(ここではGLSceneコンポーネント)を使った自作ソフトを作ったとき、GLSceneの入手先(HPアドレスでよい)さえどこかに明記すればよく、その他の自作ソースコードは別に公表する必要はありません。
ただし、GLSceneコンポーネントを改造して公表するときは、GPL並みの義務が生じます。
つまりコントリビュータ(貢献者)になる場合ですね。
(全部説明するのは面倒くさいんで、
http://www.mozilla.org/MPL/MPL-1.1.htmlを参照して下さい)
ちなみにGLSceneの作者はReadMeに堅苦しいことは書いておらず、以下の様に書いています。
(1)フリーウエア作ろうが商用ソフト作ろうが、GLSceneは無料でぇ〜す!
(2)そのかわりどこかに「GLSceneつかってまーす。
http://glscene.org」って書いてね。
(3)もしGLSceneを改造してオープンソースにしようと思うんなら、全てのコードを公表する必要は無いけど、どこをどの様に変えたか明記してね。
ってな感じかな。
>>25 解説乙。でも、それじゃぁなんで
>>23 はライセンスが糞って言ってんだろ? バカだから?
>>25 >(3)もしGLSceneを改造して
「改造」に「継承」は含まれないよね?
「継承」なら(2)になるんじゃないかと思うんだが…。間違ってる?
> 「改造」に「継承」は含まれないよね?
GLScene のユニットと分離すればいいんじゃね。
自分の所で、どう利用しようが勝手でしょ。
29 :
25:2007/01/07(日) 23:13:56
>>27 私も28氏の言うとおりだと思います。
GLSceneのユニットと分離してあれば何の問題もないし、そもそも継承とは、実際にはコードの再利用ということになるので、元のコードを改造しているわけではありませんね。
というわけで、「継承」は(2)に当たり、プロプラエタリ(非公開)アプリケーションにして販売しようが自由です。
30 :
デフォルトの名無しさん:2007/01/11(木) 19:44:07
これのチュートリアルみたいなものってないですか?
32 :
デフォルトの名無しさん:2007/01/12(金) 21:09:02
GLSceneに大量のサンプルが付いているんで驚いた。
意外に少ないコードでも結構いろんなことが出来るみたい。
GLPolygonにテクスチャを適用したいけど、テクスチャが正常に表示されない
GLPlaneみたいにファイル設定するだけじゃ駄目なのか
>>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を押す。
俺のは一応これで張り付いた。
試しに入れてみたけどデモ多くてワロタ
誰かこれでピンボール作ってくれ
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
デモに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と比較するのがナンセンスだわな
もう少し低レベルなAPIを直に使いたいんだけどGLSceneでそういうのできる?
それならGLScene使う必要ないんじゃないの?
>>35 提示されたコードのおかげで原因が判りました
ポリゴンのサイズが大きすぎた(一辺50)のと、始点が(0,0,0)でなかったからみたい
もうちょっと根本から勉強が必要か…
試行錯誤も勉強のうちじゃない。いいことだ。
>>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オブジェクトの絶対座標は、どうやって割り出しゃいいんだろ
プロパティに無いんだけど、まさか、計算か
他にどうしろと
>>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に乗せ変えようと思っております。
しぇーだって、どれくらいのマシンで動いてくれるんだろうか・・・
BCBでも使えますか?
>49
BDS版のBCBではムリ?
俺はBCB持ってないんでなんとも言えないけど、
BCB6で試してみれば?
上の方でGLSceneと一緒に使えそうなサウンドの話が出てたけど、
OpenAL Unit(Delphi OpenAL)
http://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
(´・∀・`)ヘー よく見つけたねー すごいねー
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版でも起こりますね・・・
困った
どうでもいいことだけどバージョンの付け方がうざすぎるよな
60 :
53: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:2007/01/27(土) 23:42:49
64 :
デフォルトの名無しさん:2007/01/28(日) 00:03:18
65 :
57:2007/01/28(日) 00:29:31
素のOpenGL使ってるときには、起こらなかったから、
GLScene側の問題だとは思うのだが、環境によっておこらないとなるとねえ。
>>57 もしかして、標準のopengl32.dllとグラボのドライバとの相性が悪かったりして・・・
試しにMesa6.2 Win32を使ってみたらどうだろ?
(GLSceneのサイトからダウンロード出来る)
念のためWindows\System32\opengl32.dllをバックアップして、Mesaのopengl32.dllと入れ替えしてみて
67 :
57:2007/01/28(日) 00:46:51
68 :
57:2007/01/28(日) 00:51:29
69 :
57:2007/01/28(日) 01:00:03
>>66 MesaのOpenGL.dllをデモと同じディレクトリに置きました。
そっちを優先的に見ると思うので・・・
で、結果ですが、終了時のエラーは起きませんでした。
(ただ、fireのdemo自体はは正常に動いていませんが)
むふー。
70 :
53: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:2007/01/28(日) 01:14:30
73 :
53: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:2007/01/28(日) 02:12:02
僕も今、ソースを追ってみたのですが・・・
あ、頭が混乱してきた・・・
あー力不足。
>その中で、終了時なのに、GLContext.TGLContext.Activate呼び出して、
>wglMakeCurrentやってるんですよね・・・。
>なんか、奇妙だ。
なんでこんなとこでバインドする必要があるんだろ?本当に奇妙ですよね。
glGetString(GL_VENDOR)のため?・・・いや、関係ないか。
ぼちぼちもうちょっとソース追ってみようっと。
78 :
53: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
http://www.rage-game-engine.za.net/ とは言え、サンプルとかが多そうなGLSceneをしばらくは使ってみますが。
浮気するには、まだ早い!
Rage3D、インストールの仕方もわからんかった。
やはりGLSceneの方が良さそうか。
これ、使いやすくていいですね!
キューブにtexture画像を貼り付けると、自動的にstretchされるんですが、
tileにするにはどうすればよいか教えていただけませんか?
82 :
デフォルトの名無しさん:2007/02/07(水) 17:59:04
落としたファイルにライセンス条項が見当たらないのですが、
本家ページによればMPL相当らしいので、配布には、copyrightを書かねばいけませんよね?
copyrightは、どう書けばいいのですかな。
GLScene (c) GLScene Project
http://glscene.org
83 :
デフォルトの名無しさん:2007/02/07(水) 18:02:10
84 :
デフォルトの名無しさん:2007/02/07(水) 18:36:54
思ったのですが、
VectorGeometryは、通常のFPUと、SSEと、3DNow!で、場合分けしますよね?
リプレイの実装で問題がでそうなので、OFFりたい、というか、FPUオンリーにしたいのですが、
initialization の CPU判別ルーチンをコメントアウトしておけば、
vSIMD:=0; が初期値なので、OKですよね。
>>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
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に追加し、再構築&インストールする。
>>87 乙です。
・・・ということは、GLSceneでODE(Open Dynamics Engine)とNewtonと二つの物理エンジンが使えるってことだよね。
どっちがどう違うんだろ?
誰か知っている人います?
GLScene入れてみた。
殆どコード書かなくても3D的な事ができるな。こりゃ楽だ。
しかし.3dsかぁ。teapotを10000個出して動かしてみたけど、楽しくないや。
モデリングソフトはさっぱり知らんが、もっと手軽なフォーマットがないかな。
>>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: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:2007/03/08(木) 22:53:10
>>90 俺もそのレス読んで思わずGLCadencerやGLTimeEventsMGRで色々と遊んでしまった。
GLCadencer自体、便利だね。ASAPを選べば余分な割り込みは発生しないし、かと言ってApplicationIdleも選べるし。
GLSceneを使う限りApplicationIdleを選択する必要は無いかもしれんが。
結局はプロパティはデフォルトのまま使えそう。
自前でタイマーのコードを書かなくて済むのが楽だね。
age
本家HP(
http://glscene.org)のニュースより。
GLSceneライブラリの大幅なバグフィックス&拡張&最適化版のリリースが近々始まるそうです。
以前よりももっと良くなるらしいです。
(もしかして、これが去年夏頃から再開発を開始したGLSceneのver2かな?)
更に強力で更に早い!とのことで、リリースがとても楽しみです。
俺もGLSceneを入れてみた。
ビジュアルコンポーネントになってて、こりゃ使いやすそうだわ。
3Dゲームプログラミングに関する限り、QuadrupleDよりも上かも知れんな。
誰か、日本語の詳しいヘルプを作ってくれ。
メッシュとかどうなの?
99 :
デフォルトの名無しさん:2007/03/12(月) 22:27:26
おまえらGLSceneを使ってるサンプルソースでも集めてくださいよ
>>100 ほう。ぼちぼちサンプルでも作ってみるかな。
>>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は良く知らないんだけど、これって勝手に編集したりしても、いいの?
いいわけねぇだろww
107 :
デフォルトの名無しさん:2007/04/14(土) 20:09:58
108 :
デフォルトの名無しさん:2007/04/14(土) 20:12:40
109 :
103:2007/05/14(月) 23:27:37
GamDevPukiWikiのDelphiまとめのGLSceneのところに、
リファレンスという項目を作ってみた。
ちと膨大な作業になりそうで、ひとりじゃ絶対無理なんで、
皆様も、追加&修正頼みます。
111 :
103:2007/05/16(水) 01:04:09
>>110 スマソ。慣れてないもんで・・・
もうちょっと分割したほうがいい?
112 :
103:2007/05/16(水) 02:07:49
ちょこっと分割してみました。
こんなもんで、どうでっしゃろ?
GLScene良さそうだけど何から何までよくわかんないから
wiki作成頑張ってくれ
115 :
103:2007/05/17(木) 22:50:10
>>114 主にGLScene本家
http://glscene.orgのhelp→Reference Manualを基にしてます。
また一部、GLScene付属のヘルプを基にしたり、GLSceneのソースを解読したりして、
色々書き換えたりしてます。
既に書いたやつも、気が付いたら書き加えたり訂正したりしようと思っています。
私自身何かと忙しく、更新が遅れ気味にはなるとは思います・・・
本当に一人じゃ不可能なんで、 皆様も、追加&修正頼みます。
何卒、ご協力お願いいたします。
m(__)m
お疲れ様です
これ使ってる凄いソフトなんかある?デモ的なものでもいいから機能がわかるやつ頼む
>>118 起動できない
---------------------------
Application Error
---------------------------
Exception EOpenGLError in module Archipelago.exe at 000802C9.
Need at least OpenGL version 1.1.
---------------------------
OK
---------------------------
>>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月なんで、ソフトウエアが出て来るのはまだまだこれからだと思います。
さっき「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;」に変更する
って書いてるうちに、ソースの修正が終わったので、実行してみた。
このデモ、初めて見た。結構きれい。
でも・・・どうせ本家HPにデモを載せるなら、コードを修正してからの方が・・・
ボソッ
>>123 もしかして、これってGLScene(OpenGL)じゃなくDirectXでは?
126 :
125:2007/06/17(日) 17:41:59
デモを見る限り、表示が速くて綺麗なのですが・・・
レベルエディタgtkRadiantで作ったマップデータは商用利用が禁止されているらしいですが、そもそもQuake3形式のbspマップの商用利用も、やはり禁止されているのでしょうか?
だとしたら、もし商用利用したい場合は、
QuArk+OpenBSP
しか方法は無いのでしょうか?
誰か教えてください。
流石に他人のフンドシをモロに使うのはどうなんだろう。
>>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」の方なら、現在のところ商用利用も問題なさそうですね。
>>127 >>128 レス、サンクスです。
シェアウエアを作る予定は今のところ無いのですが、
とにかくすっきりしました。
QuArkを入れてみたけど、表示がなんか変。
説明が難しいけどたぶん、壁や床が全く表示されてないんだと思う。
GeForce FX5200
WindowsXP
>>130 コントロールパネルから、地域と言語のオプションを選択
地域オプションタブの標準と形式のところを
「英語(米国)」
に変更してみて。多分、壁が表示される様になるから。
何故かは分からないけど。
132 :
デフォルトの名無しさん:2007/06/18(月) 23:01:13
>>128 フォーマットに権利があるのか・・・
最悪だなw id softwareもやるな
133 :
デフォルトの名無しさん:2007/06/19(火) 22:28:49
流れをぶった切った質問で申し訳ないのですが、GLCubeをいくつか表示
している時に、マウスが乗っかったのがどのGLCubeか判別するメソッドは
ないでしょうか?
>>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 ありがとうございます。とても分かりやすいご説明、感謝いたします。
>>131 おかげで、QuArkが正常に動くようになりました。
大変助かりました。サンクスです。
http://www.skinhat.com/ ここの「Quark for GLScene using OpenBSP」をインストールしました。
なかなか楽しい。こりゃ、QuArkの使い方も覚えないと・・・。
サンプルのsanom.exe、例の「Need at least OpenGL version 1.1」エラーが出るけど、
ソースを再コンパイルすれば無事動くようになりました。
OpenBSPって、もしかしてGLScene専用か?
>>132 日本の法律だとフォーマットは著作権によって保護されない。
製作者の主張に沿うように扱うべきなのかもしれないけどね
・・・ん?フォーマットに権利があるとしたらgtkRadiant以外で
作ったとしてもNGなんじゃない?
日本の法律だと大丈夫なの?
id Softwareに従うとすれば・・・
gtkRadiant以外のエディタ、例えばQuArkでQuakeのBSPマップを作れば、商用はNGだと思う。
とりあえずGLSceneで使うなら、QuArkで作ったOpenBSPを使うのが無難な選択だろうね。
まあ、フリーウエアを作るなら、上記のどれを使おうが問題は無いのだろうが。
「同人は商用ではありません。」っていう主張は果たして通用するのかが気になる。
うむぅ。。。実際には通用しないような・・・
するわけねーだろ馬鹿
id Softwareの*.bspフォーマットが商用不可だから、
OpenBSP(*.obsp)という商用可のフォーマットを作った、
ということじゃないのかな?
【以下はOpenBSPの開発コントリビューター達】
Eric Grange・・・GLSceneの開発リーダー
Igor T. (GWin)
Mike Lischke
Osman Turan・・・OpenBSPの開発リーダー
SkinHat・・・本家GLSceneのHelpの大半を書いてる人
クォータニオンを計算する関数は見つけたんですが、
クォータニオンからXYZの角度を算出する関数って無いですか?
クォータニオン算出関数の中を見て、逆をやればと思ったのですが、
数学がへっぽこなので。・゚・(ノД`)・゚・。
これQuadrupleDと比べてなにが優れてるの?
比べること自体間違ってる
ゲーム用のライブラリで3Dグラフィック表示・演算支援、入力支援などがあり
目的も機能も目指すところは同じように見えるんだが?
目的も方向性もほぼ同じで比較は難しいが・・・・・
3Dに関しては、GUIで確認できるGLSceneの方が敷居が低いと思う。
>>146 それぞれのベースとなってるOpenGLとDirectXで
すでに違いがあるから、まずはそれを調べたら?
>>148 つまりどちらも薄いラッパーなのですか?
2D表示をするにはどの命令を使えばいいですか?
>>149 私は<<146では無いのですが・・・
それは、GLScene(OpenGL)とQuadrupleD(DirectX)が薄いラッパーか?ってこと?
どちらも薄いラッパーではないと思います。
でも、
QuadrupleDはDirectXラッパー+αってかんじかな?
GLSceneはOpenGLラッパーはラッパーなんだけど、OpenGLの機能以外のものを充実してるって感じかな。
つまり、QuadrupleDを使う場合はDirectXを意識しないと使えません。少なくともDirectXのHelpは必須でしょう。(私の場合だけか?)
GLSceneの場合は、表示機能だけは内部でOpenGLを使ってますよ、と言う感じで、あまりOpenGLを使う意識をせずに使えてしまいます。OpenGLのことをあまり知らなくてもGLSceneは使えると思います。
・・・そういう意味では、GLSceneの方が濃いラッパーと言えるかもしれません。
>>150 2D表示命令は知らんが・・・
GLSceneオブジェクトでは、「HUD objects」や「GUI objects」というカテゴリーにあるのが2D座標専用オブジェクトだ。
非コンポーネントのクラスでは、TGLCanvasが物理座標(スクリーン座標)専用だ。
ビットマップを使うなら、TGLHUDSpriteが便利。
幾何学図形なら、機能は貧弱だがTGLCanvasが便利。
>>152 GLSceneViewerの表面に、オブジェクトまでの距離を現すグラフを
書きたいんです。
TGLCanvasでたとえば、単純に対角線を引くにはどうするのでしょうか。
>>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を参照してみてください。
ありがとうございます。かけました。
GLDirectOpenGL1に書くと、シーンの
影響をうけないかどうか、見てみます。
Arcは必要ならEllipseなどをみて作ればいいんでしょうけども、
作ったら本家フィードバックしたほうがいいんでしょうか?
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を使って作ったソフトをクローズドソース(ソースコード非公開)にするのは使用者の自由です。
ありがとうございます。
3Dシーン上に、2Dのメータを書くのはGLSceneViewerの
Buffer.WrapUpRendering
のコールバックで書くようにしました。
(もちろんご指摘の方法でもOkでした)
また質問で申し訳ないですが、TGLDirectGLで自分で書いた
プリミティブや曲線を、マウスによる選択はどうすればいいんでしょうか。
>>133には、GetPickedObjectの例がありましたが、何か実装する
場所がありますか?
↑glPickMatrix等がいるかと思いましたが、
なにも実装しなくてもできました。スルーしてください。
GetPickedObject、動的に生成したシーンオブジェクトを追加すると、
どこをピックしてもそのオブジェクトがかえってきます。
GLScene1.Objects.addChild( 〜 )
で追加するのはまずいのでしょうか。
#サンプルでもそうやって追加しているし、ピック以外は正常に動いている。
161 :
デフォルトの名無しさん:2007/07/22(日) 08:55:29
お世話になります。
clothactorのデモでtrinityが動くのを見て、すごいなぁと思いました。
smdというファイル形式で保存されていますが、これはどのようなソフトで
作られたデータなのでしょうか。googleで探しても、Sega Mega Driveとか
Jphoneの着メロばかり出てきてしまいます。
また、同時に何人もこんなのを動かしても普通に動くのでしょうか。
>>161 "smd形式 3D"でぐぐったらすぐ出てきたけど
マウスクリック位置が、GetPickedObjectでのオブジェクト上の
どの位置かを知るにはどうしたら良いでしょうか。
Delphi用のNURBSライブラリ情報はないですか。
165 :
デフォルトの名無しさん:2007/07/25(水) 17:50:40
>>163 functionGLSceneViewer.Buffer.ScreenToWorld(screenX, screenY):TVector3D
を使えば、XY座標を3D座標に変換はできます。GetPickedObjectと組み合わせると
何とかなるんじゃない?
>>165 ありがとうございます。
この関数をつかうとカメラの前の位置に変換されちゃうみたいですが、
たしかに組み合わせればなんとかなるでしょう...
Rayなんとかっていうメソッドも自分で実装すればつかえそうですね。
168 :
デフォルトの名無しさん:2007/07/30(月) 14:09:21
>>166 ありがとうございます。
XSI Mod Toolインストールしてみましたが、かなり熟練を要するソフトですね。
無料というのは助かりますが。これで開発するかまだ決心付きません。
google sketchupで3dsなどがexportできるといいですが、proじゃないと無理みたいですね。
CADのDXFファイルをGLSに読み込みたいんですが、
良い方法ござりませぬか?
dxfなんて大抵のソフトで読めるだろうから、適当なので
>>22の形式に変換すればよろし
もしくはテキストのDXFなら自分で読んで描画すればいいんじゃない?
仕様公開されてるんだし
あ、おれ、これならやったことあるぞ。
dxf読み込み→TGLCanvasで表示
173 :
デフォルトの名無しさん:2007/08/07(火) 21:06:38
GLSceneを利用して、VCLのコンポーネント上に、NeHeとかのサンプルを実行するようなサンプルはないでしょうか?
本来ならば、GLSceneのオブジェクトモデルを利用した方がよいと思うのですけど、
すでにOpenGLの生APIを使ったプロジェクトがありまして、
それをVCL上である程度再現したいと考えています。
別の言い方をすると、GLSceneを使いながら、おいしいところだけをとって、
生APIを使えないかな?ということなのですが・・・
175 :
デフォルトの名無しさん:2007/08/07(火) 23:41:33
わわわ。サンクソ
過去ログにありましたね。
OnRenderってのが難だけど、どうにかなるんかな・・・。
任意の時に描画命令発行したいので。
試してみるかぁ
176 :
デフォルトの名無しさん:2007/08/08(水) 02:59:55
>>160 亀レスごめん。状況をもうちょっと詳しく頼む。
私の場合、AddChildやAddNewChildで動的に追加したオブジェクトを正常にピック出来たんだが・・・
【AddChildで動的に追加したオブジェクトをピックする例】
Form1にGLSceneとGLSceneViewerとButtonをドロップし、GLSceneエディタでGLCameraとGLLightSourceを追加して、以下のプロパティをセットする。
GLSceneViewer1のCameraプロパティにGLCamera1をセットし、GLCamera1のPosition(X,Y,Z) を(0,0,10)にセットする。
usesにVectorGeometryを追加して、Button1のonClickイベントに以下のコードを書く。
procedure TForm1.Button1Click(Sender: TObject);
var
sphere:TGLSphere;
begin
sphere:=TGLSphere.Create(nil);
GLScene1.Objects.AddChild(sphere);
sphere.Position.AsVector:=PointMake(random(10)-5, random(10)-5, 0);
inc(count);
sphere.Tag:=count;
end;
※count:Integer;をどこかグローバルな所に設定しておいてください。
GLSceneViewerのonMouseDownイベントに以下のコードを書く
procedure TForm1.GLSceneViewer1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
pick : TGLBaseSceneObject;
i : Integer;
begin
pick:=GLSceneViewer1.Buffer.GetPickedObject(x, y);
if Assigned(pick) then begin
i:=pick.Tag;
ShowMessage(IntToStr(i));
end;
>>177 ありがとうございます。
あれから調べてみたところ、とりたいオブジェクトでないものを
Pickしていて、PickListで回したら、ちゃんと取れていました。
報告せずすんません。
またまた質問ですみませんが、ピックしたときに、ZバッファのNearと
FarがPickListに[0-1]ではいってかえってきます。
いまのところ、Farの値で
V[0]:=x;
V[1]:=Viewer.Height-y;
V[2]:= aFar
Viewer.Buffer.ScreenToWorld(V);
としてWorld座標が求まっているっぽいのですが、
XY平面をピックすると若干Z値がずれとるのが気になります。
(ま、強制的にZをいれてしまっています。)
ScreenToWorldのZ値はどういう値を入れるのが適当なんでしょうか?
GLSceneというよりOpenGL的質問ですみません。
あとDXFの質問は、DXFの線はなんとか読めますが、
そのほかスプラインやらインサートブロック、グループが、読めません。
LWPOLYLINEもよめません。
結構WEBで調べましたが、仕様がよくわからないです。
>>178 本当に調べた?DXFは公式の仕様書もあるし第三者の解説だっていっぱいあるよ
ひょっとして日本語で調べたいみたいな甘い考え?
ドイツ語や中国語でもいいのですが検索の仕方が悪いのか適当なページが見つかりませんでした。
>>180 "DXF format spec"でググればいくらでも出てくるじゃん。
横レスで悪い、DXFって、中途半端に読むのは簡単だが、きちんと読むのは簡単じゃないと思う。
公式の仕様書といえるものは自動机俺様仕様書をかなりお金を出さないともらえない。
あとは全部非公式。だから、CAD間でもさほど互換性ない。
日本語の資料なら、日経BP 「新DXFリファレンスガイド R14対応 \3900」がある。
他にもあるかもしれん。オークションか古本屋で探すと吉。
どうも、
>>177です。いつのまにかDXFで盛り上がってるとは・・・
(^^;;;
DXFフォーマットについては、AutoCADのヘルプにかなり詳しく載ってます(もちろん日本語で)。
とは言っても、
>>178氏がAutoCADを持っていないのなら参照しようが無いしなぁ。。。
ここのHPなんか、どう?
http://hp.vector.co.jp/authors/VA020045/dxf/DXFR12.html んでも、ここのHP、LWPOLYLINEが載ってなさそうですね。まあポリラインはPOLYLINEの方で描く方が普通だし。
LWPOLYLINE
100=サブクラス マーカー(AcDbPolyline)
90=頂点の数
70=ポリライン フラグ(ビットコード)、既定値は0、1 = 閉じたポリライン、128 = PLINEGEN
40=開始幅、既定値は0。 一定幅(コード 43)が設定されている場合は無視。
41=終了幅、既定値 = 0。 一定幅(コード 43)が設定されている場合は無視。
43=一定幅(省略可能、既定値は 0)。
38=高度
39=厚さ
10=頂点の座標のX値。
20=頂点の座標の Y 値。
42=ふくらみ
210=押し出し方向のX値
220=押し出し方向のY値
230=押し出し方向のZ値
185 :
182:2007/08/12(日) 09:45:29
上でたしかにファイルは読めるけれど、
42=ふくらみ
は、どういう意味か、どうすれば描画可能な情報に
展開できるか、という情報は、探してもなかなかない。
私の場合、昔のことだったので、ファイルと図形を
解析してやったが、ほかにも解決していなものは色々とある。
ググればいい=直線、円弧、安易な折れ線ポリライン
ググってもわからん=スプライン、ちょっと複雑なポリライン、その他
だろうと思う。
私も分からない部分も多いが、回答できるものはするので、
もうちょっと質問を整理してみてはどうだろうか。
186 :
182:2007/08/12(日) 09:48:04
R14から、ポリラインは、LWPOLYLINEがデフォルトのようです。
187 :
182:2007/08/12(日) 10:00:03
わざわざしゃしゃり出てくんな
これ以上やりたいなら専用のスレに移動してやってくれ
ここはGLSceneやその他の3Dライブラリのスレであって、3Dデータのスレじゃない
189 :
デフォルトの名無しさん:2007/08/12(日) 14:34:03
別にいいんでない?
どうせそんなに話題もないのに
まあ難しいことは考えずに、
>>170が言っているとおりGLSceneで読める形式に変換すればいい話じゃない?
tiffやdxfは仕様が大きすぎて最終的な成果物として扱うのは危険
>>22 メジャーなモデラーならほとんどどれでも吐けるじゃないか
ファイルフォーマット変換のためならmilkshape3d
個人的にはLightwave3dオススメ
国産モデラーはゲーム系フォーマットに弱いのが難点だな
そもそも数があまり出てないけどさ
ところでDXF形式なんて他のソフトへ持っていくとまともに読み込めないよね?
(ひどい場合は書き込んだソフトですら読み込めない)
3dsかlwoを使ったほうがいい
DXFは他に何も対応してなかった場合の最後の手段
>>192 Shadeで製作したデータをGLSceneで読み込むとしたら、どういう方法があるでしょうか。
milkが必要ってことでしょうか?
194 :
デフォルトの名無しさん:2007/08/14(火) 23:25:14
Shadeとは、またリアルタイムレンダリングにメチャメチャ不向きな物をw
>>193 プロ版なら3DSとLWO対応してるからどちらでもよい
それ以外ならまともに出力できる形式がないので諦める
何らかの方法で別モデラーにエクスポート出来たとしても
多少の修正は必要なのでmilkshape3dに魅力を感じなければ
他のモデラーのほうがいい
ShadeはPROじゃないのでobj形式でやってみました。
結果、アナボコだらけに。なんでだろ?
三角ポリゴンじゃないと駄目とか?
Shade側の出力を3角にしてもNGでした。両面にしてもNG。
GLSceneで落ちるところはきまっているので、単純なものにして
テストしてみます。
(あまり意味がなくなってくるけども)
ぽりごんせんしGL
>>198 ポリゴンの裏表が逆なんじゃね?
GLScene以外で表示してみて問題の切り分けしたほうがいい
おそらShade固有の問題で、GLSceneとは関係ない話だよ
一般論だけど出力する前にいくらか加工や設定することで回避できる場合もある
違う質問で失礼します。
GLSceneで 画面上の(スクリーン座標?)点を、
シーンの中の「Z=0のXY平面」上の点に変換するには
どうしたらいいでしょうか。
#平面は描画していないので、フィードバックは使え
ない。カメラか何かで計算?
procedure TForm1.GLSceneViewer1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
v: TVector;
begin
GLSceneViewer1.Buffer.ScreenVectorIntersectWithPlaneXY(VectorMake(X, GLSceneViewer1.Height - Y, 0), 0, v);
GLTeapot1.Position.X := v[0];
GLTeapot1.Position.Y := v[1];
end;
こうじゃなくて?
204 :
デフォルトの名無しさん:2007/10/12(金) 17:18:18
いまごろむしかえしてアレですが・・・
Delphi 7(update済み)にGLSceneを入れました。
デモを開き(この時点では普通に開きます)、実行して終了しIDEへ戻り、ファイルを閉じようとするとIDEでエラー(例外ではない)が起きます。
--------------------------------
エラー
Context activation failed: C0070006;
--------------------------------
フォームを開かなければ例外はおきません。
エラー後はDelphiも終了できなくなります。
ダイアログを連打すると何回か後に
--------------------------------
エラー
モジュールrtl70.bplのアドレス40006318でアドレス0000000に対する読み込み違反が起きました。
--------------------------------
となりDelphiが落ちます。
\base\VectorGeometry.pas に{$define GEOMETRY_NO_ASM}を
設定して、パッケージを再構築してもやはり変わらずDeath。
Windows XP SP2
RADEON 9600(ドライバは本日更新してみました)
Delphi 7
理由がさっぱりです・・・どなたかおたすけを・・・
205 :
デフォルトの名無しさん:2007/10/12(金) 18:43:59
>>57-93にありますが、
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
// ATI onclose context error fix
if assigned(GLSceneViewer1) then GLSceneViewer1.Free;
end;
入れたら、どうなりますか?
Radeon特有の問題っぽいです。
でも、他のOpenGLアプリやプログラムでは起きないんだよなあ・・・GLSceneのせいにしてもいいと思う
>>205 助言ありがとうございます。
最初はこのことを知らずエラーの嵐でしたが、
このスレを読んでいちおう対策済みです。
デバッグ終了時などの嵐はおさまったのですが・・・
途中の状況はさっぱりです。
コンパイルして単体で実行しても何かしらのエラーが出続けています。
クマッタ
207 :
デフォルトの名無しさん:2007/10/13(土) 12:39:09
対策してもだめか
そもそも、プログラムの影響で、IDEがエラーって状況は、近辺あったことがないな・・・
俺は。
IDEか、OSが壊れてるんじゃないのかな?
>>207 返信どもです。
Delphiとディスプレイドライバを再インスコしてみました。
が、ダメでした・・・
GLScene以外の設計では何も問題は出ないです。
新規アプリ作成で、GLSceneViewerのコンポを貼り付けてデバッグで起動、
終了してIDEに戻ったとたんにアプリケーションエラーとなってしまいます・・・
EGLContextがモジュールProject1.exeのxxxxで発生しました
Context activation failed: C0070006
です。このC0070006の部分はほとんど同じ数字が出ています。
>>208 208です。
ちょっと状況変化ありです。
さっきのエラーはOnCloseにGLSceneViewer1.freeを
書いてないからでした。(ボケですみません)
ただ「貼っただけ」のものではエラーは出ません。
しかし、Demoなどの、「GLSceneViewerにすでに何らかのデータが
入っている」アプリはIDE、実行時とも依然エラーが出ます。
ここらの処理をトレースしてみようと思います。
多分作りこんでいくとContext activation(deactivation) failed
は、いろんな場面で出る。
あてにならない経験からいうと、
OpenGL的にお行儀よく書いていない場合、GLSceneは
例外がでる場合(ATI系)や、
例外も出ずに描画もされない場合(S3/VIA系)がある。
GeForce系はお行儀わるくても割と安定している。
どういう場合にOpenGL的にお行儀が悪いかは、GLSceneの
構造上よくわからな部分もあるが、GLSceneでテクスチャや、rciを
直接つかう命令などは出やすい。
発生している場合、描画を手コーディングしている部分があれば、
同じような種類の命令はまとめること、
また、描画命令の順番を変えてみると直ることがある。
211 :
デフォルトの名無しさん:2007/10/14(日) 13:31:03
GLSceneで2つのクオータニオンの差を求めるのってどうすればいいですか?
213 :
デフォルトの名無しさん:2007/10/15(月) 11:34:29
>>211 アドバイスありがとうございます。
>>211さん
うpしました。10317.zipです。よろしくです。
いちおう、Demosのほとんどのソースで同様のエラーがでます。
209に書いたようにViewerに「何か表示されている」場合はコンパイル、起動はできるものの、終了(アプリを閉じIDEに戻った)後、連続でエラーダイアログ、それを連打するとDelphiごとおちる状態です。
もし、IDEで戻った時点でエラーが出なくても、「ファイル→全てを閉じる」でフォームが閉じた後にエラーが出、落ちます。
感覚としてフォームインスタンスが閉じたのを「何かのコンポ」が察知できなくて、書き込みをしようとしているのでは?と思います。
214 :
デフォルトの名無しさん:2007/10/15(月) 11:35:59
>>210 アドバイスありがとうございます。
しかしまだ作りこむどころか、1個のオブジェクトを表示させるのでいっぱいです・・・
QuadrupleDの方がいいのかな〜とも思い始めてます。
そんなこといわれなくてもやっとるわ!
インストールしてみたんだけど、メニューにFreePascalとDXP
ってのが追加されたんだけど、どうすれば除けますか?
218 :
217:2007/10/16(火) 09:01:45
サンプルデモって全部実行できます?
自分で試せよ
聞き方が悪かったね。
出来るやつ、出来ないやつが結構あって
みんなはどうかなと。
Delphiスレはなぜか情報交換を拒絶する風潮があるのはどうしてなの?
で?
自分以外はMSのスパイなのでは?と疑う魔法をかけられているからです。
224 :
デフォルトの名無しさん:2007/10/23(火) 11:20:00
>>213 試すのがおそくなりました。
10317.zipですが、結論から書きますと、こちらでは特に問題はないようです。
終了後も、IDEも問題なく動きます。
こちらの環境は、
BDS2006(Delphi2006)、WindowsXP SP2、VGA:RADEON X700
です。こんな単純なコードででますか・・・。
RADEONのドライバは、確か世代によって、最適なドライバのバージョンがあるから注意です。
一概に新しいのがいいとは限らない。
あと、ドライバは、必ず、DireverCleanerなどを使って、まっさらにしてから再インスコすること。
ちなみに、例によって、
FreeAndnil(GLSceneViewer1);
をとると、以下のエラーがでます。
EGLContext がモジュール Project1.exe の 00080781 で発生しました。
Context activation failed: C0070006, .
それはいいとして・・・
ドライバやVGAなどのせいにせずに、
いまの環境で、回避したいならば、
あくまで、例外なので、
Delphiのデバッガでどこで、EGLContext例外が起こっているか、確かめて、
原因を追究しないと無理だと思う。
>>224 テストありがとうございました!
やはり原因はその個体によるようですね。
友人のRadeon 9800XTでは同じテストで出ませんでした。
>DireverCleanerなどを使って、まっさらにしてから再インスコ
あ、これはやってない。
また時間があるときやってみます。
なかなか根が深い問題のようです。
また進展があったら書きます。
(技量的にすでに限界を超えているとも・・・)
226 :
デフォルトの名無しさん:2007/10/27(土) 00:44:43
一応確認したいけど、NeHeなどの、OpenGLのサンプルでエラーが起こらない
(というか、期待通り表示されるならば)
GLSceneのクセのようなものが出ていると思う。
上で出ていた、別の 終了時のEGLContext エラーもそうだけど、
GLSceneの組み方が、どうも、RADEON系との相性が悪いみたい。
227 :
デフォルトの名無しさん:2007/10/27(土) 00:45:29
> 一応確認したいけど、NeHeなどの、OpenGLのサンプルでエラーが起こらない
> (というか、期待通り表示されるならば)
一応確認したいけど、NeHeなどの、OpenGLのサンプルでエラーが起こらない
(というか、期待通り表示される) ならば、
間違いスマソ
>>226 NeHeは初めて聞きました。
ということで早速サンプルを実行してみました。
エラーはまったく出ません・・・
やはりGLSceneの実装の問題のようですね。
あきらめ寸前
クオータニオンからどれか一つの軸の傾きや
回転を知る関数ってありますか?
まとめページどこですか?
>>231 もっとちゃんとしたインストール手順書ない?
さいきんイジリはじめたんだが、マジで情報少ないな。結構よくできたライブラリだと思うんだがな。
これのライバルライブラリといえばどんなものがあるの?
簡単なサンプルを一から書いてみたんだが、
なぜか TGLTerrain のライト処理が変になる。
シーンに手をいっさい加えずにレンダリングすると設定した通りのライティングなんだが
ちょっとでもオブジェクトの座標をいじったりするとライトがヘンなところに当たってしまう。
しかも TGLTerrain 以外のオブジェクト(っていっても今の所箱一個だけだが)は指定どおりの光源処理になる。
早くもライブラリのバグにぶちあったったのか・・・
弄り方が悪かったんだろ
いまやってみたが座標どころか、Viewerを client に align して、ウィンドウをリサイズするだけで発生することがわかった。
バグじゃないとして、なにがマズいんだ? Light をパラレルにしてるのがまずいのか・・?
もうすこしいじってみる。
初期化未遂
これバグみつけたらどこに報告すりゃいいんだ?
Mailing List
242 :
デフォルトの名無しさん:2007/12/21(金) 13:30:54
guiのサンプル見てみたんだけど
これ日本語入力できる方法ないのかな〜
1バイトで処理してるから表示されないだけで、入力は普通にできないか?
GLEdit1に日本語を入力して、中身を確認すると日本語そのまま入ってるし。
日本語を出そうとするとTGLCustomBitmapFont.RenderString周りの書き換えか…。
>>242 サンプルを変更して確認しようとしてみたんだが・・・
日本語以前にGLEditの位置を変えただけで入力されている文字が
表示されなかったりわけがわからん。
これってバグなのか?仕様なのか?
ネットワークゲーム系だとチャットは大事だから
この使い勝手じゃあ使い物にならんな。
>>244 BitmapFontを指定してないだけじゃない?
246 :
242:2008/01/09(水) 10:33:50
日本語入力に挑戦してみたのですが
Bitmapfontが英語の範囲しか対応していないみたいで
RenderStringの変更だけじゃ無理みたいなんですが;;
>>246 試しに描画させてみましたが、RenderStringを書きかえて漢字は出せました。
全漢字を含んだテクスチャを用意し、
漢字の時はRenderString内のGetCharTexCoords(currentChar, topLeft, bottomRight);を呼ばずに
topLeft, bottomRightを計算するだけ。
全文字を綺麗に出すにはもう少し工夫が必要ですが。
にゃは
249 :
242:2008/02/06(水) 18:54:28
質問ばかりですみません
>>全漢字を含んだテクスチャを用意
これどうしたらいいでしょうか・・・
gl_kanjiを参考にすればいいんじゃね?
初心者の質問ですみません...
お菓子(クッキー)を型抜きした物を表示したいんですが、
どうすればいいでしょうか?
回転体でクッキーをつくることはできました。
それを回転軸方向から、簡単な図形(星とか)で、
抜ければいいんですけど。
ヒント:ブーリアン
253 :
デフォルトの名無しさん:2008/04/05(土) 20:12:59
国土地理院の50mメッシュデータに、2500地形画像を貼り付けたいのだけど、
1枚の画像データ(TIFF)の平面の2次元座標指定でをメッシュデータ(3角か4角のポリゴンでよい)
に指定していく方法がわからない。
OPENGLならできるような気もするのだけど?GLSceneなら簡単にできないものですか?
画像をあらかじめ分割しておけばそりゃ出来るんだろうけど、ファイル数がめちゃくちゃ多くなるのであまりやりたくないです。
日本語でおk
>>253 国土地理院の50mメッシュデータ=ただの高さデータ
2500地形画像=ただのテクスチャ
よって、TGLHeightField使って高さを表現させ、
地形をテクスチャとして指定するだけで、お手軽に立体地図の完成。
俺が自分で遊んでたのはSRTM30でテクスチャ無し(高度で色変更)だが。
ただTGLHeightFieldは非常にクセが強い印象。
高さ表現できるクラスを自力で作るのがベストかもね。
256 :
255:2008/04/06(日) 10:27:48
>>253 読み直してみた。単に巨大画像を扱う方法を知りたいだけだったか。
3Dなら、GLSceneと言うかOpenGLだろうがDirect3Dだろうが、
分割して随時テクスチャとして管理するしかないよ。
2DならGraphics32でおk。
大きいサイズの画像が扱えないバグがVCLにあったハズだけどもう直った?
258 :
デフォルトの名無しさん:2008/04/15(火) 22:23:44
>>255 ご親切にありがとうございました。TGLHeightFieldでOKでした。
ただ、HeightFieldGetHeightの使い方がわからず、時間がかかりました。
どこかに、まともなリファレンスがないものか(見つかりませんでした)
リファレンスと簡易例文があれば、あっという間に出来てしまうのにね。
もったいない。
次の課題
1、2500画像、基本台形なのでリアルで正規化できないものか
2、がけのようなほぼ直角で落ちているような指定をどうするのか?(できないのか?)
3、手前のシーンがぼけるんだけど、ぼけないようにできないものか?
こつこつとやってみます。もしご存知でしたらヒントをお願いします。
>>258 地形を表現させるにはTGLTerrainRendererでもいけるぞ
>>252 ヒントありがとうございます。
ブーリアンを調べて、立体の積の元になる2つはGLScene上で
作ったのですが、これをどうやるとブーリアンができるのでしょうか。
日本語表示用のコンポーネントを作ってみました。
TGLCustomBitmapFontを継承してます。
DelphiまとめwikiのGLSceneのところにアップしてます。
・・・でも・・表示が非常に遅い・・・orz
>>247氏の方法を使ったほうがよかったかな?
だれか作り直してくれ。
262 :
261:2008/04/29(火) 00:10:40
そういうわけで、
>>247氏の方法で試しにコンポーネントを作ってみました。
しかし・・・セカンドマシンでテストしてみたら、なんとメモリオーバー。
欲張ってunicodeの文字を全部準備したのがマズかったみたい・・・
Graphics32のTBitmap32Collection型を使って分割すれば良かったかも。
どちらにしろ、最初から作り直しだあ〜><
もしこれが完成したら、先にアップしたやつは不満だらけなんで削除します・・・
263 :
261:2008/05/22(木) 23:38:31
またまたそういうわけで、結局Graphics32のTBitmap32と、GLSceneのTGLBitmap32の配列で対処しました。
現在動作テスト中ですが、今のところ問題はなさそうです。
・・・が、なんかGamDevが落ちているみたいでアクセスできないです。
コンポーネントのアップ、どうしよう・・・ふぅ〜。
待っていればその内復活するんじゃね。コンポ期待待ち
GLSceneの座標って右手系?左手系?
ちょっとググるだけで分かることを何故あえてここで聞いたの?
OpenGLは右手系。っとマジレス。
DirectXの初期値とは逆なんで要注意。
GLScene 座標でググったんだが、右手とか出てこなかったんで
聞いてみた。
でも、今分かったよ。
右手系のことをグローバル座標系って言うんだね。
266,267ありがとう
何が分かったんだか…。
>>269 >何が分かったんだか…。
>何が分かったんだか…。
>何が分かったんだか…。
>何が分かったんだか…。
>何が分かったんだか…。
>何が分かったんだか…。
>何が分かったんだか…。
>何が分かったんだか…。
>何が分かったんだか…。
>何が分かったんだか…。
厨房の宿題みたいな質問で申し訳ないんだけど、2点を結ぶ延長線とある1点を通る線が90度に交わる座標を求めたいんだけど、ググるキーワード教えてください。
ググるキーワードをググレカス
点と直線の距離
>272
垂線の足?
GLSceneの説明を更新&追加していこうと思っているんですが、
ゲムデブwikiがまだ落ちてるみたい・・・
どうしたんだろ?
ありゃ〜っ、禿しく変わっちゃったような気が・・・
・・・もしかして、今までの、全部クリア? orz
誰か、今までのバックアップしてない?
・・・やっぱり、一から入れなおすかしかないか・・・
すっきりや・・・かなしいほどに
これってGLSceneのことは、どこにのってるの?
まだ、のってないの?
再建されただけでもありがたいと思わないと
古いのはWebArchive参照
GLScene関連のリンク集ない?
>>278 すっかり変わっちゃったね
今のうちに関連ページだけでもバックアップとりたいんだけど
WEBを丸ごとローカルに保存するツールない?
286 :
デフォルトの名無しさん:2008/07/05(土) 08:57:01
287 :
デフォルトの名無しさん:2008/07/05(土) 08:57:47
>>285 更新とまってるけどおれはweboxを愛用
wgetという手も
288 :
デフォルトの名無しさん:2008/11/17(月) 15:26:27
まだ有るの?
あります
みんなのココロのなかに
だが、まだ俺のHDDのなかにもあるという事実
これ今更入れてみたがサーッパリわかんね。
敷居低くベンチマークやスクリーンセーバーみたいなの作れればいいやと思ってたが
それでもDBプログラマには敷居が高かったようだ。
で、チョイと質問ですが当面の目標にしたサイコロ作りに勤しんでいるんだが、
64*64の画像をアサインして正面向かせても描写サイズが64*64にならないんだけど
面の大きさをピクセルで正確に合わせるにはどうすれば良いんでしょ?
スケールとポジション弄ってるとなんとなく見た目の大きさが変化してるのは
分かるが、自分が見せたい大きさになってくれない。
そもそも3Dでピクセルを気にするという発想がおかしい
OpenGL入門サイトはいくらでもあるから、好きなの眺めて基礎知識つけた方がいいと思われ
>>292 あーそうなんだ
カメラのz軸固定?非ズームだと気にならんの?
まぁいろいろやってみるよ。
294 :
デフォルトの名無しさん:2008/12/11(木) 15:09:36
正射影つかうとか
GLFreeFormに3dsとmd2を読み込んだんですけど、表面材質は表示されないんですか
テクスチャー張らないで色つけたいんでけど
Material Editer だと全部同じ色になるみたいんで
モデラーみたいに表示してくれる方法ってありますか?
296 :
295:2008/12/13(土) 16:10:37
自己解決しました
297 :
デフォルトの名無しさん:2008/12/14(日) 06:19:48
事故解決したら、検索してきた人や後学などのためにも結果を書いておこうよ
298 :
295:2008/12/14(日) 10:06:52
ああ、ごめんなさい、簡単だから勉強の為にも自分で調べてくれと言う意味で
あえて誰も教えなかったと思って、書かない方が良いのかと思ったw
GLMaterialLibrary(色付きのキューブのアイコン)を追加して
GLFreeForm1 のプロパティーMaterialLibrary(+Material 内ではない)に
GLMaterialLibrary1を設定、これだけで出来た
ちなみにGLMaterialLibrary1をダブルクリックして新規追加とか色々出来るみたい
Demos\meshes\CSG とかで使ってるので誰か解る人、追加情報よろしく
299
300
WAVEOUTのACTIVEをtrueにしても、実行時 NO Active Sound Manager.
Make sure manager is created before emitter と表示されるんで
FMODに戻したら、こちらでも出る様になったんです。
以前には出なくてきちんと音が鳴ってたんですけど、こんな症状になった人居ますか。
もう全然音を使えなくなってしまって、どうにか直したいんで分る方お願いします。
302 :
301:2009/02/01(日) 17:29:25
GLscene Editerの方ではなくコードでSound emitterを設定すると
何も表示されずにきちんと音がなりました、でもWAVEOUTの方はやっぱり音が鳴りませんWAVEOUTってFMODと同じ方法では使えないんですか?
303 :
301:2009/02/21(土) 01:35:39
自己解決しました
304 :
デフォルトの名無しさん:2009/02/21(土) 08:42:29
事故解決したら、検索してきた人や後学などのためにも結果を書いておこうよ
お断りだ
認めぬ
またそういうことを
キーロガーといわれればそうですね。
でも、キーストロークを監視するのって
よくあることじゃない?
ごばーく
失礼!
ははは
ねーよw
313 :
デフォルトの名無しさん:2009/06/20(土) 05:58:48
ぬるぽ
314 :
デフォルトの名無しさん:2009/07/18(土) 17:52:12
XBOX360コントローラを使いたいのですが
GLSCENEのTJoyStickは4ボタンと左スティックにしか対応していないようです.
LB,RB,LT,RT,BACK,START,しいたけ,方向キー,右スティックに対応させるにはどうすればいいですか.
MakeJoyButtonsにJOY_BUTTON5(LB)を追加してみたものの駄目でした.
>>314 joySetCaptureでは4ボタンまでしか認識しない。joyGetPosExで書き直せ。
現行のlazarusでなんとかglsceneコンポーネントをインストール・コンパイルしてみようとしたが
どうやってもうまくいかない。
>>1 にあるバンドル済みの古いバージョンしかだめなのだろうか‥
でもそれインストールしちゃうとなんかうまくアンインスコできなくなっちゃうんだよね。
いや、0.9.26.2 だ。.27だといけるのかな?
逆に0.9.26.2使わなきゃいけない理由あるの?
自動焼人 ★ = 自動保守 ◆KAWORUKOFI = 自動保守#K9K?_D[L
名言集 その2
『お前が規制系キャップ取れるか審査してやるよ』
http://yutori7.2ch.net/test/read.cgi/news4vip/1249830540/ ID:PVAf+dux0 = 自動焼人 ★
> 36 :以下、名無しにかわりましてVIPがお送りします [sage] :2009/08/10(月) 00:31:30.02 ID:PVAf+dux0
>
>>33 > キャップとコテハンの違いは何?
> 46 :以下、名無しにかわりましてVIPがお送りします [sage] :2009/08/10(月) 00:38:05.34 ID:PVAf+dux0
>
>>45 > その回答では落ちるなw
> 答えは教えないがw
> 50 :以下、名無しにかわりましてVIPがお送りします [sage] :2009/08/10(月) 00:41:29.96 ID:PVAf+dux0
> Q.キャップとコテハンの違いは何?
> A.2ちゃんねるのボランティアの登録制度
> それがお前の答えかw
> 52 :以下、名無しにかわりましてVIPがお送りします [sage] :2009/08/10(月) 00:43:10.06 ID:PVAf+dux0
> まぁ、どうせ正解が出るわけもないし、次の問題。
> 君が思う面白いスレはどんなの?
----------------------------------------------
この自動焼人 ★メールマガジンの配信停止をご希望される方は
http://qb5.2ch.net/test/read.cgi/sec2chd/1250169591/ にて自動焼人 ★までご連絡ください
323 :
デフォルトの名無しさん:2009/09/30(水) 01:25:40
なんか半年もレスがなくて寂しいですが
一人でGLSceneを頑張って勉強してて
GLSLで波とティーポットに2重適用すると同時に
カメラをかっこよく動かしてみるテストプログラムを作るところまで来ました。
http://members3.jcom.home.ne.jp/9304hcyw/GLScene/TestCameraGLSL.zip Linux版も同時進行で勉強中で
glsceneprj
はLinux用実行ファイルですが、ちょっとでかいです。
SetOnApplyにはチェックを入れてください。
Moveボタンを押すとカメラが動きます。
右側のリストボックスを選択するときは
上のVertexと下のFragmentを一致させて
Applyボタンを押してください。ティーポットのGLSLが変化します。
どうぞご笑覧ください。
324 :
デフォルトの名無しさん:2009/09/30(水) 01:26:32
ごめん半年じゃなかった
許す
いいとも
327 :
デフォルトの名無しさん:2009/12/12(土) 22:28:14
はぁはぁ、ロールおいしそうだよぉ。