[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 2chのread.cgiへ]
Update time : 12/11 13:08 / Filesize : 154 KB / Number-of Response : 657
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

3Dグラフィックスプログラミング



1 名前:デフォルトの名無しさん [2006/08/10(木) 04:50:09 ]
DirectXやOpenGL、あるいは言語などにとらわれず、
純粋に3Dグラフィックスのプログラミング技術(アルゴリズムや数学など)
について語るスレです。


477 名前:デフォルトの名無しさん mailto:sage [2008/07/22(火) 01:06:54 ]
ttp://alpha.arrow.jp/DSC_7281.JPG
いや発作的にこう

478 名前:デフォルトの名無しさん mailto:sage [2008/07/22(火) 01:17:26 ]
>>676
D-Stormに普通においてあるな

479 名前:デフォルトの名無しさん mailto:sage [2008/07/22(火) 10:01:00 ]
>>474
3Dソフトのシーンを実機再生なんていまだと新人にやらせる程度の仕事だな。

480 名前:デフォルトの名無しさん mailto:sage [2008/07/23(水) 17:25:32 ]
>>479
採用時に選び放題のようで羨ましい。
それでもソレはボーンだけの話だよね?
元の話>465はレイアウトってことだから、確かにボーンだけなのかもね。勘違いしてたかも。

481 名前:デフォルトの名無しさん mailto:sage [2008/07/24(木) 01:12:35 ]
一番面倒なのがボーンじゃね?
ボーンさえ読めればアニメーションやメッシュ情報なんて屁でもないと思うが。

482 名前:デフォルトの名無しさん mailto:sage [2008/07/24(木) 01:55:50 ]
>>481
そうか?

パーティクルとかダイナミクスとか使われてると結構きついぞ。

まさか、オブジェクト配置してキーフレーム読み込むだけじゃないだろうな?

483 名前:デフォルトの名無しさん mailto:sage [2008/07/24(木) 02:01:32 ]
3Dソフトのシーンを実機で再生するならそうだろうな。
>>479は新人の仕事というより、「学習用」って意味だと思うぞ。

3Dソフト=モデルやモーションとかのリソース作成用って扱いで。
カットシーンやらマップのレイアウトやらパーティクルや物理パラメーターや骨の設定は
全部エンジンに合わせて専用でツール用意するのが普通じゃないか?


484 名前:デフォルトの名無しさん mailto:sage [2008/07/25(金) 00:32:21 ]
>俺なら一千万うぃ下回る金額では請けない仕事だね。

低脳露呈www

485 名前:デフォルトの名無しさん mailto:sage [2008/07/25(金) 18:57:46 ]
>>481
"ボーンだけ"ってのは、カメラとかライトとかマテリアルとか、個々の作業は簡単でも、こまごましたのを全部やってると大変って話。

>>483
> 全部エンジンに合わせて専用でツール用意するのが普通じゃないか?
LW だとどうかは知らないけど、3dsmax とか Maya ではプラグインとかスクリプトで、オーサリングツール上で設定するのが普通だと思う。

>>484
typoの指摘をありがとう。



486 名前:デフォルトの名無しさん [2008/08/18(月) 00:57:01 ]
回転するコマの表面の模様を一緒に回転させたいんですが、どうすればいいん
でしょうか?テクスチャマッピングの技術で対応できるでしょうか?

どうも、基本的にラスタライズした後の2次元画像にテキスチャマッピイング
するから無理のように思えますけど。

487 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 01:04:13 ]
模様の付いたコマを回転させたら、模様も一緒に回転するのが普通だと思うけど。
模様だけ止まったまま回転しないの?

テクスチャマップは回転したり変形したりして貼り付けられるよ

488 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 01:31:17 ]
texture mappingするときには各頂点にUV値というtexture画像の対応する位置が設定してあるから
コマが回ればコマポリゴンの頂点も回るので,ラスタライズした後もちゃんとUV値も変わってるでしょ。

これとはあまり関係ないかもしれないがコマが高速に回転すると別の問題が起こる。
現実世界ではコマを回すとコマの模様が残像によって回転方向にそって線になったように見えるけど
CGで普通にfps30ぐらいでレンダリングするとこのような事が起きない。
回転速度によって実際よりゆっくり回っているようにみえたり、点滅したり、静止して見えるようになる。

これを解決するには
・FPSを上げる(120以上必要?)
・高速に回転しているっぽく見えるテクスチャを張る。
・モーションブラー
が考えられるけど、他にもっといい方法ある?

489 名前:デフォルトの名無しさん [2008/08/18(月) 10:44:39 ]
スピード重視のゲームだったら、モーションブラーがすでにかかった
テクスチャを貼り付けるだろうな。


490 名前:デフォルトの名無しさん [2008/08/18(月) 19:49:06 ]
3Dの短形(rectangle)と線分(segment)のCollisionを検出したいのですが、
参考になるコードやオープンソースのソフトウェア等教えて頂けないでしょうか?

ちなみに、単一の短形、もしくは複数の短形で囲まれたボリュームと、線分のCollisionを
求める機能を作成中で、初めての3Dグラフィックスプログラミングなので苦戦しております。
平面(Plane)と直線(Ray)のCollision検出はできたので、後少しで出来そうなのです。

使用している言語はVB6ですが、VB6、C/C++&MFC、C#、VB.NETならある程度読めます。
言語はあまり問いませんのでよろしくお願いします。


491 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 20:19:34 ]
×短形
○矩形

492 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 20:27:48 ]
平面と直線の交点が
矩形の内部にあるか、線分の内部にあるか
って判定をするだけではない?

493 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 21:42:02 ]
>>491
今までずっと短形だと思ってました・・・・
矩形(くけい)だったんですね・・・・or2...

>>492
矩形と線分の交点が矩形平面上にあることとが検出できれば良いです。


494 名前:デフォルトの名無しさん mailto:sage [2008/08/19(火) 00:46:38 ]
ヘイヘイ平面の方程式NdotX+D=0と線分の方程式X=P0*(1-t)+P1*t (0<t<1)
を解いて矩形と線分が交差するか、交差するなら交点pを求めるのじゃ。

矩形のある頂点の位置をP, その頂点を共有する2辺にそれぞれ平行な2つの単位ヴェクトルをV0, V1としよう。
次にさっき求めた交点pを惨事元空間から矩形上の虹元空間へとトランスフォーーム!するのじゃ。
具体的に言うと
p'=p-Pを計算し、
p'x=V0 dot p'
p'y=V1 dot p'
を計算すると、(p'x, p'y)が矩形上の虹元空間での座標となるのじゃ。
そして後は(p'x, p'y)が矩形のサイズに収まってるかチェケラすればいいのじゃ。

そういえばこの交点pのように今いる三次元の世界から二次元の世界に行きたいと言う人を時々見かけるが
二次元へ行く方法を知りたいかい?


495 名前:デフォルトの名無しさん mailto:sage [2008/08/19(火) 07:35:36 ]
>>494
パラメトリック幾何ですね。
計算誤差的に不利になることはあるけど、
まあ大抵の場合にOKですな。
CADもパラメトリックなのが主流ぽいし。



496 名前:デフォルトの名無しさん [2008/08/19(火) 12:28:34 ]
パラメト厨乙


497 名前:デフォルトの名無しさん [2008/08/20(水) 05:06:01 ]
>>494
しりたいです

498 名前:デフォルトの名無しさん mailto:sage [2008/08/20(水) 08:24:43 ]
>>494
「○○じゃ」って九州の人?

499 名前:デフォルトの名無しさん mailto:sage [2008/08/20(水) 08:25:42 ]
所謂爺語じゃね?

500 名前:デフォルトの名無しさん mailto:sage [2008/08/20(水) 08:30:53 ]
>>499
九州だと「いいんじゃ」になるよな。

爺語ってなんか気持ち悪いな。
さも、「私は○○歴が長いんです」って自己主張してるみたいな。

501 名前:デフォルトの名無しさん mailto:sage [2008/08/20(水) 23:24:35 ]
別にそれ自体は構わないのだが、>494に関して言えば「チェケラすればいいのじゃ」の辺りが痛い。

502 名前:494 mailto:sage [2008/08/21(木) 01:27:47 ]
>>497
まずは自分の行きたい2次元平面の以下の(今いる三次元空間から見た)パラメータを決める。
・平面の法線ベクトル:N
・平面に平行で長さが0でない互いに平行ではない2つのベクトル:T0,T1
・平面上の一点:P

まず、3次元空間上の1点xを上記平面空間へ移すには
平面上の位置x'=(T0dot(x-P), T1dot(x-P))
を計算すればよい。

上記計算を自分内の全点に対して行えば虹元の世界へ行くことができます。

というのは冗談です。この世界で精いっぱい活きて下さい。

>>498, 499
九州の人ではありません。爺語?みたいなものです。

>>500, 501
すいません。
眠たかったので変な言葉遣いになってしまいました。
不快な思いをさせてしまい申し訳ないです。




503 名前:デフォルトの名無しさん mailto:sage [2008/08/21(木) 11:50:55 ]
うむ。check it outにしろcheck it upにしろ、〜してね、っていう意味が含まれてるからな。

504 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 20:13:36 ]
ピクセルシェーダ1.1と2.0ってどの辺が違うんだろう?
3.0や4.0との比較はぐぐって見つけることが出来たんだが…。

505 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 20:34:40 ]
1.1と2.0なら話にならないほど違う



506 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 20:45:12 ]
MosaicとFirefoxぐらい違う

507 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 20:58:08 ]
1.xは固定機能のコンバイナに毛が生えた程度で、汎用シェーダと呼べるレベルではないな

508 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 22:22:09 ]
恐ろしくてとても言葉では説明できないほど違う

509 名前:デフォルトの名無しさん mailto:sage [2008/08/23(土) 05:18:57 ]
>>504
仮に Direct3d のことを言ってるのなら msdn.microsoft.com/ja-jp/library/cc371737.aspx を参照してくれ。

510 名前:デフォルトの名無しさん [2008/08/30(土) 00:52:24 ]
すいません質問させてください。

Blenderなどのオーサリングツールのエフェクトアルゴリズムを、
外部のプログラムから直接利用する方法ってあるのでしょうか?

Blender内でPythonを使ってプログラムするのではなくて、C++などで実装したアプリから、
エフェクトアルゴリズムだけをライブラリのように利用するという意味なんですが。

511 名前:デフォルトの名無しさん mailto:sage [2008/08/30(土) 02:30:51 ]
オープンソースなんだから好きなだけ参考にすれば良いだろ。

ただしライセンスには注意な。

512 名前:デフォルトの名無しさん mailto:sage [2008/08/30(土) 04:00:52 ]
www.digipop.ne.jp/~junkie/hinan/create.htm

6年前と比べると、いまと昔
どう違うんだろうか・・・昔は無くて今あるもの

513 名前:デフォルトの名無しさん mailto:sage [2008/08/30(土) 05:32:52 ]
将来任天堂64のソフトを作りたいと思ってるプログラミング初心者です
3Dについて調べたらこのOpenGLとかに当たったんですけど、
もっと簡単に3D描けるソフトがあると思うのですが、そういうのを使ったら互換性とかが無いんですか?
それと、任天堂64だとキレイなグラフィックは不可能なんですか?

514 名前:デフォルトの名無しさん mailto:sage [2008/08/30(土) 07:24:18 ]
WiiでもGCでもなく64?

515 名前:デフォルトの名無しさん mailto:sage [2008/08/30(土) 07:25:39 ]
>>514
64大好きなんです。ロード時間が無いから。それとコントローラー



516 名前:デフォルトの名無しさん mailto:sage [2008/08/30(土) 07:33:06 ]
OpenGLなんて相当簡単なAPIだろ。
C/C++から利用するものであれより簡単な3DAPIなんてないだろ。

517 名前:デフォルトの名無しさん mailto:sage [2008/08/30(土) 11:01:31 ]
>>513
64のロード時間が短い理由がわかるようになるまで経験を積めば
PCでも同じ事ができることがわかるよ。

518 名前:デフォルトの名無しさん [2008/08/30(土) 14:35:58 ]
>>517
ダウト

519 名前:デフォルトの名無しさん mailto:sage [2008/08/30(土) 14:43:28 ]
コンシューマー機が読み込み遅いのは大抵が
CDとかDVDとかから読み込みしてるからだろ。

読み込み速くしたきゃSSDにでも入れとけ。

520 名前:デフォルトの名無しさん mailto:sage [2008/08/30(土) 16:01:13 ]
実行時に生成すれば読み込み時間はごく少なくて済むな
生成時間の方がかかるかもしれんが

521 名前:デフォルトの名無しさん mailto:sage [2008/08/30(土) 16:15:55 ]
なんでモデラーは解析用メッシュ生成ソフトみたいに画面上に節点番号出せないの?
皆どうやって髪だけ物理演算とかしてるのよ 節点番号と位置がわからないじゃない

522 名前:デフォルトの名無しさん mailto:sage [2008/08/30(土) 16:29:01 ]
頂点インデックスがあれば分かるだろjk

523 名前:デフォルトの名無しさん mailto:sage [2008/08/30(土) 19:36:18 ]
じゃあ頂点インデックスを使ってモーフィングをどうやるのか簡単なアルゴリズムを書いてみそ

524 名前:デフォルトの名無しさん mailto:sage [2008/08/30(土) 19:41:54 ]
なぜモーフィングの話に?
モーフィングはまた別だろ。

525 名前:デフォルトの名無しさん mailto:sage [2008/08/30(土) 20:09:43 ]
唇の構成節点だけ別個に把握してないと駄目だろ?



526 名前:デフォルトの名無しさん mailto:sage [2008/08/30(土) 21:12:13 ]
>>521
画面上に表示されたとして、デザイナさんにメモさせるの?
ちょっとメッシュ変更する度に変わるかもしれないのに。

普通はスクリプトとかプラグインで抽出するんだよ。

ところで接点って頂点のこと? ボーンのこと?
Knot の和訳? Node の和訳?

527 名前:デフォルトの名無しさん mailto:sage [2008/08/30(土) 21:29:55 ]
モデラーでは節点って言わないんだっけ

528 名前:デフォルトの名無しさん mailto:sage [2008/08/30(土) 21:49:10 ]
髪の毛ならプラグインで骨に物理のパラメーター埋めとくのが普通だと思うが。

529 名前:デフォルトの名無しさん mailto:sage [2008/08/30(土) 22:58:26 ]
スカートは?

530 名前:デフォルトの名無しさん mailto:sage [2008/08/30(土) 23:10:59 ]
ゲーム用途ならスカートも骨に物理だろ・・・。
ロングスカートにクロスシミュでも入れるつもりなのかと・・・。

531 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 23:57:28 ]
>>527
モデラー云々じゃなくて、ソフトによって和訳が違うから、ソフト名か英語表記を書いて。

>>530
ボーンじゃコリジョン調整が大変だろう。
360とかPS3では、ウチは頂点単位でやってるよ。

532 名前:デフォルトの名無しさん mailto:sage [2008/09/01(月) 14:03:25 ]
>>526
「節点」は有限要素法とかの分野ではnodeの訳語だね。元はグラフ理論の用語から来てるんだと思う。
CGのメッシュはたいていサーフェス(=2次元多様体)を表しているからvertexやfaceとして解釈できるけど、
有限要素法で使うメッシュはサーフェス状とは限らず任意の接続構造をとりうるから、
単純にグラフ理論的なnodeやedgeとして扱うことになる。

533 名前:デフォルトの名無しさん [2008/09/02(火) 01:49:54 ]
        ┌─日韓トンネル             ワシらも仲間に入れてや!!
        ↓                                 
                    うれしいやろ?来たったで!
 | ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|          
 |_∧∧_∧ ∧_∧ _∧∧_∧∧_∧∧  ∧ ∧_∧ ∧_∧_∧∧_∧
 |`∀´> `∀´>丶`∀´>`∀´> `∀´>`∀´>丶`∀´>丶`∀´>`∀´>∀´>丶`∀´>
 | ∧_∧  /⌒   ヽ∧_∧ ∧_∧  /⌒   ヽ∧_∧ ∧_∧  /⌒  ヽ
 |<丶`∀´>/| ∧_∧<丶`∀´><丶`∀´>  ∧_∧<丶`∀´><丶`∀´> ∧_∧
 |⌒ ∧_∧<丶`∀´>.∧_∧⌒ ∧_∧<丶`∀´>.∧_∧ ⌒ ∧_∧<丶`∀´>
 |>  <丶`∀´>∧_∧<丶`∀´>  <丶`∀´>∧_∧<丶`∀´>  <丶`∀´>∧_∧
 | /⌒   ヽ<丶`∀´>    ヽ /⌒   ヽ<丶`∀´>    ヽ /⌒   ヽ<丶`∀´>   
 | /| |   | |/⌒   ヽ   | | /| |   | |/⌒   ヽ   | | /| |   | |/⌒   ヽ  
 |ノ \\ /|/| |   | |\./| |ノ \\ /|/| |   | |\./| | ノ \\ /|/| |   | |
 |   \\ ノ \\./| |\\ | |   \\ ノ \\./| |\\ | |    \\ ノ \\./| |
 |/⌒\し'/   .\\ | |ヽ し'(ノ/⌒\し'/   .\\ | |ヽ し'(ノ /⌒\し'/   .\\ | |
 |     >/ /⌒\し'(ノ  > )     >/ /⌒\ し'(ノ > )  /    >/ /⌒\し'(ノ 
 |   / /    > ) / /    / /    > ) / / /    / /    > ) 
 |  / / つ    / / (_つ   / / つ   / / (_つ     / / つ   / / 
 |  し'     (_つ   |    し'     (_つ         し'     (_つ


534 名前:デフォルトの名無しさん [2008/09/02(火) 02:05:52 ]
裏?
space.geocities.jp/keiishugicho/

535 名前:デフォルトの名無しさん [2008/09/02(火) 23:54:16 ]
平面と線分との交点を求めるには以下のようにすれば求められるのですが、
平面が有限な場合はどうやって求めればよいのでしょうか?

public static bool IntersectSegmentPlane(Vector3 a, Vector3 b, Plane p, ref float t, ref Vector3 q)
{
Vector3 ab = b - a;
t = (p.D - Vector3.Dot(p.Normal, a)) / Vector3.Dot(p.Normal, ab);

if (t >= 0.0f && t <= 1.0f)
{
q = a + t * ab;
return true;
}
return false;
}




536 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 00:28:57 ]
convexなポリゴンなら交差した頂点が平面を構成する直線の常に同じ側にあるって条件とかで好いんでなかったかな?


537 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 08:49:43 ]
>>535
交点の(u,v)を求めて、それが区間内かどうか判定すればいいだけじゃね?

538 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 16:57:46 ]
平面上の有限領域がどのような形式で表現されているかによるな

539 名前:535 mailto:sage [2008/09/04(木) 03:19:03 ]
平面上の有限領域はそれぞれVector3で表現できる3次元座標4点です。
3次元空間上の矩形と線分との交点を求めたいのです。
最終的には直方体を線分が貫通している点を検出したいのですが、
>>535のコードにどのように手を加えればよいでしょうか?

540 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 04:15:52 ]
直方体なら貫通している平面上の交点が向かい合わせの面以外の平面の内側にあればいいんでないの?
サイコロで言えば1の面上に直線が交わっているなら2-5,4-3のの各ペアの面から距離が符号違いであればいいって事じゃないの?


541 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 07:20:51 ]
条件を小出しにするなよ

542 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 10:27:54 ]
>>539
p2-p1をu軸にして、p4-p1をv軸にしてuv空間上の交点(u,v)が第一象限にあるかチェック。
p2-p3をu軸にして、p4-p3をv軸にしてuv空間上の交点(u,v)が第一象限にあるかチェック。
両方通れば矩形内。

543 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 01:06:09 ]
直方体と線分の交差判定ならSeparating axis theoremを使ったほうが速いような気がする。
直方体がAABBなら、
線分をAABBの3組の平面で切っていきながら2つの平行な平面と交差するかチェケラするのだ(ΘωΘ)

544 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 08:33:39 ]
>>542
p1p2p3p4が完全に矩形であるという前提なら、
p2-p1をu軸にして、p4-p1をv軸にしてuv空間上の交点(u,v)が[0,1]内かチェック
だけでいいんじゃね?

545 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 22:36:18 ]
HLSLとCgどちらから勉強すればいいですか?



546 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 22:40:10 ]
GLSLはout of 眼中ですか?

547 名前:デフォルトの名無しさん mailto:sage [2008/10/12(日) 00:55:44 ]
行列による座標変換についての質問なのですが、
matを[行, 列]の4x4行列、vをXYZWの4次元の座標とするとき、
vをローカル座標からスクリーン座標へ変換する場合、

X = mat[0, 0] * v.X + mat[1, 0] * v.Y + mat[2, 0] * v.Z + mat[3, 0] * v.W
Y = mat[0, 1] * v.X + mat[1, 1] * v.Y + mat[2, 1] * v.Z + mat[3, 1] * v.W
Z = mat[0, 2] * v.X + mat[1, 2] * v.Y + mat[2, 2] * v.Z + mat[3, 2] * v.W
W = mat[0, 3] * v.X + mat[1, 3] * v.Y + mat[2, 3] * v.Z + mat[3, 3] * v.W
と一次変換した後、
・XYZをWで割る (この時点でZは0〜1になる)
・XYにスクリーンの高さと幅を掛ける

で合ってますでしょうか?
matはモデルビュー行列とプロジェクション行列を掛けた物なのですが、
行列を転置してOpenGLに突っ込んだときはちゃんと描画されるのに、上記の方法で
vを変換したときに、なぜかカメラの後ろにあるはずのポリゴンのZ座標が0未満にならず、
描画結果がおかしくなってしまいます orz

548 名前:デフォルトの名無しさん mailto:sage [2008/10/12(日) 06:41:27 ]
>>547
> ・XYにスクリーンの高さと幅を掛ける

バーカ

549 名前:デフォルトの名無しさん mailto:sage [2008/10/13(月) 16:16:20 ]
ttp://www.opengl.org/registry/doc/glspec30.20080811.pdf
のOpenGL OperationのCoordinate Transformationsを読むといいと思う。

550 名前:デフォルトの名無しさん mailto:sage [2008/10/20(月) 00:04:55 ]
dotXSIファイルのモデルでスキニングをしようと思っているのですが、
一つの頂点データが3つの三角形で使われていて、この頂点に対する法線が各三角形で違うものになっています。
この場合、3つの法線を平均化して一つにして扱うんでしょうか?


551 名前:デフォルトの名無しさん mailto:sage [2008/10/20(月) 00:08:43 ]
>>550
XSIはXSIの都合で作られているだけなので、自分の使っている3Dライブラリ(GL,DirectX,etc.)
に合わせて違う物をちゃんと準備する必要がある


552 名前:デフォルトの名無しさん mailto:sage [2008/10/20(月) 00:08:44 ]
>>550
違う値なら違うんじゃないの?
立方体の角が三面の平均じゃおかしいでしょ

553 名前:デフォルトの名無しさん mailto:sage [2008/10/20(月) 02:49:03 ]
>>552
言われてみればそうだなあ
でもそうすると法線データの方が数が多いから、DirectXの頂点バッファ作るときに頂点数を法線の数に合わせないといけないんですよね…
頂点変換するときに増加した頂点座標分の負荷が問題になるから、元の座標データで変換して、それを増加した頂点座標にコピーしていくとか
やるんでしょうか?


554 名前:デフォルトの名無しさん mailto:sage [2008/10/20(月) 10:39:41 ]
>>553
法線が違えば元から違う頂点としてデータを作った方が良いと思う。
負担になるのを気にしてるみたいだけど、頂点シェーダーは余裕ありまくりだから。

555 名前:デフォルトの名無しさん mailto:sage [2008/10/20(月) 13:09:23 ]
>>554
自分は三角形リスト使うつもりなんですが、
それだと三角形ストリップでやろうとするとき問題になりませんか?
隣接してるのに違う頂点なわけだから




556 名前:デフォルトの名無しさん mailto:sage [2008/10/20(月) 13:18:45 ]
>>555
違う頂点として扱うのに、どうして三角形ストリップを使おうと思うわけ?

557 名前:デフォルトの名無しさん mailto:sage [2008/10/20(月) 14:21:16 ]
>>556
思ってないです
違う頂点で扱うときやり方だと三角形ストリップでメッシュ作る方法が使えないから
一般的なやり方ではないんじゃないのかと思っているんです。
PC+DirectXだと頂点キャッシュ効くように最適化すれば三角形リストで十分だけど、
三角形ストリップが必要になる環境もあろうだろうし
その場合はどうやるんだろう?と思ったんです。


558 名前:デフォルトの名無しさん mailto:sage [2008/10/20(月) 14:37:27 ]
別の情報をもった頂点なんだから違って当然だとは思わないの?


559 名前:デフォルトの名無しさん mailto:sage [2008/10/20(月) 14:49:24 ]
ウマい手があるよーん
的な答えを期待してたんじゃないかのぅ?


560 名前:デフォルトの名無しさん mailto:sage [2008/10/20(月) 17:53:31 ]
>>555
法線データと位置情報を別のストリップで管理したいって事なの?
別で管理するって事は、どの位置情報がどの法線に対応するか、
っていうインデックスデータが今度は必要になってくるけど、
それも自前で管理する?自前でラスタライザを作ろうとしているのなら、
そういうフォーマットもアリだと思うけど、ストリップにする意味がない。

っていうか、三角形リスト使うのなら、別にいいじゃないか。


561 名前:デフォルトの名無しさん mailto:sage [2008/10/20(月) 18:14:49 ]
>>559
恥ずかしながらその通りで。
DirectXだと頂点増やすしかないということで了解しました

自分の中で三通りの可能性を考えていて、
1、法線データの数に合わせて頂点データを作る
2、座標データの数に合わせて頂点データを作り、法線データは平均化する
3、法線データの数に合わせて頂点データを作るが、頂点変換は元の数の座標データで行い、対応する頂点にコピーする
  (その際、対応する頂点のインデックスなどを持たなければならない)

このどれかだなと思っていたんですが、ストリップにしろリストにしろ1でやるようですね


562 名前:デフォルトの名無しさん mailto:sage [2008/10/20(月) 20:33:02 ]
昔はメモリ読み出しの回数を抑えたりマトリックスの乗算コストとか考える必要があったけど、今時だとピクセルフィルしている最中に次の三角形は変換おわっちまうからそういうの気にしちゃダメだと思うよ


563 名前:デフォルトの名無しさん mailto:sage [2008/10/20(月) 22:11:50 ]
いまは冗長で普通なデータに最適化されてるから、あんまり深く考えない方が良い。

564 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 06:09:35 ]
ユニファイドシェーダだと、VSもPSも同じところで
計算するんじゃなかったっけ
でも計算コストは
PS>>>>>>>VSだろうけどさ

565 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 08:25:40 ]
せっかく作ったストリップも
ジオメトリシェーダに入るころにはバラバラにされてるんだよな



566 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 08:34:26 ]
ストリップはインデックスのなかったPS2時代の遺物じゃねぇの。
インデックスが使えるならそっちのが余計なデータ省けるし
頂点キャッシュに有利だしDrawの回数が減るしでいいと思うんだが。

縮退ポリゴンつかってストリップを1つにつなげると結局頂点数増えるから意味ねぇし。

567 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 19:31:18 ]
ttp://monsho.blog63.fc2.com/blog-entry-84.html


568 名前:デフォルトの名無しさん mailto:sage [2008/10/26(日) 23:44:12 ]
ストリップも悪くはないけど、そこまでがんばることはない。
半透明とか絡んでくると、ストリップじゃ気が狂いそうになるし。
というわけで、俺はストリップ使わない派。

569 名前:デフォルトの名無しさん mailto:sage [2008/10/27(月) 01:30:47 ]
DirectXのジオメトリブレンディング使ってスキニングやってる場合、モーションブレンドってどうやるんですか?

モーションブレンドの仕組みって2つのモーションによる頂点の補間だと思うんですけど、
ジオメトリブレンディングって一つの頂点に対する変換処理で、そのまま透視射影変換までやっちゃうじゃないですか。
だからジオメトリブレンディング使いつつ、モーションブレンドをやるってのがどうやればいいのかイメージ出来ません


570 名前:デフォルトの名無しさん mailto:sage [2008/10/27(月) 08:17:06 ]
モーションブレンドはCPUだけの処理です。
シェーダーがどうなってようと関係ありません。

571 名前:デフォルトの名無しさん mailto:sage [2008/10/27(月) 11:34:50 ]
あー、SetTransformでマトリクス設定するときに既にブレンド済みのものを使うのか

572 名前:デフォルトの名無しさん mailto:sage [2008/10/27(月) 14:57:26 ]
行列演算の分配法則やねー

573 名前:デフォルトの名無しさん [2008/10/31(金) 03:27:42 ]
ボリュームデータをサーフェイスデータに変換する上手い方法.何かありませんか?

574 名前:デフォルトの名無しさん mailto:sage [2008/10/31(金) 08:30:52 ]
>>573
ボリュームデータはビットマップ?
どの程度までは出来るか書いてないから不明だけど。

575 名前:デフォルトの名無しさん mailto:sage [2008/10/31(金) 08:52:30 ]
一言で「ボリュームデータ」と言われてもな



576 名前:デフォルトの名無しさん mailto:sage [2008/10/31(金) 08:54:38 ]
コミュニケーション力が不足しているプログラマって多いよな。
自分の常識=他人の常識みたいに思ってる。


577 名前:デフォルトの名無しさん mailto:sage [2008/10/31(金) 20:16:32 ]
>>574-575
説明足らずですみません.
ボリュームデータは三次元の座標データとして持ってます.

可視化の際にはその場所に点打ったり立方体並べることで表示してたのですが
一般的な3Dモデリングソフトで表示したいと考え,
STLなんかのサーフェイスデータに変換したいと思っています.






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<154KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef