トップページgamedev
1001コメント343KB

出し惜しみせずに3Dの技術を誰かが答えます

■ このスレッドは過去ログ倉庫に格納されています
0001101/11/15 21:43ID:EsRJgfGr
3Dで解らない事や気になる技術の具体的内容を
誰かが答えます。
じゃんじゃんネタ振ってくれ。

俺も業界で飯食ってるが知ってる事は出し惜しみせずに
答えるよ。みんなでレベルアップしようぜ。

とりあえずBBXとBio120%の過去ログは見とけ。
0162名前は開発中のものです。01/12/04 23:17ID:???
>>161
masaさんのページ見たけど、
その式はどうやって導出したものか説明がないですね。
教えて欲しい。
0163名無しサソ01/12/04 23:39ID:???
>160
 いや、別にむかついた訳じゃないんだけど・・・
話題がちゃんとでていたのだから、>156でもうちょっと
分からないことを絞って欲しかっただけだよ。気分を
害したのなら申し訳ない。マターリと行こう。

 と言うわけで折角だからソース公開。汚いけど気合いで
読んでもらえると幸い。

D3DMATRIX vmat,wmat //vmat:ビュー変換行列 wmat:モデル変換行列
D3DVECTOR v,half; //v:単位化した頂点座標 half:ハーフベクトル
WORD a = *pTIndices; //頂点のインデックスを取得

wmat = *pMatrixStack->GetTop(); //モデル変換行列を取得
pd3dDevice->GetTransform( D3DTRANSFORMSTATE_VIEW,&vmat); //ビュー変換行列を取得
v = *((D3DVECTOR*)&pVertices[a]); //モデルの座標を取得
D3DMath_VectorMatrixMultiply(v,v,wmat * vmat); //ビュー座標への座標変換
v = Normalize(v); //vの単位ベクトル化
half = v;
half.z -= 1.0f; // vに視点ベクトルを足してハーフベクトルを算出
half = Normalize(half); //ハーフベクトルの単位化
m_pTLVertices[NumVertices].sx = half.x * 0.5f + 0.5f;
m_pTLVertices[NumVertices].sy =-half.y * 0.5f + 0.5f;
m_pTLVertices[NumVertices].sx *= viewport.dwWidth;
m_pTLVertices[NumVertices].sy *= viewport.dwHeight; //テクスチャのUVテクスチャ座標に変換

こんな感じ。
0164名無しサソ01/12/04 23:41ID:???
 補足:zの値は距離の絶対値で取っているけど、平方根は
重そうなので2乗のままで保持していたり。この辺は適当で良いかも。

 ただ、ライティングはこのままだと不可能。個人的にはやっても意味は
あまり無いと思っているので、していない。
0165名前は開発中のものです。01/12/05 00:53ID:o0Rw16Fu
>ただ、ライティングはこのままだと不可能。個人的にはやっても意味は
>あまり無いと思っているので、していない。

あ、やっぱり。シェーダー考えるとライティングどうしようかなぁ
って思ってた。クランプとかいろいろちゃんとやると結構速度低下
するから省くか頂点カラーかどっちかがいいかなと。
でもアンビエントぐらい足してやりたいなぁ。
0166名前は開発中のものです。01/12/05 01:06ID:???
BRDFってGeForce3だとリアルタイムでいけるのか?
最近よくBRDFって聞くから気になる。
http://tom.g-micro.co.jp/graphic/01q1/010227/geforce3-23.html


#そういや半球ライティングとかの説明が出てた。
#DIYライティングが気になる。
http://www.microsoft.com/japan/developer/directx/welcome/dsmsdn/directx11192001.asp
016716001/12/05 01:30ID:???
>>163 うおおお!ソースまで公開してもらって感激っす〜。
早速、教えてもらった部分を理解できるよう努力します。
#見ただけではすぐに理解できない辺りが・・・
俺的に今年度最高の名スレ&名レス認定。

>>161 教えて君で申し訳ない。
元々数学的素養が欠如してるので最近の3Dマンセーな開発事情は
辛いんですよ…いや、飯の種なんで頑張りますけどね。鬱氏。
0168名前は開発中のものです。01/12/05 01:35ID:???
>>162

ひょっとしてこれって説明じゃ。
http://www.opengl.org/developers/code/sig99/advanced99/notes/node177.html#s.equation
0169名前は開発中のものです。01/12/05 02:03ID:???
>>164
vの正規化の時点で距離は求まってるから、それを利用するといいかと。

それと、ライティングはオブジェクト空間で計算するといいですよ。
法線を変換するのではなくて、ライトをオブジェクト空間に変換します。
描画前に1回だけライトを変換すればいいので、法線を変換するよりも
計算量が少なくなります。スキニングとかの関係でオブジェクト空間では
処理できない場合もありますけど。
(いま書きかけのシェーダー関係のhtmlに全く同じ事書いてあるから、ます
ます身元がばれてしまうな)
0170名無しサソ01/12/05 02:14ID:???
>160
 プロの人?となると将来何かいい結果が目に見えて
生まれるのかな?期待してます(笑)

>169
 あ、Z値はどうにかしてますです。上のコードには簡単の
為に書いてないだけで。あと、ライティングは実用では
わざわざする程の効果はあるのかな、と。ちゃんとする
のであれば、オブジェクト座標系が多分効率がいいでしょうね。
0171名前は開発中のものです。01/12/05 10:47ID:DEoHzlOJ
>>160
マジでお金貰ってコード書いてる人?
それだけが知りたい。
017216001/12/05 11:37ID:???
そうですが、あまりつっこまないで・・・
まぁ、プロにもピンからキリまであるって事っすよ。
低層プログラマの憂鬱・・・鬱出汁脳
0173名前は開発中のものです。01/12/05 13:27ID:???
http://www.xbox.com/projectgothamracing/default.htm?det=1

動的環境マップをやるならこれくらいやらないと。
ムービーで確認せよ。
0174名前は開発中のものです。01/12/05 14:19ID:???
>>173 これってXBOXってことはCube環境マップ?
ハードに任せりゃできるってんなら、それでもいいんだけどな
0175名前は開発中のものです。01/12/06 22:07ID:???
某氏が反応していたのでコピペしとこう。
このスレいい資料になりそうだ。

>>149
双放物面のクリッピングで、環境マップ空間のZ座標をアルファに入れて
アルファテストで処理するというのは、僕のアプローチにかなり近いです。
ただ、僕のデモでは、ヘリコプターのプロペラの部分に既にアルファを
使っているので、代わりに texkill を利用しています。

注意すべきことは、頂点座標が非線形変換されるため、
線形補間されるZ座標が必ずしも正しい値にはならないということです。
うまく処理しないと、単位円の内部でクリップされてしまう場合があります。

あと細かいことですが、双放物面マッピングは View-Independent なので、
カメラ空間と環境マップ空間のZ軸が一致する必要はないですね。通常は、
環境マップ空間とワールド空間の基底を一致させると使いやすいと思います。
キューブマップの場合も、そうすることが多いですよね。
0176名前は開発中のものです。01/12/06 22:16ID:???
ノクターンのボリューメトリックソフトシャドウって
どうやってやるんだろうね?

http://www.nocturnegame.com/screensbig/set2-3.html

「各ピクセルについて、各光源からの明るさの寄与を計算して
アルファ部に足していき、最後にピクセルの色にアルファ部を乗算する」
これがNocturneの照明システムの基本だそうで、「光源からの光が他の
ポリゴンに遮蔽されていれば、光源からの明るさの寄与が少なくなるため、
結果的に影になって見える」という理屈です。
#BBXの記事より。
#他に資料ない?
0177名前は開発中のものです。01/12/06 22:36ID:???
コピペはやめれ。
リンクだけにすれ。
0178あっちのROM(スマ01/12/06 23:00ID:???
リンクもやめてくれえ。
0179名前は開発中のものです。01/12/07 00:26ID:???
コピペは止めるけどリンクはいいっしょ?
だって個人ページの掲示板や日記からもリンクしてるし。
0180名前は開発中のものです。01/12/07 00:48ID:???
|    ____   ジー…
|   /::::::::    ヽ
| /::::::::      彡彡彡
| /::::::::::  ヽ     彡彡彡
|/::::::::          ヽ
|::::::::   ノ   ヽ   |        ∧         ∧
|::::::::::           |        / ヽ        ./ .ヽ
|:::::: ヽ        /        /   `、     /   ヽ
|:::::::         /        /       ̄ ̄ ̄     \
|::::::::::      /         l:::::::::   /      \   .l
|::::::::     /          |::::::::::                  |
|::::::::     /            |:::::::::::::::::   \___/    |  >>179 変なAA貼られたりすんのが嫌なんじゃない?
|       /            ヽ:::::::::::::::::::  \/     ノ
|      /              丶::::::::          ノ
0181名前は開発中のものです。01/12/07 01:34ID:???
>>175
その某氏だが、引用元を明かさずコピペしたことにご立腹だ。
とりあえず逝って謝ってこい!
#BBSじゃなくてメールでな。下らん謝罪であっちのBBSを汚すなよ
0182名前は開発中のものです。01/12/07 01:50ID:???
そんなん言ってもここは匿名掲示板だぞ?
引用元を隠した配慮ってやつだったんだけどね。
それじゃココでやったんだしココで謝る。
このスレに反応してくれてたんでせっかくだから
コピペしとこうと安易に考えちゃった、てへ。
今後はしないから許してね〜。
0183名前は開発中のものです。01/12/07 05:14ID:???
>>182

ま、コピペなら引用元を隠す配慮になるってーのも都市伝説だから。
数週間待てば検索エンジンで大抵出てくるんでね。みんなやってる。
0184名前は開発中のものです。01/12/07 06:49ID:???
引用元と引用部分を明確にしないと著作権法にひかっからないか?
とか言ってみたりして
0185名前は開発中のものです。01/12/07 07:31ID:???
まあ2chも無法地帯ではないっつーことで
0186名前は開発中のものです。01/12/07 08:03ID:???
>>182-183
「引用元を隠す」ことが、誰に対する「配慮」になるのですか?

日本人は、欧米に比べて引用 (quotation) に対する認識が甘いな。
0187名前は開発中のものです。01/12/07 08:22ID:???
しかし某氏もデュアルほにぁららか言って出し惜しみ
っぽいところがあるのが見てて嫌だな。
もう少し自分のところで日本語でしっかり情報を
まとめてくれればなぁ。
0188名前は開発中のものです。01/12/07 11:56ID:XSYO4iDK
        ∫
   ∧,,∧ ∬       / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
   ミ,,゚Д゚ノ,っ━~  <  >>187 中学生かお前は。
_と~,,,  ~,,,ノ_. ∀  \_________
    .ミ,,,/~),  .| ┷┳━
 ̄ ̄ ̄ .し'J ̄ ̄|... ┃
 ̄ ̄ ̄ ̄ ̄ ̄ ̄   .┻
0189名前は開発中のものです。01/12/07 11:57ID:???
>>187 しかし、どの程度自分の知識を披露するかは
完全にその人にゆだねるしかないからな〜。
無知な奴は知識のある人に頭下げてお願いするしかないのが普通だろ?
ましてやアカの他人匿名でがその人を出し惜しみとか言うことじたい、
お前何様よ?って感じなんだが。

日本語にまとめてくれとか言う暇あったら英語勉強して
あっちのサイト漁ればもっと有益な情報はいくらでもあるぞ。
#そういう俺も英語はさっぱりなんだが・・・。鬱氏。
0190名前は開発中のものです。01/12/07 12:03ID:???
>>186

はいはい。
煽り合戦でお祭りやりたきゃ他所でな。
0191名前は開発中のものです。01/12/07 12:55ID:???
Dualほにゃららマッピングの解説ページ発見したぞ。
OpenGLだが。Kano氏のやり方とはまた違うアプローチのような・・・
http://www.nada.kth.se/~gustavt/dpm/
0192名前は開発中のものです。01/12/07 16:43ID:???
>>191
見たきたけど全く同じに見えるが。
DualParaboloidはHeidrichの論文見るのが一番分かりやすいかと。
実装するのは簡単だから、いちいち日本語で説明するほどの内容じゃないよ。

あと、そこのページだと2パスで描画しているけど、マルチテクスチャ使えば
1パスで済むよ。2パス描画になると半透明にしたときに使えないから駄目。
0193名前は開発中のものです。01/12/07 18:54ID:???
2パスってのは前と後ろのDualParaboloid用の
テクスチャがすでにあった状態で、その2つを
1回の描画でターゲットに貼り付けるって事でよい?
0194名前は開発中のものです。01/12/07 19:30ID:???
ミスった。2パスじゃなくてマルチテクスチャだと
1回の描画で?と聞きたかった。
そういや前誰かがテクスチャ領域の右と左で
前後のテクスチャ用意して1パスで描画するとか
言ってたような気がしたがそれもありか。
0195名前は開発中のものです。01/12/07 19:45ID:???
Heidrichも某氏掲示板の人も動くソースを出してない。
>>191は参考になる。
0196名前は開発中のものです。01/12/07 20:03ID:???
実装は簡単だろうと知らない俺にも参考になる。
>>191はエライよ。
0197名前は開発中のものです。01/12/07 21:31ID:???
>>191の内容って
これと同じ?
http://www.opengl.org/developers/code/sig99/advanced99/notes/node186.html
>>139の次ぎのページだけど
0198名前は開発中のものです。01/12/07 22:20ID:???
>>192
よく見ないで書いてるでしょ。
>>191はマルチテクスチャ版もあるよ。
0199名前は開発中のものです。01/12/07 22:22ID:???
>>197
>>191はそれとHeidrichの論文を参考にしてる。
020019201/12/07 23:45ID:???
下の方はマルチテクスチャだったのね。上しか見てなかった。
ところで、あそこの行列はHeidrichのと少し違うけど、テクスチャが上下逆さま
なのはその影響なのかな?
0201名前は開発中のものです。01/12/08 01:31ID:???
DualほにゃららマップのDirectX版デモ(ソース&日本語解説付き)があるページきぼん<消防な俺
0202名前は開発中のものです。01/12/08 08:42ID:???
>>201
まだない。
このスレ見てる人がすぐに作ってくれると思うけど。
0203名前は開発中のものです。01/12/08 15:35ID:???
たぶん大多数の人はDirectX使ってると思うから
みんなそっちに変換しながら組んでるでしょ。
すでに実装までいった人も何人か居るみたいだし。
0204Mark01/12/10 02:18ID:???
Hi Japanese programmer guys!

Gustav Taxen is using a circular texture to mask dual-paraboloid maps.
His approach, however, inevitably leads to a certain artifact.

In a +Z paraboloid map, infinite homogeneous texture coordinates such as
(s, t, q) = (1, 0, 0) or (-2, 1, 0) actually represent the identical -Z direction.
Therefore, given that the three reflection vectors at the vertices of a triangle
are near to (0, 0, -1), each of the corresponding non-homogeneous texture
coordinates gets extremely large. As a result, they can surround the circle of
the mask in some circumstances.

Since the rasterizer of today's GPUs always interpolates texture coordinates
linearly, values interpolated between such coordinates can fall into the circle,
which means that the mask has a small "hole" in the -Z direction.

Such an artifact can be observed in Kano's OpenGL sample, which I guess
justifies the fact that he is using the same method as that of Gustav.

What is important to note here is that, should you choose the view vector
as the -Z axis of the environment map space, the hole would be invisible.
However, it might contradict view-independency of dual-paraboloid mapping.

What do you think of that?
0205名前は開発中のものです。01/12/10 04:19ID:???
markがsageてる…
0206名前は開発中のものです。01/12/10 04:23ID:???
(・∀・)sage kakoii!!
0207名前は開発中のものです。01/12/10 06:46ID:???
この間ロボット系研究室で見た全方位センサに用いられてるカメラ
ttp://www.vstone.co.jp
の画像処理の逆変換みたいな話題でしょうか。英語は何とか読める
けんど、ヤパーリ不勉強ゆえ話についていけんですばい。くやちい。
0208名前は開発中のものです。01/12/10 10:22ID:???
>>204 Mark Kligard先生の降臨ですか?(ワラ
あの人って日本語読めるのかな?ましてや2ch・・・
mark : "鬱"and"逝ってよし"are What meaning?.
0209名前は開発中のものです。01/12/10 11:44ID:???
「today's GPUs」ってあたりが妙に本物っぽいな(藁
0210名前は開発中のものです。01/12/10 19:27ID:x8sYCeA4
つうか>>204って日本語解説くれだのソースくれだの言ってる阿呆に対するイヤミじゃないの?
本物だったら藁うな
0211名前は開発中のものです。01/12/10 19:35ID:???
204がしびれを切らせて出てきたよ
0212名前は開発中のものです。01/12/10 20:34ID:???
>Kano's OpenGL sample
ここ見てる某氏も無反応だから偽者か。
メアド書かずにsageてるのも気になるし。
0213名前は開発中のものです。01/12/10 20:38ID:???
もし本物なら某氏がリンク張ったのが原因かもね。
0214名前は開発中のものです。01/12/10 21:47ID:z44JyALI
http://www.excite.co.jp/world/text/

外国の人もエキサイトのWeb翻訳で日本語のページ翻訳すれば読めるよ。
0215名前は開発中のものです。01/12/10 23:59ID:???

             ∧_∧   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
            ( ´Д`) <  >>204って、本物のキルガード先生なのかなぁ
            /    \  \___________________
        _   || ∬ ||
       |\ ̄ ̄ ̄ 旦  ̄ ̄ ̄ ∬
───/ \\        ○ ○ 旦 \──、 ∧_∧   / ̄ ̄ ̄ ̄ ̄ ̄
    /    \| ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|.    ( ´Д`) <  ンナワケネーダロ
   (      ノ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ \〜⌒ヽ /つ   \______
    \                      \ \ \/
      \                     )- \.二二つ ''.○,,
        ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄      \
\                                   \
   ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
0216名前は開発中のものです。01/12/11 06:48ID:???
きるがーどせんせい登場記念カキコ!
0217名前は開発中のものです。01/12/11 10:01ID:???
正解

まーくぱんさーでした。
0218名前は開発中のものです。01/12/11 12:17ID:???
             ∧_∧   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
            ( ´Д`) <  >>215 クリガードって読むんじゃないのかなぁ
            /    \  \___________________
        _   || ∬ ||
       |\ ̄ ̄ ̄ 旦  ̄ ̄ ̄ ∬
───/ \\        ○ ○ 旦 \──、 ∧_∧   / ̄ ̄ ̄ ̄ ̄ ̄
    /    \| ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|.    ( ´Д`) <  ソットシトイテヤレヨ
   (      ノ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ \〜⌒ヽ /つ   \______
    \                      \ \ \/
      \                     )- \.二二つ ''.○,,
        ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄      \
\                                   \
   ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
0219名前は開発中のものです。01/12/11 12:39ID:???
http://www.google.com/search?q=Mark+Kilgard
× http://www.google.com/search?q=Mark+Kligard
022021801/12/11 15:51ID:???
>>219
Mark.J.Kligardってのがいるが、そいつと勘違いしてたYO。鬱
0221名前は開発中のものです。01/12/11 16:49ID:/6cvr9CK
つうか結局誰も答えられず、か
まぁそんなもんか
オレモナー
0222名前は開発中のものです。01/12/11 19:27ID:YDoecQvD
アフィン変換とかっていうのにでてくる「ウェイト」ってなんの為にあるのですか。
0223名前は開発中のものです。01/12/11 20:22ID:???
かんきょうまっぴんぐのおはなしはおしまい。
これからはうぇいと。
0224名前は開発中のものです。01/12/11 20:52ID:???
英語なんてドキュメントが理解出来れば十分だよ、
ってのに納得してた自分に鬱。
そういや任天堂は英語がいるんだったよな。
0225名前は開発中のものです。01/12/12 09:23ID:???
>任天堂は英語がいるんだったよな

2ちゃんの中の常識は実情と(以下略)
0226名前は開発中のものです。01/12/12 11:37ID:???
アフィン変換でウェイトなんて出てきたっけ?
0227名前は開発中のものです。01/12/12 13:38ID:HU6fPkXY
同次座標のwの事を言いたいんだろうか?
どこかでウェイトって呼んでる人を見かけたことある。
0228名前は開発中のものです。01/12/12 17:32ID:pq/RIp0+
>>227
…マジで…。

俺はてっきりジオメトリのブレンディングウェイトのことかと思った。
0229名前は開発中のものです。01/12/12 17:33ID:cNfXz7Tc
>>227
はい。そのwの事です。
0230名前は開発中のものです。01/12/12 19:51ID:wJ1KFxIX
なぜウェイトと呼ぶ人がいるのか小一時間考えてみた結論はこうだ

wだから
0231名前は開発中のものです。01/12/12 20:18ID:???
>>230
同次座標 (x, y, z, w) の w 座標そのものを重み (weight) と呼ぶのは適切ではないが、
(x, y, z, 1) と (xw, yw, zw, w) を比較したときの w を重みと呼ぶのはある意味で正しいと思う。
同次座標の (x, y, z, 1) と (xw, yw, zw, w) は単一の点としては等しい位置を表すが、
各種の補間(線形、多項式など)を適用する際には w が重みのような役割を果たす。
すなわち、w が大きい点(制御点)に引き込まれる傾向が見られるのである。

有理ベジエやNURBS(非一様有理Bスプライン)などの有理曲線(曲面)は
この同次座標の w による「重み」を巧みに利用した応用例であるとも考えられ、
非有理(=非同次)の多項式曲線(曲面)に比べて自由度の高い表現を可能としている。
また、テクスチャ座標の線形補間におけるパースペクティブ補正に関しても、
「重み」という視点から見直してみると、直感的な理解が深まるかもしれない。

ところで、個人的に、>>204は出し惜しみのない貴重な情報だと思うのだが、
議論が続かないのは大変残念なことである。(´・ω・`)ショボーン
0232名前は開発中のものです。01/12/12 22:49ID:pq/RIp0+
>>231
>ところで、個人的に、>>204は出し惜しみのない貴重な情報だと思うのだが、
>議論が続かないのは大変残念なことである。(´・ω・`)ショボーン
お願い、翻訳して…。(´・ω・`)ショボーン
0233名前は開発中のものです。01/12/12 22:52ID:???
リアルタイムのゲームで使用出来るぐらい速度が
出るグローバルイルミネーションって何かありますか?
フォトンマップ、BRDF、Radiance、Irradianceとか
単語を目にする事はあるけど良くわからない。
せっかくプログラマブルシェーダーがあるんだし
使えそうなのを1個作ってみたいな。
0234名前は開発中のものです。01/12/12 22:59ID:NAdilT/Q
半球光源(簡易ラジオシティ?)っていうのが非常に魅力的なんですが、
これってやぱ相当重くなります?
0235名前は開発中のものです。01/12/13 00:24ID:9Fg1SxEM
>>233
グロバールイルミネーションで演算した結果を、
頂点カラーに焼き付ける。これ最強。
プログラマブルシェーダーも大活躍!!

…というか基本から勉強しなおしてください。

>>234
半球光源の公式みればどれぐらいのコストがかかるか
わかると思うのですが…

…というか基本から勉強しなおしてください。
0236名前は開発中のものです。01/12/13 00:36ID:???
>グロバールイルミネーションで演算した結果を、
>頂点カラーに焼き付ける。これ最強。

そんな何年も前からあるようなテクの話じゃないだろ。
今は環境マップやバンプを利用すんだよ。

・・・というか応用を勉強してください。
http://www.microsoft.com/japan/developer/directx/welcome/dsmsdn/directx11192001.asp
023723401/12/13 00:39ID:???
うーん。オイラグラフィカなんだけど・・。

ってかBRDFラジオシティレンダリングした結果を頂点に焼き付ければいいんだ!
うーんそれ自体わすれてたよ!ありがとう!

でもかなりポリゴン数が
023823401/12/13 00:43ID:???
>>236
そうそう!コレ見て質問したんだおれー

LWのBRDFラジオシティって凄く時間かかるけど、
なんでおんなじような結果がリアルタイムでできるのかがわからない。

LWで光線評価の品質下げたらマダラ模様が凄くてつかえなかった
0239偽まーく01/12/13 00:50ID:???
やあ、2chのプログラマー諸君!

Gustav Taxenたんは2つの半球マップを覆うために
円形のテクスチャを使用しているんだけど
彼の手法は必然的にある結果に行き着くんだYO!それは・・

+Z(上半分?)の半球マップで、無限大の同次テクスチャ座標は
(例えば(s, t, q)=(1. 0, 0) とか (-2, 1, 0)みたいな)
実は−Z方向(下半分の半球?)に一致してしまうんだYO!
そんなわけだから、三角形の座標の三つの反射ベクトルが
(0, 0, -1)に近づいたとすると、それぞれに対応する
非同次テクスチャ座標は極端に巨大になってしまうのさ!
その結果、それらはいくつかの状況で円形のテクスチャを取り囲むんだ。

今時のGPUたん(;´Д`)はいつでもテクスチャ座標を
線形補完してくれるから、座標間で補完された値は
円内に収められるのYO。
(つまりその−Z方向の半球のマップは小さな”穴”を持ってるわけだ)

このような結果(事実)はKANOたんのOpenGLサンプルで
観察できるYO。
(これは彼がGustavたんと同じ手法を使ってることを証明していると
 漏れは思うわけで。)

ここで注目すべき要点は!
環境マップ座標系の−Z軸のような視点ベクトルを選ぶとこの穴は見えない。
したがって、2つの半球マッピングの視野からの独立性は否定される!!

これってどう思うよ??
0240名前は開発中のものです。01/12/13 00:53ID:???
頂点焼付け系
・前計算なので比較的コスト安
・オーサリング後の自由度低し

計算結果をテクスチャに埋め込み系
・光源計算用にテクスチャステージ消費。マルチテクスチャ系サポートしてないハードではイタイ。
・頂点焼付けより自由度が高い照光モデル。リアルタイムに光源が動かせる。

みたいな感じの理解でOKかな?
0241偽まーく01/12/13 01:03ID:???
ごめん。適当すぎた。ラスト修正

ここで注目すべき要点は!
環境マップ座標系の−Z軸のような視点ベクトルを選ぶとこの穴は
見えないけど・・・
でも2つの半球マッピングの視野からの独立性は否定されんじゃネーノ??

これってどう思うよ??
0242名前は開発中のものです。01/12/13 01:03ID:???
~C氏がirradiance mappingを実験してたね。
正直スゲーいけてんじゃん!って思ったね。
平行光源だと式が小さくなって光源数も増やせると
いうのがリアルタイムへの可能性を感じる。

元ネタはこのへんか。
http://graphics.stanford.edu/papers/envmap/
0243名前は開発中のものです。01/12/13 01:08ID:???
>偽まーく
お疲れ様。
ところで"穴"ってどんなの?
極点ってのは理解してたんだけど。
kano氏のサンプルをもっかい見れば確認できるのか?
0244名前は開発中のものです。01/12/13 01:12ID:???
PS2のICOは焼付け系だよねぇ?
0245名前は開発中のものです。01/12/13 01:13ID:9Fg1SxEM
>>236
いっとくけど、頂点カラーの話はネタだよ。(というか基本中の基本)
プログラマブルシェーダーでできることとできないことが
理解できていないようだから、勉強しなおしてと言ったまで。
でもまあグラフィッカーさんならしょうがないか。

で、そのリンク先、
グローバルイルミネーションや、BSSRDFと何か関係あるの?
0246名前は開発中のものです。01/12/13 02:16ID:???
みんな見てるサイトも興味あるネタも同じだね(藁
0247名前は開発中のものです。01/12/13 02:25ID:KEVK9ex/
>>236
それの半球ライディングさー、
面が受ける光の量とかはまあ適当に分かるんだけど、
フォームファクタの算出(遮蔽データの算出)をどうやってるのか分からないんだよねー。
これだけは先に計算してあるの?
だとしたら幻滅。
リアルタイムだったら驚愕。

誰か分かる??
0248名前は開発中のものです。01/12/13 02:30ID:???
遮蔽データの算出はリアルタイムではない。
024924701/12/13 02:42ID:KEVK9ex/
さんきゅー。
やっぱねぇ…、無理だよねぇ…。
0250名前は開発中のものです。01/12/13 02:58ID:???
>>243
環境マップ空間の−Z軸の方向に、ちゃんと「穴」が見えるよ。
0251名前は開発中のものです。01/12/13 08:53ID:???
HALO影、ICO影について教えてください
どっちも見たことありませんが影がすごいらしいので。
0252名前は開発中のものです。01/12/13 10:40ID:kTlnGkJZ
同次座標というのは、「x座標y座標の図」みたいな感じで図にできるものなのですか?。
0253名前は開発中のものです。01/12/13 11:02ID:???
>>252
こことか見れ。
http://www.cc.rim.or.jp/~devilman/3dCoding/3dMatrix.html
#wをウェイトっていうのはここが元ネタか?
#途中にそういう記述があるけど・・・
0254名前は開発中のものです。01/12/13 13:48ID:???
>>239 >>241
内容を理解しないで中途半端に翻訳するのはやめれ。

>>253
宇治社中は、ときどき間違いっぽいことが書いてあるので、
常に疑いながら読まないとひどい目に会うよ。
#初心者がいきなりあれを読むと、かえって誤解を招きかねない。
#かといって、他に同様の日本語資料がないのも事実だが。
0255名前は開発中のものです。01/12/13 14:39ID:???
>>248
リアルタイムじゃないのか…。
じゃあオブジェクト動かしたら破綻という意味で、
頂点焼き付け系と同じだな…。
びっくりして損した。
0256名前は開発中のものです。01/12/13 14:56ID:???
>>255
いや、遮蔽項の持たせ方次第では、動的に半球光源を
動かしたりオブジェクトを回転させたりできるはず。
0257名前は開発中のものです。01/12/13 15:20ID:???
>>254
なら訳してくれよ。
読んでも違いが分からない段階の人は
文句を聞いてもただよけい不安になるだけだ。
読んで違和感を感じられる段階の人ならすでに解っている。
文句を言うだけなら意味が無い。
0258名前は開発中のものです。01/12/13 15:51ID:???
>>254
3D野郎によくいる他人の小ミスを見つけて掲示板でコソコソ皮肉るのが得意な人ですか?
025925401/12/13 16:49ID:???
>>257
とりあえず訳してみたぞ。
多少直訳っぽくなってしまったが、解釈自体は間違っていないと思われ。
#Kano氏の訳語を尊重して、「dual-paraboloid」は「双放物面」とした。

――――――――――――――――――――――――――――――――――――
204 :Mark :01/12/10 02:18 ID:???
こんにちは、日本のプログラマの皆さん!

Gustav Taxenは、円形のテクスチャを使って、双放物面マップをマスクしています。
しかし、彼のアプローチでは、必然的にあるアーティファクトが起こってしまいます。

+Z側の放物面マップにおいて、(s, t, q) = (1, 0, 0) や (-2, 1, 0) のような無限大の
同次テクスチャ座標は、実際には同一の−Z方向(Z軸負の方向)を表します。
したがって、三角形の頂点における3つの反射ベクトルが (0, 0, -1) の近くにある場合、
各々の対応する非同次テクスチャ座標は極めて大きな値になります。その結果、
場合によっては、それら(=3つのテクスチャ座標)がマスクの円を囲んでしまいます。

今日のGPUのラスタライザはテクスチャ座標を常に線形補間するので、そのような
(=円を囲むような大きな)座標間で補間された値は、円の内部に陥る可能性があります。
このことは、マスクが−Zの方向に小さな「穴」を持っていることを意味します。

このようなアーティファクトは、KanoのOpenGLサンプルで観察することができます。
これは、彼がGustavと同じ方法を使用しているという事実を正当化していると思います。

ここで注意すべきことは、環境マップ空間の−Z軸として視線ベクトルを選択すれば、
穴が見えなくなるということです。しかしながら、この選択は、双放物面マッピングの
視点独立性と矛盾することになるかもしれません。

以上のことについて、皆さんはどう思われますか?
――――――――――――――――――――――――――――――――――――
0260名前は開発中のものです。01/12/13 17:21ID:QaLhsQao
>>256
>遮蔽項の持たせ方次第では、動的に半球光源を
>動かしたりオブジェクトを回転させたりできるはず。
要するにラジオシティで頂点焼き付けを行ったオブジェクトにライトを照らしました」ということでしょ?
確かに宙に浮いてる単体オブジェクトの回転程度なら出来るけどさ。
そこに床なんて置いたら一発で浮いちゃうから動かせない。
出来れば簡略的でもいいからフォームファクタのリアルタイム算出を実現して欲しい(無理か…)

半球ライディング自体は目新しいけど、
遮蔽項無しの時点の画像がそれほどリアルに見えない以上、
一瞬芸のように見えなくも無い。
0261名前は開発中のものです。01/12/13 18:04ID:???
話が進みそうで進まないこの微妙な空気・・・
■ このスレッドは過去ログ倉庫に格納されています