[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Java3Djp:01459] Re: 投影行列の取得
●●●●●資産形成についてお考えですか●●●●●
個人の資産形成に関するアドバイスを提供する金融サービスに注目が集まってい
ます。そこで、「ゆたかな生活設計を考える」資産運用のためのセミナーを開催
します。個人の暮しを対象としたわかりやすい内容です。後援/毎日新聞社 毎日
放送 主催/アドバイザーテック証券主催 → http://www.ogc.ne.jp/at-seminar
−−−−−PR−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
沼倉です。
投影行列(射影行列)は、3次元座標をウィンドウ座標に変換する
行列ではないでしょうか。 OpenGLの本があったら、gluProject()
を見てください。
これを使って、オブジェクトの表示されるウィンドウ座標が
取得できるはずです。ただ、ウィンドウ座標はdoubleで返って
くるんですが、ウィンドウ座標はintですので、小数点以下を
どう処理するかはわかりません。
_/_/_/ E-mail : numakura@xxxxxxxxxxxxx _/_/_/
> 小原です。
>
> > えんどうです。
> >
> > > javax.media.j3d.View#getLeftProjection()では、互換モードを有効に
> > > する必要があり、手間がかかりそうなので...
> >
> > お役に立てなくてすみません。^^;
>
> いえいえ、非常に助かります。
> 3Dグラフィクスのプログラミングについては知らないことがまだまだ
> たくさんあるので、これからもいろいろとご教授ください。
>
> そこまで深い知識がなくても3Dグラフィクスのプログラムを組むことが
> できるJava3Dは素晴らしいですよね。
>
> > http://archives.java.sun.com/archives/java3d-interest.html
> >
> > で "projection matrix" で検索してみたところ、
> > 下記のような発言がありました。
> >
> >
http://archives.java.sun.com/cgi-bin/wa?A2=ind9906&L=java3d-interest&P=R1681
39
先ほど拝見させていただきました。
#英語は苦手なものでちゃんと解釈できているかどうか怪しいですが(^^;
Canvas3D#getVworldToImagePlate()も試してみたのですが、
デフォルト(Canvas3D c = Canvas3D())では4x4の単位行列が返ってきます。
私の手元にあるOpenGLの本によると、投影行列は
2 * near
------------ 0 0 0
right - left
2 * near
0 ------------ 0 0
top - bottom
far + near 2 * far + near
0 0 - ---------- - --------------
far - near far - near
0 0 -1 1
near … 視点から前面クリップ面までの距離
far … 視点から後面クリップ面までの距離
left,right,top,bottom … 前面クリップの各辺の長さ
のようになるはずなので、これも違うみたいですね。
もしかすると何か設定が足りないのかもしれません。
> ..恥ずかしい質問で恐縮ですが、
> 投影行列は通常どのような目的で取得するものなのでしょうか。
私の顧客の方で画像処理をしている人がいるのですが、
その人からOpenGLのglGetDoublev(GL_PROJECTION_MATRIX, projmatrix)
で得られる行列と同じものをJava3Dでも得たいという要望がありまして、
出来るかどうかを今調査しているところなんです。
...で、さらに恥ずかしい回答で恐縮なのですが、私も知らないです。
目的まで聞いていませんでした。少し先になってしまいますが、
今度打ち合わせのときにその人に聞いておきます。
--
==================================================================
株式会社カーネル PHONE 0298(57)7457 FAX 0298(57)7458
小原 一太朗 E-MAIL kernel@xxxxxxxxxxxxxxx
==================================================================