Delphi持ってるならGLSceneを使えat TECH
Delphi持ってるならGLSceneを使え - 暇つぶし2ch91:デフォルトの名無しさん
07/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
07/02/27 23:13:01
>>91
おぉ、すごい。ありがとう。今から見てきます。

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

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

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


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

97:デフォルトの名無しさん
07/03/12 10:15:26
メッシュとかどうなの?

98:デフォルトの名無しさん
07/03/12 22:04:50
>>96
己が神になれるチャンスをなぜ人に振る?

99:デフォルトの名無しさん
07/03/12 22:27:26
流れ者です。

URLリンク(wiki.lazarus.freepascal.org)

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


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

101:デフォルトの名無しさん
07/03/13 18:48:30
>>100
ほう。ぼちぼちサンプルでも作ってみるかな。

102:デフォルトの名無しさん
07/04/11 03:00:48
>>101
サンプルまだー?チンチン

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

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

105:デフォルトの名無しさん
07/04/14 18:21:34
gamdevってなんだろ?と思い、ググってみた。
もしかして、これのこと?
URLリンク(gamdev.org)

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

106:デフォルトの名無しさん
07/04/14 18:42:59
いいわけねぇだろww

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

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



108:デフォルトの名無しさん
07/04/14 20:12:40
ここだよね?

GamDevPukiWiki - GLScene
URLリンク(gamdev.org)


109:103
07/05/14 23:27:37
GamDevPukiWikiのDelphiまとめのGLSceneのところに、
リファレンスという項目を作ってみた。

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


110:デフォルトの名無しさん
07/05/16 00:32:24
>>109
縦に長すぎて編集しづらい

111:103
07/05/16 01:04:09
>>110
スマソ。慣れてないもんで・・・
もうちょっと分割したほうがいい?

112:103
07/05/16 02:07:49
ちょこっと分割してみました。
こんなもんで、どうでっしゃろ?

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

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

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

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


116:デフォルトの名無しさん
07/05/19 08:53:50
お疲れ様です

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

118:デフォルトの名無しさん
07/05/20 18:54:52
>>117
URLリンク(glscene.sourceforge.net)
この中のAirBlastなんて、どう?
一応、ソース付きです。

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


119:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/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;」を追加
②Form1.onCreateに、「sc:=TGLStateCache.Create;」を追加
③Form1.onCloseを作って「sc.Free;」と書く
④全ての「InvertGLFrontFace;」を「sc.InvertGLFrontFace;」に変更する

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

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

123:デフォルトの名無しさん
07/05/24 07:55:04
Delphi Doom
URLリンク(www.geocities.com)

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

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

表示テスト用
URLリンク(www.dave.serveusers.com)

Quake3マップビュワー(25Mbもあるので要注意)
URLリンク(www.badongo.com)

スクリーンショット
URLリンク(www.dave.serveusers.com)
URLリンク(www.dave.serveusers.com)
URLリンク(www.dave.serveusers.com)
URLリンク(www.dave.serveusers.com)
URLリンク(www.dave.serveusers.com)
URLリンク(www.dave.serveusers.com)
URLリンク(www.dave.serveusers.com)
URLリンク(www.dave.serveusers.com)


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

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


127:デフォルトの名無しさん
07/06/17 20:15:20
流石に他人のフンドシをモロに使うのはどうなんだろう。

128:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/06/17 22:54:53
>>127
>>128
レス、サンクスです。
シェアウエアを作る予定は今のところ無いのですが、
とにかくすっきりしました。


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

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

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

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

134:デフォルトの名無しさん
07/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
07/06/20 16:02:34
>>134
ありがとうございます。とても分かりやすいご説明、感謝いたします。

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

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

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


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


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

138:デフォルトの名無しさん
07/06/20 23:57:06
日本の法律だと大丈夫なの?

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

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


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

140:デフォルトの名無しさん
07/06/21 00:19:46
うむぅ。。。実際には通用しないような・・・

141:デフォルトの名無しさん
07/06/21 00:20:43
するわけねーだろ馬鹿

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



144:デフォルトの名無しさん
07/07/02 09:12:14
これQuadrupleDと比べてなにが優れてるの?

145:デフォルトの名無しさん
07/07/03 01:41:04
比べること自体間違ってる

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


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


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

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

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

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

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


153:デフォルトの名無しさん
07/07/14 08:44:49
オレのメモ

Genesis Device Engine
URLリンク(www.genesisdevice.net)

SLG Core
URLリンク(sourceforge.net)

Mondo 3DMMORPG engine
URLリンク(sourceforge.net)


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




155:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/07/15 11:21:15
ありがとうございます。かけました。

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

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




157:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/07/16 11:55:29
ありがとうございます。

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

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

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

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

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


160:デフォルトの名無しさん
07/07/17 21:14:35

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

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

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


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

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

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

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



164:デフォルトの名無しさん
07/07/23 21:15:55
Delphi用のNURBSライブラリ情報はないですか。

165:デフォルトの名無しさん
07/07/25 17:50:40
>>163
functionGLSceneViewer.Buffer.ScreenToWorld(screenX, screenY):TVector3D

を使えば、XY座標を3D座標に変換はできます。GetPickedObjectと組み合わせると
何とかなるんじゃない?

166:デフォルトの名無しさん
07/07/25 22:15:40
>161
smd(Half-Lifeのモデル形式)なら、「XSI Mod Tool」が無料で使えるみたい。
URLリンク(www.softimage.jp)
URLリンク(www.c-sec.net)


167:デフォルトの名無しさん
07/07/26 20:57:04
>>165

ありがとうございます。

この関数をつかうとカメラの前の位置に変換されちゃうみたいですが、
たしかに組み合わせればなんとかなるでしょう...
Rayなんとかっていうメソッドも自分で実装すればつかえそうですね。

168:デフォルトの名無しさん
07/07/30 14:09:21
>>166
ありがとうございます。
XSI Mod Toolインストールしてみましたが、かなり熟練を要するソフトですね。
無料というのは助かりますが。これで開発するかまだ決心付きません。

google sketchupで3dsなどがexportできるといいですが、proじゃないと無理みたいですね。

169:デフォルトの名無しさん
07/08/06 20:57:28
CADのDXFファイルをGLSに読み込みたいんですが、
良い方法ござりませぬか?

170:デフォルトの名無しさん
07/08/06 22:04:40
dxfなんて大抵のソフトで読めるだろうから、適当なので>>22の形式に変換すればよろし

171:デフォルトの名無しさん
07/08/06 22:06:29
もしくはテキストのDXFなら自分で読んで描画すればいいんじゃない?
仕様公開されてるんだし

172:デフォルトの名無しさん
07/08/06 22:47:00
あ、おれ、これならやったことあるぞ。
dxf読み込み→TGLCanvasで表示


173:デフォルトの名無しさん
07/08/07 21:06:38
GLSceneを利用して、VCLのコンポーネント上に、NeHeとかのサンプルを実行するようなサンプルはないでしょうか?

本来ならば、GLSceneのオブジェクトモデルを利用した方がよいと思うのですけど、
すでにOpenGLの生APIを使ったプロジェクトがありまして、
それをVCL上である程度再現したいと考えています。

別の言い方をすると、GLSceneを使いながら、おいしいところだけをとって、
生APIを使えないかな?ということなのですが・・・

174:デフォルトの名無しさん
07/08/07 23:19:27
>>173
>>43

175:デフォルトの名無しさん
07/08/07 23:41:33
わわわ。サンクソ
過去ログにありましたね。

OnRenderってのが難だけど、どうにかなるんかな・・・。
任意の時に描画命令発行したいので。
試してみるかぁ

176:デフォルトの名無しさん
07/08/08 02:59:55
LBAAM
URLリンク(lbbam.blog100.fc2.com)

翻訳記事乙

177:デフォルトの名無しさん
07/08/09 18:59:12
>>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;

178:デフォルトの名無しさん
07/08/10 19:00:32
>>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で調べましたが、仕様がよくわからないです。

179:デフォルトの名無しさん
07/08/11 03:22:43
>>178
本当に調べた?DXFは公式の仕様書もあるし第三者の解説だっていっぱいあるよ
ひょっとして日本語で調べたいみたいな甘い考え?

180:デフォルトの名無しさん
07/08/11 16:40:14
ドイツ語や中国語でもいいのですが検索の仕方が悪いのか適当なページが見つかりませんでした。

181:デフォルトの名無しさん
07/08/11 17:30:10
>>180
"DXF format spec"でググればいくらでも出てくるじゃん。

182:デフォルトの名無しさん
07/08/11 19:28:21
横レスで悪い、DXFって、中途半端に読むのは簡単だが、きちんと読むのは簡単じゃないと思う。

公式の仕様書といえるものは自動机俺様仕様書をかなりお金を出さないともらえない。
あとは全部非公式。だから、CAD間でもさほど互換性ない。
日本語の資料なら、日経BP 「新DXFリファレンスガイド R14対応 \3900」がある。
他にもあるかもしれん。オークションか古本屋で探すと吉。

183:デフォルトの名無しさん
07/08/11 20:08:31
>>178はきちんと読む以前の問題だろ

184:デフォルトの名無しさん
07/08/12 00:29:52
どうも、>>177です。いつのまにかDXFで盛り上がってるとは・・・
(^^;;;
DXFフォーマットについては、AutoCADのヘルプにかなり詳しく載ってます(もちろん日本語で)。
とは言っても、>>178氏がAutoCADを持っていないのなら参照しようが無いしなぁ。。。

ここのHPなんか、どう?
URLリンク(hp.vector.co.jp)
んでも、ここの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
07/08/12 09:45:29
上でたしかにファイルは読めるけれど、
42=ふくらみ
は、どういう意味か、どうすれば描画可能な情報に
展開できるか、という情報は、探してもなかなかない。

私の場合、昔のことだったので、ファイルと図形を
解析してやったが、ほかにも解決していなものは色々とある。
ググればいい=直線、円弧、安易な折れ線ポリライン
ググってもわからん=スプライン、ちょっと複雑なポリライン、その他
だろうと思う。
私も分からない部分も多いが、回答できるものはするので、
もうちょっと質問を整理してみてはどうだろうか。

186:182
07/08/12 09:48:04
R14から、ポリラインは、LWPOLYLINEがデフォルトのようです。



187:182
07/08/12 10:00:03
>>178, 184
日本語ではありませんが、スプラインのコードです。
URLリンク(www.autodesk.com)
DXFも同様なコードで出ていると思いますが、OpenGLで表示となると?

その他のコードはこちらに。
URLリンク(www.autodesk.com)

188:デフォルトの名無しさん
07/08/12 13:01:28
わざわざしゃしゃり出てくんな
これ以上やりたいなら専用のスレに移動してやってくれ
ここはGLSceneやその他の3Dライブラリのスレであって、3Dデータのスレじゃない

189:デフォルトの名無しさん
07/08/12 14:34:03
別にいいんでない?
どうせそんなに話題もないのに

190:デフォルトの名無しさん
07/08/12 15:26:21
まあ難しいことは考えずに、>>170が言っているとおりGLSceneで読める形式に変換すればいい話じゃない?

191:デフォルトの名無しさん
07/08/13 22:24:19
tiffやdxfは仕様が大きすぎて最終的な成果物として扱うのは危険

192:デフォルトの名無しさん
07/08/14 20:17:10
>>22
メジャーなモデラーならほとんどどれでも吐けるじゃないか
ファイルフォーマット変換のためならmilkshape3d
個人的にはLightwave3dオススメ

国産モデラーはゲーム系フォーマットに弱いのが難点だな
そもそも数があまり出てないけどさ


ところでDXF形式なんて他のソフトへ持っていくとまともに読み込めないよね?
(ひどい場合は書き込んだソフトですら読み込めない)
3dsかlwoを使ったほうがいい
DXFは他に何も対応してなかった場合の最後の手段

193:デフォルトの名無しさん
07/08/14 23:17:37
>>192
Shadeで製作したデータをGLSceneで読み込むとしたら、どういう方法があるでしょうか。
milkが必要ってことでしょうか?

194:デフォルトの名無しさん
07/08/14 23:25:14
Shadeとは、またリアルタイムレンダリングにメチャメチャ不向きな物をw

195:デフォルトの名無しさん
07/08/14 23:36:56
>>193
プロ版なら3DSとLWO対応してるからどちらでもよい
それ以外ならまともに出力できる形式がないので諦める

何らかの方法で別モデラーにエクスポート出来たとしても
多少の修正は必要なのでmilkshape3dに魅力を感じなければ
他のモデラーのほうがいい

196:デフォルトの名無しさん
07/08/15 14:48:10
ShadeはPROじゃないのでobj形式でやってみました。
結果、アナボコだらけに。なんでだろ?


197:デフォルトの名無しさん
07/08/16 19:49:36
三角ポリゴンじゃないと駄目とか?

198:デフォルトの名無しさん
07/08/16 20:27:54
Shade側の出力を3角にしてもNGでした。両面にしてもNG。
GLSceneで落ちるところはきまっているので、単純なものにして
テストしてみます。
(あまり意味がなくなってくるけども)

199:デフォルトの名無しさん
07/09/23 04:43:34
ぽりごんせんしGL

200:デフォルトの名無しさん
07/09/23 17:41:27
>>198
ポリゴンの裏表が逆なんじゃね?

GLScene以外で表示してみて問題の切り分けしたほうがいい
おそらShade固有の問題で、GLSceneとは関係ない話だよ

一般論だけど出力する前にいくらか加工や設定することで回避できる場合もある

201:デフォルトの名無しさん
07/09/26 12:24:13
わいのところはShadeはないんで、ためしに、
URLリンク(www.cgdatabank.com)
でobj形式入力したんけど、読み込んでる最中に
ようわからん例外をスローして失敗。
Delphi6 + GLScene



202:デフォルトの名無しさん
07/10/08 14:36:04
違う質問で失礼します。

GLSceneで 画面上の(スクリーン座標?)点を、
シーンの中の「Z=0のXY平面」上の点に変換するには
どうしたらいいでしょうか。

#平面は描画していないので、フィードバックは使え
ない。カメラか何かで計算?

203:デフォルトの名無しさん
07/10/08 15:49:50
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:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/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のせいにしてもいいと思う

206:デフォルトの名無しさん
07/10/12 19:02:56
>>205

助言ありがとうございます。

最初はこのことを知らずエラーの嵐でしたが、
このスレを読んでいちおう対策済みです。

デバッグ終了時などの嵐はおさまったのですが・・・

途中の状況はさっぱりです。

コンパイルして単体で実行しても何かしらのエラーが出続けています。

クマッタ

207:デフォルトの名無しさん
07/10/13 12:39:09
対策してもだめか

そもそも、プログラムの影響で、IDEがエラーって状況は、近辺あったことがないな・・・
俺は。
IDEか、OSが壊れてるんじゃないのかな?

208:デフォルトの名無しさん
07/10/13 13:21:32
>>207
返信どもです。

Delphiとディスプレイドライバを再インスコしてみました。

が、ダメでした・・・

GLScene以外の設計では何も問題は出ないです。
新規アプリ作成で、GLSceneViewerのコンポを貼り付けてデバッグで起動、
終了してIDEに戻ったとたんにアプリケーションエラーとなってしまいます・・・

 EGLContextがモジュールProject1.exeのxxxxで発生しました
 Context activation failed: C0070006

です。このC0070006の部分はほとんど同じ数字が出ています。

209:デフォルトの名無しさん
07/10/13 13:25:33
>>208

208です。

ちょっと状況変化ありです。
さっきのエラーはOnCloseにGLSceneViewer1.freeを
書いてないからでした。(ボケですみません)


ただ「貼っただけ」のものではエラーは出ません。

しかし、Demoなどの、「GLSceneViewerにすでに何らかのデータが
入っている」アプリはIDE、実行時とも依然エラーが出ます。

ここらの処理をトレースしてみようと思います。

210:デフォルトの名無しさん
07/10/14 11:48:42
多分作りこんでいくとContext activation(deactivation) failed
は、いろんな場面で出る。

あてにならない経験からいうと、
OpenGL的にお行儀よく書いていない場合、GLSceneは
例外がでる場合(ATI系)や、
例外も出ずに描画もされない場合(S3/VIA系)がある。
GeForce系はお行儀わるくても割と安定している。


どういう場合にOpenGL的にお行儀が悪いかは、GLSceneの
構造上よくわからな部分もあるが、GLSceneでテクスチャや、rciを
直接つかう命令などは出やすい。
発生している場合、描画を手コーディングしている部分があれば、
同じような種類の命令はまとめること、
また、描画命令の順番を変えてみると直ることがある。

211:デフォルトの名無しさん
07/10/14 13:31:03
>>208
もしよかったら、エラーが起こる最小限のコードをうpしてみて下さい。
協力できるかも。

ただ、うちは、BDS2006なので、環境一緒じゃないけど・・・

アプロダは、
ゲムデヴあぷろだ
URLリンク(gamdev.org)
あたりで

212:デフォルトの名無しさん
07/10/15 09:15:37
GLSceneで2つのクオータニオンの差を求めるのってどうすればいいですか?

213:デフォルトの名無しさん
07/10/15 11:34:29
>>211

 アドバイスありがとうございます。

 >>211さん
 うpしました。10317.zipです。よろしくです。

 いちおう、Demosのほとんどのソースで同様のエラーがでます。
 209に書いたようにViewerに「何か表示されている」場合はコンパイル、起動はできるものの、終了(アプリを閉じIDEに戻った)後、連続でエラーダイアログ、それを連打するとDelphiごとおちる状態です。
 もし、IDEで戻った時点でエラーが出なくても、「ファイル→全てを閉じる」でフォームが閉じた後にエラーが出、落ちます。

 感覚としてフォームインスタンスが閉じたのを「何かのコンポ」が察知できなくて、書き込みをしようとしているのでは?と思います。


214:デフォルトの名無しさん
07/10/15 11:35:59
>>210

 アドバイスありがとうございます。

 しかしまだ作りこむどころか、1個のオブジェクトを表示させるのでいっぱいです・・・

 QuadrupleDの方がいいのかな~とも思い始めてます。

215:デフォルトの名無しさん
07/10/15 23:06:05
>>212
まずパソコンを窓から投げ捨てます

216:デフォルトの名無しさん
07/10/15 23:28:17
そんなこといわれなくてもやっとるわ!

217:デフォルトの名無しさん
07/10/16 09:01:01
インストールしてみたんだけど、メニューにFreePascalとDXP
ってのが追加されたんだけど、どうすれば除けますか?


218:217
07/10/16 09:01:45
サンプルデモって全部実行できます?

219:デフォルトの名無しさん
07/10/16 16:06:53
自分で試せよ

220:デフォルトの名無しさん
07/10/16 17:21:50
聞き方が悪かったね。
出来るやつ、出来ないやつが結構あって
みんなはどうかなと。

221:デフォルトの名無しさん
07/10/17 23:51:31
Delphiスレはなぜか情報交換を拒絶する風潮があるのはどうしてなの?

222:デフォルトの名無しさん
07/10/18 00:40:38
で?

223:デフォルトの名無しさん
07/10/18 01:13:23
自分以外はMSのスパイなのでは?と疑う魔法をかけられているからです。

224:デフォルトの名無しさん
07/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例外が起こっているか、確かめて、
原因を追究しないと無理だと思う。

225:デフォルトの名無しさん
07/10/24 11:49:08
>>224

テストありがとうございました!

やはり原因はその個体によるようですね。
友人のRadeon 9800XTでは同じテストで出ませんでした。

>DireverCleanerなどを使って、まっさらにしてから再インスコ

 あ、これはやってない。
 また時間があるときやってみます。


なかなか根が深い問題のようです。

また進展があったら書きます。
(技量的にすでに限界を超えているとも・・・)

226:デフォルトの名無しさん
07/10/27 00:44:43
一応確認したいけど、NeHeなどの、OpenGLのサンプルでエラーが起こらない
(というか、期待通り表示されるならば)
GLSceneのクセのようなものが出ていると思う。

上で出ていた、別の 終了時のEGLContext エラーもそうだけど、
GLSceneの組み方が、どうも、RADEON系との相性が悪いみたい。

227:デフォルトの名無しさん
07/10/27 00:45:29
> 一応確認したいけど、NeHeなどの、OpenGLのサンプルでエラーが起こらない
> (というか、期待通り表示されるならば)

一応確認したいけど、NeHeなどの、OpenGLのサンプルでエラーが起こらない
(というか、期待通り表示される) ならば、

間違いスマソ

228:デフォルトの名無しさん
07/10/30 10:46:41
>>226

 NeHeは初めて聞きました。

 ということで早速サンプルを実行してみました。

 エラーはまったく出ません・・・
 やはりGLSceneの実装の問題のようですね。

 あきらめ寸前

229:デフォルトの名無しさん
07/11/06 14:58:35
クオータニオンからどれか一つの軸の傾きや
回転を知る関数ってありますか?

230:デフォルトの名無しさん
07/11/15 23:57:07
まとめページどこですか?

231:デフォルトの名無しさん
07/11/16 01:35:54
>>230
URLリンク(gamdev.org)

232:デフォルトの名無しさん
07/11/17 01:07:45
>>231
もっとちゃんとしたインストール手順書ない?

233:デフォルトの名無しさん
07/11/17 08:41:11
さいきんイジリはじめたんだが、マジで情報少ないな。結構よくできたライブラリだと思うんだがな。

234:eAbRYZExxTKnwl
07/11/17 16:29:36
Hi! Nice site! <a href=URLリンク(dthqlr.cn) >hi </a> [URL=URLリンク(dthqlr.cn) ] guys [/URL] URLリンク(dthqlr.cn)

235:デフォルトの名無しさん
07/11/19 22:56:17
これのライバルライブラリといえばどんなものがあるの?

236:デフォルトの名無しさん
07/11/20 00:41:50
簡単なサンプルを一から書いてみたんだが、
なぜか TGLTerrain のライト処理が変になる。
シーンに手をいっさい加えずにレンダリングすると設定した通りのライティングなんだが
ちょっとでもオブジェクトの座標をいじったりするとライトがヘンなところに当たってしまう。
しかも TGLTerrain 以外のオブジェクト(っていっても今の所箱一個だけだが)は指定どおりの光源処理になる。
早くもライブラリのバグにぶちあったったのか・・・

237:デフォルトの名無しさん
07/11/20 01:59:24
弄り方が悪かったんだろ

238:デフォルトの名無しさん
07/11/20 02:26:33
いまやってみたが座標どころか、Viewerを client に align して、ウィンドウをリサイズするだけで発生することがわかった。
バグじゃないとして、なにがマズいんだ? Light をパラレルにしてるのがまずいのか・・?
もうすこしいじってみる。

239:デフォルトの名無しさん
07/11/20 03:58:27
初期化未遂

240:デフォルトの名無しさん
07/11/20 20:14:51
これバグみつけたらどこに報告すりゃいいんだ?

241:デフォルトの名無しさん
07/11/21 08:12:13
Mailing List

242:デフォルトの名無しさん
07/12/21 13:30:54
guiのサンプル見てみたんだけど
これ日本語入力できる方法ないのかな~

243:デフォルトの名無しさん
07/12/22 01:52:35
1バイトで処理してるから表示されないだけで、入力は普通にできないか?
GLEdit1に日本語を入力して、中身を確認すると日本語そのまま入ってるし。
日本語を出そうとするとTGLCustomBitmapFont.RenderString周りの書き換えか…。

244:デフォルトの名無しさん
08/01/03 04:01:56
>>242
サンプルを変更して確認しようとしてみたんだが・・・
日本語以前にGLEditの位置を変えただけで入力されている文字が
表示されなかったりわけがわからん。
これってバグなのか?仕様なのか?
ネットワークゲーム系だとチャットは大事だから
この使い勝手じゃあ使い物にならんな。

245:デフォルトの名無しさん
08/01/05 23:43:35
>>244
BitmapFontを指定してないだけじゃない?

246:242
08/01/09 10:33:50
日本語入力に挑戦してみたのですが
Bitmapfontが英語の範囲しか対応していないみたいで
RenderStringの変更だけじゃ無理みたいなんですが;;

247:デフォルトの名無しさん
08/01/17 01:49:46
>>246
試しに描画させてみましたが、RenderStringを書きかえて漢字は出せました。
全漢字を含んだテクスチャを用意し、
漢字の時はRenderString内のGetCharTexCoords(currentChar, topLeft, bottomRight);を呼ばずに
topLeft, bottomRightを計算するだけ。
全文字を綺麗に出すにはもう少し工夫が必要ですが。

248:デフォルトの名無しさん
08/02/02 22:14:37
にゃは

249:242
08/02/06 18:54:28
質問ばかりですみません

>>全漢字を含んだテクスチャを用意
これどうしたらいいでしょうか・・・


250:デフォルトの名無しさん
08/02/06 19:30:50
gl_kanjiを参考にすればいいんじゃね?

251:デフォルトの名無しさん
08/03/29 09:33:49
初心者の質問ですみません...

お菓子(クッキー)を型抜きした物を表示したいんですが、
どうすればいいでしょうか?

回転体でクッキーをつくることはできました。
それを回転軸方向から、簡単な図形(星とか)で、
抜ければいいんですけど。

252:デフォルトの名無しさん
08/03/30 16:01:02
ヒント:ブーリアン

253:デフォルトの名無しさん
08/04/05 20:12:59
国土地理院の50mメッシュデータに、2500地形画像を貼り付けたいのだけど、
1枚の画像データ(TIFF)の平面の2次元座標指定でをメッシュデータ(3角か4角のポリゴンでよい)
に指定していく方法がわからない。
OPENGLならできるような気もするのだけど?GLSceneなら簡単にできないものですか?
画像をあらかじめ分割しておけばそりゃ出来るんだろうけど、ファイル数がめちゃくちゃ多くなるのであまりやりたくないです。

254:デフォルトの名無しさん
08/04/05 20:43:59
日本語でおk

255:デフォルトの名無しさん
08/04/05 23:12:22
>>253
国土地理院の50mメッシュデータ=ただの高さデータ
2500地形画像=ただのテクスチャ

よって、TGLHeightField使って高さを表現させ、
地形をテクスチャとして指定するだけで、お手軽に立体地図の完成。
俺が自分で遊んでたのはSRTM30でテクスチャ無し(高度で色変更)だが。
ただTGLHeightFieldは非常にクセが強い印象。
高さ表現できるクラスを自力で作るのがベストかもね。

256:255
08/04/06 10:27:48
>>253
読み直してみた。単に巨大画像を扱う方法を知りたいだけだったか。
3Dなら、GLSceneと言うかOpenGLだろうがDirect3Dだろうが、
分割して随時テクスチャとして管理するしかないよ。
2DならGraphics32でおk。

257:デフォルトの名無しさん
08/04/06 15:45:03
大きいサイズの画像が扱えないバグがVCLにあったハズだけどもう直った?

258:デフォルトの名無しさん
08/04/15 22:23:44
>>255
ご親切にありがとうございました。TGLHeightFieldでOKでした。
ただ、HeightFieldGetHeightの使い方がわからず、時間がかかりました。
どこかに、まともなリファレンスがないものか(見つかりませんでした)

リファレンスと簡易例文があれば、あっという間に出来てしまうのにね。
もったいない。

次の課題
1、2500画像、基本台形なのでリアルで正規化できないものか
2、がけのようなほぼ直角で落ちているような指定をどうするのか?(できないのか?)
3、手前のシーンがぼけるんだけど、ぼけないようにできないものか?

こつこつとやってみます。もしご存知でしたらヒントをお願いします。

259:デフォルトの名無しさん
08/04/16 00:24:40
>>258
地形を表現させるにはTGLTerrainRendererでもいけるぞ

260:デフォルトの名無しさん
08/04/20 08:46:56
>>252
ヒントありがとうございます。
ブーリアンを調べて、立体の積の元になる2つはGLScene上で
作ったのですが、これをどうやるとブーリアンができるのでしょうか。


261:デフォルトの名無しさん
08/04/20 22:51:45
日本語表示用のコンポーネントを作ってみました。
TGLCustomBitmapFontを継承してます。
DelphiまとめwikiのGLSceneのところにアップしてます。

・・・でも・・表示が非常に遅い・・・orz
>>247氏の方法を使ったほうがよかったかな?
だれか作り直してくれ。


262:261
08/04/29 00:10:40
そういうわけで、>>247氏の方法で試しにコンポーネントを作ってみました。
しかし・・・セカンドマシンでテストしてみたら、なんとメモリオーバー。
欲張ってunicodeの文字を全部準備したのがマズかったみたい・・・
Graphics32のTBitmap32Collection型を使って分割すれば良かったかも。
どちらにしろ、最初から作り直しだあ~><

もしこれが完成したら、先にアップしたやつは不満だらけなんで削除します・・・

263:261
08/05/22 23:38:31
またまたそういうわけで、結局Graphics32のTBitmap32と、GLSceneのTGLBitmap32の配列で対処しました。
現在動作テスト中ですが、今のところ問題はなさそうです。
・・・が、なんかGamDevが落ちているみたいでアクセスできないです。
コンポーネントのアップ、どうしよう・・・ふぅ~。

264:デフォルトの名無しさん
08/05/23 15:26:09
待っていればその内復活するんじゃね。コンポ期待待ち

265:デフォルトの名無しさん
08/05/26 12:05:04
GLSceneの座標って右手系?左手系?

266:デフォルトの名無しさん
08/05/26 18:50:46
ちょっとググるだけで分かることを何故あえてここで聞いたの?

267:デフォルトの名無しさん
08/05/27 22:09:39
OpenGLは右手系。っとマジレス。
DirectXの初期値とは逆なんで要注意。


268:デフォルトの名無しさん
08/05/28 00:59:46
GLScene 座標でググったんだが、右手とか出てこなかったんで
聞いてみた。
でも、今分かったよ。
右手系のことをグローバル座標系って言うんだね。

266,267ありがとう

269:デフォルトの名無しさん
08/05/28 06:50:08
何が分かったんだか…。

270:デフォルトの名無しさん
08/05/28 07:31:24
>>269
>何が分かったんだか…。
>何が分かったんだか…。
>何が分かったんだか…。
>何が分かったんだか…。
>何が分かったんだか…。
>何が分かったんだか…。
>何が分かったんだか…。
>何が分かったんだか…。
>何が分かったんだか…。
>何が分かったんだか…。


271:デフォルトの名無しさん
08/05/28 11:43:08
>>269-270
自演乙

272:デフォルトの名無しさん
08/06/10 18:50:29
厨房の宿題みたいな質問で申し訳ないんだけど、2点を結ぶ延長線とある1点を通る線が90度に交わる座標を求めたいんだけど、ググるキーワード教えてください。


273:デフォルトの名無しさん
08/06/10 19:04:57
ググるキーワードをググレカス

274:デフォルトの名無しさん
08/06/10 19:06:46
点と直線の距離

275:デフォルトの名無しさん
08/06/10 22:43:10
>272
垂線の足?

276:デフォルトの名無しさん
08/06/11 21:07:21
>>273,274,275
ありがと

277:デフォルトの名無しさん
08/06/19 09:36:51
GLSceneの説明を更新&追加していこうと思っているんですが、
ゲムデブwikiがまだ落ちてるみたい・・・
どうしたんだろ?

278:デフォルトの名無しさん
08/06/19 16:00:17
今はこっち
URLリンク(wiki.game-develop.com)

279:デフォルトの名無しさん
08/06/20 00:04:40
ありゃ~っ、禿しく変わっちゃったような気が・・・
・・・もしかして、今までの、全部クリア? orz
誰か、今までのバックアップしてない?
・・・やっぱり、一から入れなおすかしかないか・・・

280:デフォルトの名無しさん
08/06/20 01:35:08
すっきりや・・・かなしいほどに

281:デフォルトの名無しさん
08/06/20 01:47:11
これってGLSceneのことは、どこにのってるの?
まだ、のってないの?

282:デフォルトの名無しさん
08/06/20 20:00:15
再建されただけでもありがたいと思わないと
古いのはWebArchive参照

283:デフォルトの名無しさん
08/06/21 22:19:00
GLScene関連のリンク集ない?

284:デフォルトの名無しさん
08/06/22 23:52:51
URLリンク(glscene.sourceforge.net)

285:デフォルトの名無しさん
08/06/27 00:26:55
>>278
すっかり変わっちゃったね
今のうちに関連ページだけでもバックアップとりたいんだけど
WEBを丸ごとローカルに保存するツールない?

286:デフォルトの名無しさん
08/07/05 08:57:01
URLリンク(web.archive.org)
kokkara

287:デフォルトの名無しさん
08/07/05 08:57:47
>>285
更新とまってるけどおれはweboxを愛用
wgetという手も

288:デフォルトの名無しさん
08/11/17 15:26:27
まだ有るの?

289:デフォルトの名無しさん
08/11/17 16:56:15
あります

みんなのココロのなかに

290:デフォルトの名無しさん
08/11/19 23:05:59
だが、まだ俺のHDDのなかにもあるという事実

291:デフォルトの名無しさん
08/12/08 09:54:08
これ今更入れてみたがサーッパリわかんね。
敷居低くベンチマークやスクリーンセーバーみたいなの作れればいいやと思ってたが
それでもDBプログラマには敷居が高かったようだ。

で、チョイと質問ですが当面の目標にしたサイコロ作りに勤しんでいるんだが、
64*64の画像をアサインして正面向かせても描写サイズが64*64にならないんだけど
面の大きさをピクセルで正確に合わせるにはどうすれば良いんでしょ?
スケールとポジション弄ってるとなんとなく見た目の大きさが変化してるのは
分かるが、自分が見せたい大きさになってくれない。

292:デフォルトの名無しさん
08/12/08 16:59:44
そもそも3Dでピクセルを気にするという発想がおかしい
OpenGL入門サイトはいくらでもあるから、好きなの眺めて基礎知識つけた方がいいと思われ

293:デフォルトの名無しさん
08/12/09 06:30:18
>>292
あーそうなんだ
カメラのz軸固定?非ズームだと気にならんの?
まぁいろいろやってみるよ。

294:デフォルトの名無しさん
08/12/11 15:09:36
正射影つかうとか

295:デフォルトの名無しさん
08/12/12 21:49:12
GLFreeFormに3dsとmd2を読み込んだんですけど、表面材質は表示されないんですか
テクスチャー張らないで色つけたいんでけど
Material Editer だと全部同じ色になるみたいんで
モデラーみたいに表示してくれる方法ってありますか?

296:295
08/12/13 16:10:37
自己解決しました

297:デフォルトの名無しさん
08/12/14 06:19:48
事故解決したら、検索してきた人や後学などのためにも結果を書いておこうよ

298:295
08/12/14 10:06:52
ああ、ごめんなさい、簡単だから勉強の為にも自分で調べてくれと言う意味で
あえて誰も教えなかったと思って、書かない方が良いのかと思ったw

GLMaterialLibrary(色付きのキューブのアイコン)を追加して
GLFreeForm1 のプロパティーMaterialLibrary(+Material 内ではない)に
GLMaterialLibrary1を設定、これだけで出来た

ちなみにGLMaterialLibrary1をダブルクリックして新規追加とか色々出来るみたい
Demos\meshes\CSG とかで使ってるので誰か解る人、追加情報よろしく


299:デフォルトの名無しさん
09/01/05 07:36:08
299

300:デフォルトの名無しさん
09/01/05 07:36:44
300

301:デフォルトの名無しさん
09/02/01 16:51:10
WAVEOUTのACTIVEをtrueにしても、実行時 NO Active Sound Manager.
Make sure manager is created before emitter と表示されるんで
FMODに戻したら、こちらでも出る様になったんです。
以前には出なくてきちんと音が鳴ってたんですけど、こんな症状になった人居ますか。
もう全然音を使えなくなってしまって、どうにか直したいんで分る方お願いします。

302:301
09/02/01 17:29:25
GLscene Editerの方ではなくコードでSound emitterを設定すると
何も表示されずにきちんと音がなりました、でもWAVEOUTの方はやっぱり音が鳴りませんWAVEOUTってFMODと同じ方法では使えないんですか?

303:301
09/02/21 01:35:39
自己解決しました

304:デフォルトの名無しさん
09/02/21 08:42:29
事故解決したら、検索してきた人や後学などのためにも結果を書いておこうよ

305:デフォルトの名無しさん
09/02/21 20:36:58
お断りだ

306:デフォルトの名無しさん
09/02/22 19:26:25
認めぬ

307:デフォルトの名無しさん
09/03/19 20:22:08
またそういうことを

308:デフォルトの名無しさん
09/03/24 20:07:19
キーロガーといわれればそうですね。
でも、キーストロークを監視するのって
よくあることじゃない?

309:デフォルトの名無しさん
09/03/24 20:08:00
ごばーく
失礼!

310:デフォルトの名無しさん
09/04/08 01:03:15
ははは

311:デフォルトの名無しさん
09/04/19 14:33:13
902 名前は開発中のものです。 [] 2009/04/18(土) 03:19:08 ID:YxO4K2FJ
GLSceneのサイトが更新されている。
URLリンク(glscene.sourceforge.net)

GLScene for Delphi2009なんてのもあるぞ
URLリンク(sourceforge.net)


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch