宇治社中−BBS
ご意見ご感想をお待ちしています。
■投稿時には、この記事を削除する時に利用する削除キーを設定してください.
■一度設定して投稿すれば一定期間同じ削除キーが保存されます.
■入力欄に記憶された内容を消去するには、[書き直し]→[書き込む]を順番に押します.
カメラ座標回転について質問です
投稿日 11月11日(月)19時03分 投稿者 TORA 削除
はじめまして。
3D補講のカメラ座標の回転について質問があります。
カメラが回転するときには,|−R|の行列が掛かる,との事ですが,これは,−|R|がかかると考えてよいのでしょうか。その場合,回転軸までもマイナスになってしまいます。
|-R|とはどういう意味なのでしょう?
初心者なもので,変な質問してすみません。
txtCompileで自動リンクリンク
投稿日 10月19日(土)12時47分 投稿者 乾電池 削除
初めまして、txtCompileをあうとらと合わせてよく利用させて頂いています。
そこで、テキスト中のhttp://***.***/等を自動判別して、<a href="http://***.***" target="_blank">http://***.***/</a>と言った具合で自動リンク出来るように成らないでしょうか。タグうちするのが結構たいへんなんです。(ってかなり贅沢な悩みで申し訳ないです。)採用されますことを期待しています。これからもどうぞよろしくお願い致します。
カメラ行列 での質問です。
投稿日 6月14日(金)02時52分 投稿者 みんと 削除
3D補講のカメラ行列について質問です。
3Dオブジェクトの座標を2D座標に変換したいので下記の式を
利用しようとおもったのですが、わからないところがあるので
質問させていただきます。
(dは視点までの距離)と書いてありますが、
何処から視点までの距離なのでしょうか?
そして、視点とはカメラの位置ということでよろしいのでしょうか?
すみませんが教えてくださいませ。
x' y'
X = ox + ---- Y = oy - ---- (ox,oyはスクリーンの中心座標,dは視点までの距離)
z'/d z'/d
Perl版のtxtCompileもどきスクリプト
投稿日 5月26日(日)19時18分 投稿者 yst 削除
はじめまして
ここで公開されているtxtCompileをいろいろ試して、いろいろ触発されたのですが、
ふだん使っている環境がMacOSで、txtCompileを使うのが面倒なので、
Perlで似た機能をもつスクリプトを組んだあげく、自分のページで公開してみました…
自分の趣味丸出しで一部変な機能が追加されてるンですが、『自動リンク』とか
階層化ファイルのHTML化なんて基本機能は txtCompileをパクっているので、
こういうのを公開しても問題ないでしょうか?
なにか問題あったら善処しますんでよろしくお願いします。
問題のPerlスクリプトは、Work→Toolsに置いてあります。
http://homepage3.nifty.com/yst/
about txtCompile
投稿日 4月6日(土)23時46分 投稿者 はぐれ雲 削除
はじめまして。
あうとらを使い出し、ウェッブにQ&A;を上げる必要から利用致しました。これから長く使っていけるような気がします。便利なソフトをどうも有り難うございます。
ただ、txtCompileでhtmlにすると、ローカルでは問題ありませんが鯖に上げると表示されません。ここらの事情はあうとらのBBSでも書きましたが、【】が原因していますので、ファイル名とテキスト内容に【】が書きこまれず出力されるようVerUpの際には検討して頂けます様お願いすべく、こちらに投稿する次第です。よろしくお願いします。
Re: 乗りかかった船なので…
投稿日 2月22日(金)15時55分 投稿者 豊田芳彰 削除
Dude さんには助けられます。
大変よくわかりました。
ベクトルをクォータニオンで表したV0とV1があった場合、
その成す角や軸は、V1V0' で表せる。
その応用で、V0とVrotの成す角や軸は VrotVo0' で表せる。
これが V0からVrotを眺めるということなんですね。
まずこの発想が出てきませんでした。
そして驚いたのが、以下の部分です。
VrotV0'
= Vrot(V1'V1)V0'
= (VrotV1')(V1V0')
V1'V1 を挿入したり、それを分割して左右のものと結合したり、
この辺りの計算テクニックというか発想はすごいですね。
どうも僕は「クォータニオンは交換法則は成り立たない」
ということばかりに捕われていて、
他の計算方法が頭に浮かんでこないようです。
やっぱり、こういうのは場数を踏まないとなかなか発想できませんね。
クォータニオンはなかなか「実物」をイメージしにくく、
代わりに計算によって正しさを実感しないといけないので、
もう少し頭をやわらかくできるよう努力します。
アドバイスありがとうございました。
乗りかかった船なので…
投稿日 2月22日(金)00時28分 投稿者 Dude 削除
概念的には理解されているようなので
計算についてのみお答えします。
VrotV0'
= Vrot(V1'V1)V0'
= (VrotV1')(V1V0')
= (V1V0')(V1V0')
= (cosθ, sinθVaxis)(cosθ, sinθVaxis)
= ( (cosθ)^2 - (sinθ)^2 , 2cosθsinθVaxis )
= (cos2θ , sin2θVaxis)
こんな感じでしょうか。
V0 と Vrot が Vaxis を軸に ・・・ 追記
投稿日 2月21日(木)00時26分 投稿者 豊田芳彰 削除
> この2θというのは、どこから導き出されたのでしょうか。
2θの「2」が、とうやって導き出されたのかということです。
q = V1V0' = (cosθ, sinθVaxis) の辺りが絡んでいることはわかりますが、
どうして2倍なのでしょうか?
V0 と Vrot が Vaxis を軸に「2θ」の角度を成している理由とは?
投稿日 2月20日(水)04時30分 投稿者 豊田芳彰 削除
ここのサイトの「3D Coding Tips」にある クウォータニオン(3) について質問です。
「任意の軸中心の回転」の部分で、以下のような表現が使われています。
> ここで、V0からVrotを眺めると、
> Vaxis回りに2θ離れていることになります。
この2θというのは、どこから導き出されたのでしょうか。
どうして2θなのかが不思議で、
今までのページなどから計算して求められるのか考えてみました。
が、どうにも解りませんでした。
しかし、ベクトルV0やV1に適当な数値を入れて図を描いてみると、
確かにV0とVrotはVaxisを軸に2θの関係になっています。(ような気がする)
しかし、そうやって図を描いてみないことには2θという値は、
導き出されないものなのでしょうか。
どうにか、2θであることを数式で証明できないでしょうか。
よろしくお願いします。
Re4.クウォータニオン(2) のページ内の途中式が知りたい
投稿日 2月18日(月)13時26分 投稿者 豊田芳彰 削除
なるほど、今度は納得できました。
S(P) がスカラであることが、頭から吹っ飛んでました。
クォータニオンとスカラの乗算は交換できるということも理解できました。
(って言うか、これに気づけなかった自分が情けない)
Dude さんのおかげで、クォータニオンが楽しくなりました。
ありがとうございました。
Re3.クウォータニオン(2) のページ内の途中式が知りたい
投稿日 2月18日(月)01時21分 投稿者 Dude 削除
すいません。
S(P)とS(q)を混同してしまいました。
とんちんかんなのはこっちです。
となるとやはり後にちょっと書いたほうが必要みたいです.
スカラー部だけのクウォータニオン(a,0)
一般のクウォータニオン(b,V)の乗算をすると
(a,0)(b,V) = (ab,aV) = a(b,V)
(b,V)(a,0) = (ba,aV) = a(b,V)
ですので、この場合は交換は可能です。
(スカラー部だけのクウォータニオン(a,0)とスカラーaは等価、といえます)
よってスカラーS(P)とクウォータニオンq(またはq')とは交換可能なので,
q(2S(P))q' = 2S(P)(qq') = 2S(P)
です。
今度こそ大丈夫かな?
Re2.クウォータニオン(2) のページ内の途中式が知りたい
投稿日 2月18日(月)00時44分 投稿者 豊田芳彰 削除
お返事ありがとうございます。
質問1については恥ずかしい限りです。
先のページにちゃんとそのままの記事が載っていたんですね。
昔から、解らない部分を読み飛ばすことができない性格なので、
(2) のページから進んでませんでした。
ただ質問2については、
せっかく解説をいただいたのですが、まだよく理解できません。
確かに q(2S(q))q' の場合は、
qが正規化されている場合に qq' が1となって消えるのは解ります。
でも、q(2S(P))q' の場合に左右のqとq'が消えるのが解りません。
q と P は全く別のクォータニオンなので(ですよね)、
qP' や q'P では1にならないと思うのですが。
ひょっとして、とんちんかんなこと言ってます?
もう少し説明していただけないでしょうか。
よろしくお願いします。
Re.クウォータニオン(2) のページ内の途中式が知りたい
投稿日 2月17日(日)23時38分 投稿者 Dude 削除
初めましてDudeといいます。
僕でもわかりそうだったのでお答えします。
1は「クウォータニオン(4)」の追加の部分に書かれていますね。
僕も説明を考えてみましたが、こっちのほうがわかりやすかったです(笑)。
2は、すぐ上の式
S(q) = ( q + q' )/2
に立ち返れば、
q(2S(q))q' = qqq' + qq'q' = q(qq') + (qq')q' = q + q' = 2S(q)
となります。
または、S(q)はスカラー部だけのクウォータニオンなので
実数と同じ扱いができ順番を変えてもいい、
でいいのかもしれません。(乱暴?)
ここって、もう更新されないのかなあ…
クウォータニオン(2) のページ内の途中式が知りたい
投稿日 2月12日(火)05時53分 投稿者 豊田芳彰 削除
ここのサイトの「3D Coding Tips」にあるクウォータニオンの解説について、質問です。
「クウォータニオン(2)」の最後に、以下のような式がありました。
-------------------------------------------------------------------
2S(Prot) = ( Prot + Prot' ) = ( qPq' ) + ( qPq' )' = qPq' + qP'q'
= q( P+P' )q' = q( 2S(P) )q'
= 2S(P)
-------------------------------------------------------------------
この式でわからない部分が2つあります。
1.なぜ (qPq')' = qP'q' という等式が成り立つのか?
2.なぜ q(2S(P))q' = 2S(P) という等式が成り立つのか?
僕なりに考えてみましたが、
(qPq')' は q'P'q になるのではないでしょうか。
そこから qP'q' に持っていく方法がわかりません。
q(2S(P))q' = 2S(P) というように q と q' が消えてしまうのもわかりません。
これらの途中式は、どのようになっているのでしょうか。
どなたか解説していただけるとうれしいです。
よろしくお願いします。
はじめまして3
投稿日 11月27日(火)23時32分 投稿者 MIYAjun 削除
また続きです。見づらいですね。ごめんなさい
同様にq'' = q'q について考えてみると
q'・q = ( w', V' )・( w, V ) = ( w', < vx', vy', vz' > )・( w, < vx, vy, vz > )
= ( w'w - V'・V, V'×V + w'V + wV' )
< 省略 >
x'' = | w vz -vy vx | | vx' |
y'' = |-vz w vx vy | | vy' |
z'' = | vy vx w vz | | vz' |
w'' = |-vx -vy -vz w | | w' | ====>>>> R(q)q'
て、感じで個々の行列を導出してみました。
トンチカンな導出かもしれませんね。
これからもHPの運営がんばってください。
それでは。
はじめまして2
投稿日 11月27日(火)23時31分 投稿者 MIYAjun 削除
続きです。
以下 ・はベクトルの内積、 ×はベクトルの外積を表すものとします。
q'' = qq' について考えてみる
V = < vx, vy, vz >
V' = < vx', vy', vz' >
q・q' = ( w, V )・( w', V' ) = ( w, < vx, vy, vz > )・( w', < vx', vy', vz' > )
= ( ww' - V・V', V×V' + wV' + w'V )
= ( ww' - V・V', < -vz vy' + vy vz' , vz vx' - vx vz' , -vy vz' + vx vy' >
+< w vx' , w vy' , w vz' >
+< w' vx , w' vy , w' vz > )
V・V' = vx vx' + vy vy' + vz vz'
V×V' = < -vz vy' + vy vz' , vz vx' - vx vz' , -vy vx' + vx vy' >
ゆえに
q'' = < x'' , y '' , z'' , w'' >
x'' = | w -vz vy vx | | vx' |
y'' = | vz w -vx vy | | vy' |
z'' = |-vy vx w vz | | vz' |
w'' = |-vx -vy -vz w | | w' | ====>>>> L(q)q'
また続く ゴメンなさい
はじめまして
投稿日 11月27日(火)23時29分 投稿者 MIYAjun 削除
はじめまして MIYAjun といいます。
いつも「宇治社中」を見ているものです。
大変参考にさせていただいています。ありがとうございます。
今日はいつもお世話になっている当ページにお礼が言いたくて
書きこんでみました。
最近クウォータニオンの勉強をしていくなかで、
「旧3D補講」内のページで気になる所を見つけました。
クウォータニオン(3)より抜粋
>
>さぁ、何故こうなるんでしょうか。私も長い間考えていましたが、
>いまだにすっきりしません。少なくとも今綺麗に説明するのは無理みたいです。
>
かなり昔のドキュメントですので、とっくに解決されている
のかも知れませんが、一応導出してみました。
つづく
法線の計算で質問です。
投稿日 11月5日(月)22時58分 投稿者 acam 削除
はじめまして、acamといいます。
現在、法線の計算部分でなぞにおもっていることがあります。
仮に頂点0、1、2とあるとします。描画は0,1,2のポリゴンです。
これの法線を求めるときに、
ベクトルA=頂点1−0
ベクトルB=頂点2−0
ベクトルA,Bの外積。
それか、
ベクトルA=頂点1−0
ベクトルB=頂点2−1
ベクトルA,Bの外積。
かで悩んでいます。
これは意味的には同じ意味なのでしょうか?
また、どうやったら自分の求めている向きの3角形の法線がだせるのでしょうか?
(外積をとるベクトルの順番で向きが逆になるときいたので・・・)
よろしくお願いします。
subdivision surfaceについて
投稿日 10月16日(火)09時38分 投稿者 かおる♂ 削除
こんにちわ、はじめまして。
catmull-clark subdivision surfaceについてなのですが、
普通にインプリメントすると、立方体はいびつな球体になって
しまいます。例えばPixar's Photoreallistic RenderManを
初めとするsubdivision surfaceの最近の流れを作ったシステム上では
立方体は球体になります。また、バーテクスやエッジへのウェイト付けが
できたりしますが、どのような数式を用いているのでしょうか?
ヒントでも頂ければ、と思います。では。
しつもん
投稿日 10月12日(金)17時37分 投稿者 Tak 削除
suzukiさんへ。
Direct3D8にはカリング機能がありますよ。SetRenderState()で設定できます。
それとも自前でやろうとしているのでしょうか?
サンプルソースについてもっと詳しい説明を頂ければなにかアドバイスできるかもしれません。
質問があります。
Direct3D8で「頂点キックするけど描画キックしない」ことってできますか?
これができれば複数のストリップを1つに繋げてしまえるのですが。
どなたかアドバイスお願いします。
■削除は、[削除]欄をチェックして、投稿時に設定した削除キーをすぐ上の欄に入力してボタンを押します.
■削除キーが合致しない記事は削除されません.
■削除キー欄にマスターキー(管理者のみ)を入力するとすべての記事の削除が可能です.