1 名前:デフォルトの名無しさん [2006/08/10(木) 04:50:09 ] DirectXやOpenGL、あるいは言語などにとらわれず、 純粋に3Dグラフィックスのプログラミング技術(アルゴリズムや数学など) について語るスレです。
266 名前:デフォルトの名無しさん mailto:sage [2007/08/12(日) 19:42:06 ] 頂点数の見込みは? AとBは2つだけ?それともまだ他にある?
267 名前:デフォルトの名無しさん mailto:sage [2007/08/12(日) 20:29:04 ] 多角形の凹凸を気にしないなら簡単だね。
268 名前:デフォルトの名無しさん [2007/08/12(日) 20:37:20 ] 複数面を想定しています。 凸凹を気にしないとは?
269 名前:デフォルトの名無しさん mailto:sage [2007/08/12(日) 20:43:14 ] >>268 たとえばこういう場合はどうしたいの? 統合したら凹多角形になるけど ○ ○ |\ /| | \ / | | \ / | | ○ | | A |. B .| | | | ○───○───○
270 名前:デフォルトの名無しさん [2007/08/12(日) 20:47:00 ] ○ ○ |\ /| | \ / | | \ / | | ○ | | A B .| | | ○───○───○ ですね。 要は複数の面が一つの面になるようにしたいです。
271 名前:デフォルトの名無しさん mailto:sage [2007/08/12(日) 20:50:18 ] 凹凸を気にせずに単に外周をとりたいということか
272 名前:デフォルトの名無しさん mailto:sage [2007/08/12(日) 20:52:32 ] >>270 ソリッドモデル 境界表現法 でググれ
273 名前:デフォルトの名無しさん mailto:sage [2007/08/12(日) 20:56:01 ] >>268 でこぼこワロタ
274 名前:デフォルトの名無しさん [2007/08/12(日) 22:14:57 ] >>271 そうなりますね。 >>272 ググってみましたが、 ちょっと理解しずらいです。 今回のケースの場合、 どうすればよいのでしょうか?
275 名前:デフォルトの名無しさん mailto:sage [2007/08/12(日) 22:17:02 ] 2つの形状が必ずぴったり隣接してるのなら、表裏だけ違う同一の2面を単に取り除けばいいんじゃないか。
276 名前:デフォルトの名無しさん mailto:sage [2007/08/12(日) 22:20:08 ] >>274 条件が少なすぎる Z座標はなくてもUVとか全部ずれるぞ もっと全体のやることを掲示してくれ 後付けでZはありませんとか大事なこと後だしで出してるところからいって お前が重要だと思い込んだ内容しか出せてないだろ? この状態で返事はできん
277 名前:デフォルトの名無しさん [2007/08/12(日) 22:34:40 ] >>275 隣接しています。 (ぴったり隣接しなくても結合できる方法があれば知りたいです。) 取り除きたいのですが、 隣接(=頂点が同一で2点以上になる辺)の 部分の判断方法がわからないのです。 例では2面だけ示していますが、 複数の面が隣接するケースもあるとしてください。 >>276 言葉たらずですみません。 条件ですが、 ・2次元(2D) ・複数の面が空間上に存在。 ・面は全て同じ頂点でなく、いろいろな凸凹面が存在。 ・1つの面の頂点数は10〜100程度になりそうです。 ・それぞれの面で隣接しているオブジェクトを一つの面として変換。 です。
278 名前:デフォルトの名無しさん mailto:sage [2007/08/12(日) 23:23:10 ] >>277 くっついてるかどうか見るのは辺だけじゃないの?
279 名前:デフォルトの名無しさん mailto:sage [2007/08/12(日) 23:36:59 ] まず、点・辺・面の定義について勉強してくれ。 用語の使い方が間違ってるから、言ってることがめちゃくちゃ。
280 名前:デフォルトの名無しさん mailto:sage [2007/08/12(日) 23:42:42 ] >>279 そこまで戻らなくてもいいような・・・
281 名前:デフォルトの名無しさん mailto:sage [2007/08/13(月) 00:17:00 ] でも正直もうちょっと勉強してから質問した方がいい気はする・・・ 今の状態で解るように説明するのって難しいんじゃない? 案外用語整理したら解き方思いつくかも
282 名前:デフォルトの名無しさん [2007/08/13(月) 00:21:57 ] >>279 すみません。 明確なことは「二つの面を一つの面に変換する」です。
283 名前:デフォルトの名無しさん mailto:sage [2007/08/13(月) 00:39:02 ] >>282 実はすっげ面倒じゃね? めちゃくちゃでっかい三角形2ポリで構成された四角形に隣接する めちゃくちゃちいせぇ三角形って単純な方法じゃくっつかないだろ?w
284 名前:デフォルトの名無しさん [2007/08/13(月) 01:34:26 ] >>283 外周の頂点だけ抽出できればいいのかなと思うのですが、 その判断が想像つきません。。
285 名前:デフォルトの名無しさん [2007/08/13(月) 01:43:42 ] >>284 とりあえず面1と面2の共有頂点でなければ外周の頂点候補じゃねの?
286 名前:デフォルトの名無しさん [2007/08/13(月) 08:25:38 ] >>285 そうですね。 ただ、共有頂点の一部(面1と面2のどちらか)は 外周として扱わないと、同一の面は維持できないですよね。 両方の頂点座標で同一の座標値を持つインデックスを走査したとして、 それが共有頂点で外周として扱う必要である頂点か否かの判断方法が 思いつかないのです。
287 名前:デフォルトの名無しさん mailto:sage [2007/08/13(月) 08:40:41 ] >>286 そりゃなんとかなりそうじゃねぇの? だって条件があるじゃん 頂点が共有頂点にしかつながってなかったらそれは消滅候補だな とりあえず上の条件だけで共有頂点をとっぱらって循環してない共有頂点も消滅候補だな で、だいたい消えるんじゃねぇの? つか、紙に書いて考えてみた?
288 名前:デフォルトの名無しさん mailto:sage [2007/08/13(月) 10:32:27 ] 最終的につながった形がでけー四角形に穴が開いてる形になったらどうすんだろうな?
289 名前:デフォルトの名無しさん mailto:sage [2007/08/13(月) 12:07:44 ] 元質者は具体例のイメージができてナインジャマイカ?
290 名前:デフォルトの名無しさん mailto:sage [2007/08/13(月) 12:12:03 ] ここまでの議論をまとめればレポート完成です。 ありがとうございました。
291 名前:デフォルトの名無しさん mailto:sage [2007/08/13(月) 18:57:18 ] 俺が教官なら、この程度の内容じゃ「不可」だな。
292 名前:デフォルトの名無しさん [2007/08/13(月) 23:08:06 ] 頂点が共有頂点しかつながっていない 頂点は消滅させるのは理解できますが、 循環していない共有頂点とは? 必ずしも頂点が共有頂点にしか繋がっていない頂点について、 どちらの面の頂点を適用すればいいんだろう。(きめの問題かな) たとえば、 A[0] A[1] A[2] A[3] (0,5)(0,0)(0,-5)(-5,0) B[0] B[1] B[2] B[3] (0,5)(5,0)(0,-5)(0,0) のひし形が存在したとして、 変換後は、 C[0] C[1] C[2] C[3] (0,5)(5,0)(0,-5)(-5,0) としたいんですけどね。
293 名前:デフォルトの名無しさん mailto:sage [2007/08/13(月) 23:17:08 ] >>288 でも出てるけど、 ○───────○ |\ C /| | ○───○ | | \D / | | ○ | | A |. B .| | | | ○───○───○ (Dは領域外) の場合はどうするの? ○───────○ | C | | ○───○ | | \D / | | ○ | | A . B .| | | ○───○───○ これでいいのか?
294 名前:デフォルトの名無しさん mailto:sage [2007/08/13(月) 23:21:58 ] ダメだこりゃ。
295 名前:デフォルトの名無しさん [2007/08/13(月) 23:25:08 ] ○───────○ | | | | | | | | | | | | ○───○───○ ですかね。
296 名前:デフォルトの名無しさん mailto:sage [2007/08/13(月) 23:31:46 ] すげぇ、gdgdだぜ。
297 名前:デフォルトの名無しさん mailto:sage [2007/08/13(月) 23:51:39 ] ○───────○ | C || ○───○ | | \D / | | ○ || A B | | | ○───○───○
298 名前:デフォルトの名無しさん mailto:sage [2007/08/13(月) 23:52:31 ] もうなにがなんだか
299 名前:デフォルトの名無しさん mailto:sage [2007/08/13(月) 23:53:07 ] ○───────○ | C | | ○───○ | | \(^o^)/. | | ○ | | A . B .| | | ○───○───○
300 名前:デフォルトの名無しさん mailto:sage [2007/08/14(火) 03:12:31 ] ○───────○ | | | ○ | | /(^o^)\ .| | ○───○ | | フッジッサーン | | | ○───○───○
301 名前:デフォルトの名無しさん mailto:sage [2007/08/14(火) 04:11:04 ] >>292 ていうかお前、仕様が確定してない状態っしょ? 具体的に言え、何をどうしたいからそんなことやってんだ? 面をくっつけたいのはわかった、でも、 それだけの条件だと多角形なんてもんで表せない図形になるでしょ? 網目みたいな簾みたいなもんだってできるわけじゃん 俺は、正直、こんなもんの用途なんて無いと思ってる 外枠も糞もドット絵で白黒表現したほうがよっぽどはえーぐらいだよ だから、俺が知りたいことは「面をくっつけたい」って部分じゃなくて 「なんのために」面をくっつけたいのか?って部分なんだよ 絶対そっから仕様が確定するはずなんだ いまの質問は限りなく無駄なことをしてるとしか思えない
302 名前:デフォルトの名無しさん mailto:sage [2007/08/14(火) 04:13:53 ] >>292 合成した後、共有してる辺を消したときに繋がって無い辺(図形を構成していない辺)だけが残る ときがあると思うからそれを消すためのもん 紙に書いてみればわかる
303 名前:デフォルトの名無しさん mailto:sage [2007/08/14(火) 04:14:40 ] あ、 >循環していない共有頂点とは? に対しての返答ね
304 名前:デフォルトの名無しさん [2007/08/14(火) 09:54:17 ] NURBS同士の交点を求めるにはどうすればいい? っていう質問はどこですればいいでしょうか?
305 名前:デフォルトの名無しさん mailto:sage [2007/08/14(火) 10:12:15 ] ここの連中は頭悪いから無理 もう少し真面目なところを探しな
306 名前:デフォルトの名無しさん mailto:sage [2007/08/14(火) 10:28:08 ] 例えば? 数学板行ってみたんだがカオスだった。
307 名前:デフォルトの名無しさん mailto:sage [2007/08/14(火) 12:17:17 ] >>304 そういえば、2次元の幾何学系のスレってム板にないな。 ちなみに自由曲線の交点を求めるのは、ニュートンラプソン法を使うのが一般的。
308 名前:デフォルトの名無しさん mailto:sage [2007/08/14(火) 12:24:10 ] >>307 そーなのか。 CADとかどうやってんだとかずっと考えてたw トンクス
309 名前:デフォルトの名無しさん [2007/08/14(火) 14:23:00 ] キューブ環境マッピングのことで質問なのですが、 パフォーマンスが出なくて困ってます。 手法は以下の通り、 ・3Dオブジェクトごとに1枚のキューブマップを持つ。 ・シーン描画の前に、それぞれのキューブマップを更新。 ・キューブマップによって、反射・屈折エフェクトを実行。 例えば、3Dオブジェクトが3つあると、3x6回シーンを描画しなければ ならない訳で、重くなる理屈はわかるんですが、 HALO2など、完璧な屈折エフェクトなのに全然重くなっていないあたり 何かうまい方法がありそうなのですが、何か知りませんか?
310 名前:デフォルトの名無しさん [2007/08/14(火) 21:07:45 ] なぜに3×6?
311 名前:デフォルトの名無しさん [2007/08/14(火) 21:10:39 ] 遠くにあるもののマップは小さくするとか
312 名前:デフォルトの名無しさん mailto:sage [2007/08/14(火) 21:53:44 ] >>310 キューブマップを描画のたびにオブジェクトごとに更新してるってことなんかな? いや、ようわからんけどw
313 名前:デフォルトの名無しさん mailto:sage [2007/08/14(火) 21:57:13 ] 俺、マップ(シーン?ワンフレではない)で共通のキューブマップしか 使ったことねぇからさっぱりわからないや 拡大具合によっちゃワンフレ更新も意味あるけど、 そんなオブジェクトが3体も入るようなカメラでオブジェクトごとのキューブマップなんているのか? かなーり近づいてキャラの表情が物体に映りこむぐらいしないと演出としてあんま意味無い希ガス
314 名前:デフォルトの名無しさん mailto:sage [2007/08/14(火) 22:34:29 ] >309 参考までにその完璧な屈折エフェクトを見てみたい
315 名前:デフォルトの名無しさん [2007/08/14(火) 22:44:26 ] あれは疑似屈折だぞ。
316 名前:デフォルトの名無しさん mailto:sage [2007/08/14(火) 22:51:40 ] つーことはバックバッファをとってきてテキトーにずらして描画するタイプ?
317 名前:デフォルトの名無しさん mailto:sage [2007/08/14(火) 22:52:48 ] >>316 www.4gamer.net/news.php?url=/specials/3de/hl2/hl2_01.shtml
318 名前:デフォルトの名無しさん mailto:sage [2007/08/14(火) 22:54:16 ] まちがった そのページから「次へ」を押してくれ。
319 名前:デフォルトの名無しさん [2007/08/14(火) 22:59:21 ] >>301 GISで多角形で構成される地物を一つの地物に変換したいです。 面の中が空の物は作る必要はありません。 二つの面から外周頂点を求めるアルゴリズムが知りたいです。
320 名前:デフォルトの名無しさん mailto:sage [2007/08/14(火) 23:04:32 ] レースゲームのボディの映り込み用のキューブマップとかって 毎フレーム更新してたりするの?
321 名前:309 [2007/08/14(火) 23:50:01 ] >>310 キューブマップは6面あるので 6回描画しなければいけません。 >>311 それはすぐに出来そうな方法なので 試してみます。 >>313 凄く近いオブジェクトは動的キューブマップ それ以外のオブジェクトはシーン共通の静的キューブマップ こんな形で使い分ける感じでしょうか。 >>314-316 アービターの異端者制圧のステージで 味方のキャラが光学迷彩をした際、 背後の死体もちゃんと透けていたんで まじめに処理しているのかなと思ったんですが 擬似なんですかね・・確かに反射を含まない屈折だけなら その方法でいい感じにいけそうな気がします。
322 名前:デフォルトの名無しさん mailto:sage [2007/08/15(水) 00:07:02 ] そうだよな? 俺、3Dのゲーム組むようになってから最適化したことねーしw ストリップ化だってやったことねぇw 最適化するぐらいならポリ数と塗り面積落とすわw だって見た目全然かわんねーもん
323 名前:デフォルトの名無しさん mailto:sage [2007/08/15(水) 07:18:17 ] >>332 ?
324 名前:デフォルトの名無しさん mailto:sage [2007/08/15(水) 07:57:22 ] >>323 将来のレス番がどうした。
325 名前:デフォルトの名無しさん mailto:sage [2007/08/15(水) 10:10:37 ] NURBS曲線・曲面を扱いたいのですが、ライブラリとかないでしょうか? 2Dのみでもかまいません。
326 名前:デフォルトの名無しさん mailto:sage [2007/08/15(水) 11:11:09 ] >>325 Parasolid
327 名前:デフォルトの名無しさん mailto:sage [2007/08/15(水) 23:36:48 ] >>325 glut
328 名前:デフォルトの名無しさん mailto:sage [2007/08/15(水) 23:38:13 ] ごめんgluだった
329 名前:デフォルトの名無しさん mailto:sage [2007/08/16(木) 10:56:34 ] 325です。 表示にはgluをつかう予定ですが、表示しかできません。。。 途中の点の座標とか面の向きを知りたいのですが。 Cから使いたいのですが、DLLとかになっているものでも かまいません。よろしくおねがいします。
330 名前:デフォルトの名無しさん mailto:sage [2007/08/16(木) 11:00:54 ] >>329 GLU 1.2
331 名前:デフォルトの名無しさん mailto:sage [2007/08/16(木) 11:42:36 ] 調べたところ、gluNurbsCallback等がありました。 ありがとうございます。 たとえば、Nurbs面と交わるz平面の交線を抽出する ことなどは可能でしょうか。
332 名前:デフォルトの名無しさん mailto:sage [2007/08/16(木) 12:08:37 ] 無理
333 名前:デフォルトの名無しさん mailto:sage [2007/08/16(木) 19:33:03 ] Parasolidカーネルってどこで買える?
334 名前:デフォルトの名無しさん mailto:sage [2007/08/16(木) 20:25:15 ] そしてハウマッチ?
335 名前:デフォルトの名無しさん [2007/08/21(火) 23:30:25 ] 質問です. 3D プログラミングに興味を持って,「リアルタイムレンダリング」を読んでい るのですがクォータニオンが良くわかりません.具体的には,42 ページで脱落 しました. こんな人間がクォータニオンを理解するのによい書籍等はないでしょうか?
336 名前:デフォルトの名無しさん mailto:sage [2007/08/21(火) 23:42:07 ] >>335 クォータニオンを使いたいだけだったら理解する必要は無いと思うよ。 解説なんか見ないでソースコードを読んだ方が納得出来るんじゃないかな。 ttp://gamdev.org/w/?QuaternionPowers ttp://marina.sys.wakayama-u.ac.jp/~tokoi/?date=20040321 ttp://homepage1.nifty.com/seagull/math3d.html ttp://staff.aist.go.jp/toru-nakata/quaternion.html ttp://tpot.jpn.ph/t-pot/program/35_quaternion/quaternion.html
337 名前:デフォルトの名無しさん mailto:sage [2007/08/22(水) 01:00:24 ] >>336 有り難うございます. 教えていただいた中では, tpot.jpn.ph/t-pot/program/35_quaternion/quaternion.html が非常にわかりやすく良く理解できました!
338 名前:デフォルトの名無しさん mailto:sage [2007/08/24(金) 22:04:20 ] ttp://lucille.sourceforge.net/blog/archives/000300.html やってみたいんですが何をやっているのかさっぱり分かりません。 ググってもほとんど情報が無いし・・
339 名前:338 mailto:sage [2007/08/24(金) 22:15:48 ] とりあえず、表示に必要な前計算をやりたいです
340 名前:デフォルトの名無しさん mailto:sage [2007/08/24(金) 22:30:25 ] がんばって!
341 名前:デフォルトの名無しさん mailto:sage [2007/08/24(金) 22:53:44 ] 3ページ目 We define a combined transport function for the k-th BRDF term as: Tk(x,ωi) = gk(ωi)V(x,ωi) (ωi・n(x)) xはサーフェイス上の位置 ωiは入射光の角度 Vは遮蔽項 nはxでの法線 これでtransport matrixが計算できるんでしょうか? でもKとかBRDF termとかview map とか light mapとかわからない・・ 8ページ目で、Kが上がれば上がる程レンダリング結果がよくなっていますが。
342 名前:デフォルトの名無しさん mailto:sage [2007/08/24(金) 22:56:33 ] くっ・・俺はこの論文を、ただ眺めていることしか出来ないのか? こんな事じゃ、いつまで経っても実装に移れないというのに!
343 名前:デフォルトの名無しさん mailto:sage [2007/08/24(金) 23:06:23 ] KはBRDF関数をSVDで分解して近似したときの項数だろ
344 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 21:20:57 ] そうなんだ
345 名前:338 mailto:sage [2007/08/27(月) 23:34:42 ] 同じ人が「All-Frequency Interactive Relighting of Translucent Objects with Single and Multiple Scattering 」を・・ しかし、これもやっぱり分からないことには変わりありません。
346 名前:デフォルトの名無しさん [2007/09/01(土) 14:33:28 ] >>345 英語だめすぎておれもわからん。 ひそかに、そのへんを解説してそうな、オーム社からでるCG MAGICに期待している。
347 名前:デフォルトの名無しさん mailto:sage [2007/09/01(土) 17:57:28 ] SVDとかWaveletは数値計算ライブラリを使って計算するつもりです。 ライセンスがGPLなのが気になりますが。GPLよくわかんないので。
348 名前:デフォルトの名無しさん mailto:sage [2007/09/01(土) 19:26:40 ] 分解する前に、BRDFをどうやって用意するのか・・
349 名前:デフォルトの名無しさん mailto:sage [2007/09/01(土) 19:44:58 ] >>348 論文ではAshikhmin-ShirleyやLafortuneのモデルを使ってますよ☆
350 名前:デフォルトの名無しさん mailto:sage [2007/09/01(土) 19:54:56 ] ttp://www.cs.utah.edu/~shirley/papers/jgtbrdf.pdf これすか ttp://www.gnu.org/software/gsl/manual/html_node/Singular-Value-Decomposition.html この関数にどんな形で渡すんでしょうか?
351 名前:デフォルトの名無しさん mailto:sage [2007/09/01(土) 19:59:15 ] このままじゃ挫折します HELP ME!
352 名前:デフォルトの名無しさん mailto:sage [2007/09/01(土) 20:05:03 ] >>350 どんな行列を分解するかなんて論文見渡せば10秒で見つかるだろカス
353 名前:デフォルトの名無しさん mailto:sage [2007/09/01(土) 20:05:52 ] ttp://www.tmps.org/index.php?GSL%A5%D9%A5%AF%A5%C8%A5%EB%A1%A4%B9%D4%CE%F3%A5%AF%A5%E9%A5%B9%A4%CE%BA%EE%C0%AE によると、 >gsl_linalg_SV_decomp関数は,m行n列(m<n)の行列Aの特異値分解を計算します.引数Aは計算結果の行列Uで上書きされ,ベクトルsは対角行列Sの対角成分を格納します.また,workはn次元の作業用ベクトル領域です. 日本語でも何が書いてあるのかワカンネ
354 名前:デフォルトの名無しさん mailto:sage [2007/09/01(土) 20:34:27 ] >>338 を読むための前提知識が足りなすぎる 線形代数からやりなおせ
355 名前:デフォルトの名無しさん mailto:sage [2007/09/01(土) 20:53:50 ] ttp://ja.wikipedia.org/wiki/%E7%B7%9A%E5%BD%A2%E4%BB%A3%E6%95%B0 無理です。やり直すどころかやってもいない 詳しい理論が分からなくても実装方法だけ分かればいいやと 思っていましたがやっぱりそうも行かないですね。 To construct the BRDF matrix, we sample both incident and view directions on a unit disk embedded in a 2D texture map of 48x48 resolution. The memory required to store the tabulated BRDF is approximately 37.5 MB. incident and view directions→incidence and view directions→入射光と視点の角度? BRDF分解できないと先に進めない・・
356 名前:デフォルトの名無しさん mailto:sage [2007/09/01(土) 21:46:47 ] おまえは英語も駄目だな
357 名前:デフォルトの名無しさん mailto:sage [2007/09/02(日) 15:52:03 ] 分かるかこんなの!
358 名前:デフォルトの名無しさん [2007/09/03(月) 10:38:15 ] >>352 >>356 アドバイスできないなら、ひっこんでろカス 傍で見ていても不快になる
359 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 14:08:40 ] すみませんでした
360 名前:デフォルトの名無しさん [2007/09/10(月) 22:02:51 ] (´・ω・`) ショボーン
361 名前:デフォルトの名無しさん mailto:sage [2007/09/12(水) 12:19:31 ] スクリーン座標→ワールド座標の変換をする関数を作りたいのですが(D3DXVec3Unprojectみたいな)、 これどういう風に計算するんですか?教えてください もしくはどこか参考になるサイトがあれば。逆の場合なら解説しているサイトはたくさん見つかるんですけど…
362 名前:デフォルトの名無しさん [2007/09/12(水) 12:20:28 ]
363 名前:デフォルトの名無しさん mailto:sage [2007/09/12(水) 12:32:38 ] 投影行列の逆行列を求めて、座標を表すベクトルを掛ける。
364 名前:デフォルトの名無しさん [2007/09/12(水) 12:45:08 ] >>363 ありがとうございます
365 名前:デフォルトの名無しさん mailto:sage [2007/09/12(水) 13:40:51 ] >>358 アドバイスできないなら、ひっこんでろカス 傍で見ていても不快になる殺すぞ!!
366 名前:デフォルトの名無しさん mailto:sage [2007/09/12(水) 18:26:53 ] ∧_∧ / ̄ ̄ ̄ ̄ ( ・∀・) < PRT!!! ⊂/ 9) \____ q( / > >