[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Java3Djp:01458] Re: 投影行列の取得



…結婚相手くらい自分で選ぶわ!ピカイチ口出ししないで!  ┃  ☆╋┓━┻  
…危険を察した俺はピカイチもニもなく飛び降りたんだ!  ┃━━┃┃┏╋┓
…あのヒトの想い、私にはピカイチ理解できないのよ!      ┗━━┃┃┃┃┃
  ※ピカイチのご利用方法はアナタ次第です。
----- http://www.pikaichi.ne.jp/cgi/pent_ml.cgi?PC=9999970120000605 ----


小原です。

> えんどうです。
> 
> > 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=R168139

先ほど拝見させていただきました。
#英語は苦手なものでちゃんと解釈できているかどうか怪しいですが(^^;
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
==================================================================