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


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とは関係ない話だよ

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

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



202 名前:デフォルトの名無しさん mailto:sage [2007/10/08(月) 14:36:04 ]
違う質問で失礼します。

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

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

203 名前:デフォルトの名無しさん mailto:sage [2007/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 名前:デフォルトの名無しさん [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のせいにしてもいいと思う

206 名前:デフォルトの名無しさん mailto:sage [2007/10/12(金) 19:02:56 ]
>>205

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

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

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

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

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

クマッタ

207 名前:デフォルトの名無しさん [2007/10/13(土) 12:39:09 ]
対策してもだめか

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



208 名前:デフォルトの名無しさん mailto:sage [2007/10/13(土) 13:21:32 ]
>>207
返信どもです。

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

が、ダメでした・・・

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

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

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

209 名前:デフォルトの名無しさん mailto:sage [2007/10/13(土) 13:25:33 ]
>>208

208です。

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


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

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

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

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

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


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

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

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

アプロダは、
ゲムデヴあぷろだ
gamdev.org/up/upload.php
あたりで

212 名前:デフォルトの名無しさん mailto:SAGE [2007/10/15(月) 09:15:37 ]
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の方がいいのかな〜とも思い始めてます。

215 名前:デフォルトの名無しさん mailto:sage [2007/10/15(月) 23:06:05 ]
>>212
まずパソコンを窓から投げ捨てます

216 名前:デフォルトの名無しさん mailto:SAGE [2007/10/15(月) 23:28:17 ]
そんなこといわれなくてもやっとるわ!

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




218 名前:217 mailto:sage [2007/10/16(火) 09:01:45 ]
サンプルデモって全部実行できます?

219 名前:デフォルトの名無しさん mailto:sage [2007/10/16(火) 16:06:53 ]
自分で試せよ

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

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

222 名前:デフォルトの名無しさん mailto:sage [2007/10/18(木) 00:40:38 ]
で?

223 名前:デフォルトの名無しさん mailto:sage [2007/10/18(木) 01:13:23 ]
自分以外は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例外が起こっているか、確かめて、
原因を追究しないと無理だと思う。

225 名前:デフォルトの名無しさん mailto:sage [2007/10/24(水) 11:49:08 ]
>>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のサンプルでエラーが起こらない
(というか、期待通り表示される) ならば、

間違いスマソ



228 名前:デフォルトの名無しさん mailto:sage [2007/10/30(火) 10:46:41 ]
>>226

 NeHeは初めて聞きました。

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

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

 あきらめ寸前

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






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

前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