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


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ライブラリ情報はないですか。

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

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

166 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 22:15:40 ]
>161
smd(Half-Lifeのモデル形式)なら、「XSI Mod Tool」が無料で使えるみたい。
www.softimage.jp/mod/
www.c-sec.net/phpBB/viewtopic.php?t=640


167 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 20:57:04 ]
>>165

ありがとうございます。

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

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

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



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

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

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

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


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

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

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

174 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 23:19:27 ]
>>173
>>43

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

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

176 名前:デフォルトの名無しさん [2007/08/08(水) 02:59:55 ]
LBAAM
lbbam.blog100.fc2.com/

翻訳記事乙

177 名前:デフォルトの名無しさん mailto:sage [2007/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 名前:デフォルトの名無しさん mailto:sage [2007/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 名前:デフォルトの名無しさん mailto:sage [2007/08/11(土) 03:22:43 ]
>>178
本当に調べた?DXFは公式の仕様書もあるし第三者の解説だっていっぱいあるよ
ひょっとして日本語で調べたいみたいな甘い考え?

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

181 名前:デフォルトの名無しさん mailto:sage [2007/08/11(土) 17:30:10 ]
>>180
"DXF format spec"でググればいくらでも出てくるじゃん。

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

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

183 名前:デフォルトの名無しさん mailto:sage [2007/08/11(土) 20:08:31 ]
>>178はきちんと読む以前の問題だろ

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

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

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

186 名前:182 mailto:sage [2007/08/12(日) 09:48:04 ]
R14から、ポリラインは、LWPOLYLINEがデフォルトのようです。



187 名前:182 mailto:sage [2007/08/12(日) 10:00:03 ]
>>178, 184
日本語ではありませんが、スプラインのコードです。
www.autodesk.com/techpubs/autocad/acad2000/dxf/spline_dxf_06.htm
DXFも同様なコードで出ていると思いますが、OpenGLで表示となると?

その他のコードはこちらに。
www.autodesk.com/techpubs/autocad/acad2000/dxf/entities_section.htm

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



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

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

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

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

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


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

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

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

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

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

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


197 名前:デフォルトの名無しさん mailto:sage [2007/08/16(木) 19:49:36 ]
三角ポリゴンじゃないと駄目とか?

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



199 名前:デフォルトの名無しさん mailto:sage [2007/09/23(日) 04:43:34 ]
ぽりごんせんしGL

200 名前:デフォルトの名無しさん mailto:sage [2007/09/23(日) 17:41:27 ]
>>198
ポリゴンの裏表が逆なんじゃね?

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

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






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

前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