Delphi持ってるならGLSceneを使えat TECH
Delphi持ってるならGLSceneを使え - 暇つぶし2ch150:デフォルトの名無しさん
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