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

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

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

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

とりあえずBBXとBio120%の過去ログは見とけ。
0008名無しさん@お腹いっぱい。01/11/15 22:31ID:???
>>7
ソフトイマージュはプロテクト掛かってて無理だったよ。
その以前に9x系で動かねえらしいが。
0009名無しさん@お腹いっぱい。01/11/15 22:31ID:???
>>7
漏れはシェンムーパッケージ
0010名無しさん@お腹いっぱい。01/11/15 22:34ID:???
スフィアマップの環境マップはDirectX8と
DirectX8.1のサンプルで処理が違う。
立方体のXファイルでもDX8.1は綺麗に張れるが
どんな計算式なんだ?
0011名無しさん@お腹いっぱい。 01/11/15 23:09ID:???
みんなFOVどれくらいに設定してる?
オレは試行錯誤したあげくに 25 度
0012名無しさん@お腹いっぱい。01/11/15 23:14ID:???
>>6
日本人ならソフトイメージと読むぞ。
略してソフイメ。
0013名無しサソ01/11/15 23:52ID:???
>10
 法線の計算式が改善されているのでは?

 自分が知っているDirectX7の時点で、法線計算は非常に
適当だったし。三角形分割されている立方体でもうまくいかな
かった筈。もちろん、ちゃんとしたモデラ並に、綺麗に法線が
平均化されていればスフィアマップでも綺麗に周りが映り込む。
0014名無しさん@お腹いっぱい。01/11/16 00:37ID:???
動的スフィアマップとやらはどんな感じにやるの?
360度写りこんだテクスチャをリアルタイムに
作るやり方が想像つかない。
(リアルタイムじゃなくても解らんけど)
6面分の背景をレンダリングするCubeMapなら
原理は理解できるんだけどなぁ。
0015名無しさん@お腹いっぱい。01/11/16 06:29ID:???
>>14
Dual Parabroid Environment Mappingで検索すれ
360じゃなくて180度のテクスチャ2枚でやる。
ただし、どうやってやるのかは知らんので
kanoさんとこでも逝ってBBSで聞いてみれ
0016名無しさん@お腹いっぱい。01/11/16 10:09ID:???
>>12
>略してソフイメ。
なんだかやらしいよ
0017名無しさん@お腹いっぱい。01/11/16 12:34ID:5np0nTVv
俺の周りでは『ソフィ』だけど・・・。
0018名無しさん@お腹いっぱい。01/11/16 12:39ID:EhCM7r0k
ソフイマに1ッぴょウ
0019名無しさん@お腹いっぱい。01/11/16 14:31ID:???
>>1
>とりあえずBBXとBio120%の過去ログは見とけ。
Bio100%は知ってるけど、BBXってどこ?
0020名無しさん@お腹いっぱい。01/11/16 14:40ID:WF7xaYgS
http://isweb8.infoseek.co.jp/computer/bbx/cgi-bin/bbx.cgi
0021名無しさん@お腹いっぱい。01/11/16 15:23ID:???
こっからじゃないと入れないよ<BBX
http://isweb8.infoseek.co.jp/computer/bbx/

BioのBBSは寂れてきてるし、Bio見てる人は大抵BBXも見てるので
マルチポストせずにBBXに書き込みしましょう
0022名無しさん@お腹いっぱい。01/11/16 16:02ID:VyGOeEWM
最近BBX寂しくない?
0023名無しさん@お腹いっぱい。01/11/16 16:18ID:???
せっかくこの板ができたんだから他の掲示版は無視してここだけでやろうよ。
掲示板の過去ログなんて膨大で読みきれないよ。
ここで質問すれば誰かが答えてくれるよ。
0024名無しさん@お腹いっぱい。01/11/16 16:35ID:???
俺起ちは便利な道具じゃない!
0025名無しさん@お腹いっぱい。01/11/16 17:19ID:???
初心者の質問はNGですか??
0026名無しさん@お腹いっぱい。01/11/16 17:23ID:???
とりあえず質問してみ。
0027名無しさん@お腹いっぱい。01/11/16 17:42ID:gGtA8+lG
Zソーとっていうのはなんですか?
よく話題に上がっているのですが分かりません。
DirectX初心者です。
0028名無しさん@お腹いっぱい。01/11/16 17:53ID:???
プリミティブを、奥から手前に、あるいは手前から奥に、
っていう順番で描くと、場合によって嬉しいことがあるので、
そういうふうにプリミティブの描画順序を並べ替えることです。
0029名無しさん@お腹いっぱい。01/11/16 17:54ID:???
絵で説明してあるページがあるよ。
http://pegasus.sfc.keio.ac.jp/~cgsoft/Release/Textbook/zsort01.html

ZソートはPSなどで使われていたが今はZバッファ方式が
多い。DirectXもZバッファだよ。
今でも半透明ポリゴンを描画する時にモデル単位で
奥からソートする事があるけどZソートと呼んだりするね。
0030名無しさん@お腹いっぱい。01/11/16 18:03ID:???
Dual-Paraboloid Environment Mappingの説明。

http://www.opengl.org/developers/code/sig99/advanced99/notes/node184.html
二重放物面環境マッピングとも呼ばれている。
http://www.ati.com/jp/pages/technology/hardware/radeon/visual_details.html
テクスチャ生成が難しいんだってさ。
0031名無しさん@お腹いっぱい。01/11/16 18:07ID:???
>28、29
なるほど、ありがとうございます。
もひとついいですかね・・
半透明でZソーと使うメリットってなんなんですか?
0032 01/11/16 18:08ID:S7BNCBJL
コンシューマーなんかだとオブジェクト単位にしかソートしないの?
入り組んだモデルなんかは破綻しそうだけど
0033名無しさん@お腹いっぱい。01/11/16 18:22ID:???
>>31
先に手前の半透明ポリゴンを描いて、
後に奥のポリゴンを描くと、合成の結果が変になるだろ。
2枚以上の半透明ポリゴンで、試してみそ。
加算合成だけなら問題にならない。
0034名無しさん@お腹いっぱい。01/11/16 18:25ID:???
>33
ありがとっす!
やってみます。
0035名無しさん@お腹いっぱい。01/11/16 18:51ID:???
DCで使われてるPowerVRなんかは描画順は考えなくても
いいんだけどね。
とりあえずZバッファだと不透明を全部描いてから
半透明を奥から描くんだけど仮にポリゴン1枚単位で
Zソートしてあってもポリゴン同士が交差していると
うまくいかない。
Order-Independent Transparencyという技術で
うまくやる方法も考案されているが実用までは
もう少しかかりそう。

だから
★☆★描画順を極めろゴルァァァ!!★☆★
http://game.2ch.net/gamedev/#7
なんてスレが専門で出来たりするんだろう。

半透明以外にも環境マップや水面の屈折とか
やる場合は描画順が気になるんじゃない?
0036名無しサソ01/11/16 19:11ID:???
>14
 実はスフィアマップでも出来る。掲示板を巡ってみよう。
やり方は近日中に公開されるはず(謎)
0037名無しさん@お腹いっぱい。01/11/16 19:56ID:39s9UKl9
>>12
業界人じゃないだろ?
普通はソフイマだよ。
0038名無しさん@お腹いっぱい。01/11/16 20:08ID:???
念のため、業界人じゃなくてもいいのだぞ、この板は。
0039名無しさん@お腹いっぱい。01/11/16 21:33ID:???
ソフトイメージって読むやつははじめて見たなぁ
00401401/11/16 21:46ID:???
>実はスフィアマップでも出来る。掲示板を巡ってみよう。

ん?スフィアマップでもキューブマップと同等の
事が出来るって記事のことかな?
それよりまず基本的に動的スフィアマップがわかんね〜。
結局キューブマップと同じように背景を6面分
レンダリングしてからどーやるか知らんが
360度写りこんだ魚眼レンズ的な変形をかけて
テクスチャ作るんだろうか?
どっか解説してるページ無い?
0041名無しさん@お腹いっぱい。01/11/17 00:57ID:???
>>36さんの正体が・・・
0042名無しさん@お腹いっぱい。01/11/17 01:21ID:ui0JkSQW
PIXELって雑誌があった頃は、ソフトイマージュと呼んでいたよ。
0043名無しサソ01/11/17 01:51ID:???
>40
 現時点なら、GLCl○ckを作っている某氏のページに
説明があるよ。ただ、具体的なアルゴリズムは書いてない。
国内では、そこ以外の解説は見たことがないよ。今のところ。

>41
 バレバレかも(苦笑)出来れば秘密のままで。
00444001/11/17 03:31ID:???
>現時点なら、GLCl○ckを作っている某氏のページに
>説明があるよ。ただ、具体的なアルゴリズムは書いてない。
>国内では、そこ以外の解説は見たことがないよ。今のところ。

M氏のは見たけどテクスチャ作成について書いてあったっけ?
UVの作成についての説明は参考にさせてもらったが。
国内ページは更新が止まっているところが多くて残念だ。


>バレバレかも(苦笑)出来れば秘密のままで。

誰だっていいよ。ここでは周りにあわせて口調も
荒っぽくしてよ。相手が誰か解ると丁寧にならざるをえん。
そんな気を使わずに会話出来る事を望む。
0045名無しさん@お腹いっぱい。01/11/17 07:09ID:???
>>37
業界人じゃないだろ?
普通はイマージュだよ。
0046名無しさん@お腹いっぱい。01/11/17 12:12ID:???
>>38
業界人ではない怪物に来て欲しい予感・・・。
0047名無しさん@お腹いっぱい。01/11/17 18:35ID:???
隠れ2ちゃんねらーって多いね(藁
0048名無しさん@お腹いっぱい。01/11/17 19:21ID:???
DirectXで被写界深度をするにはどうしたらいいですか?
バックバッファをテクスチャ領域にコピーしてから
ドット単位でなんらかの処理をするの?(バウンサーみたいに)
でもZバッファも読みたいけど確かロック出来ないんだよね。
とりあえずピクセルシェーダーは使わない方法でお願い。
0049名無しさん@お腹いっぱい。01/11/17 19:51ID:???
そのテクスチャ一旦縮小して、適当なZ値で拡大して貼りつけるとか。
0050名無しさん@お腹いっぱい。01/11/17 20:23ID:???
単純にドットを拡大するだけじゃダメだと思うが。
焦点からズレている所はにじんだ様に見えるし。
0051名無しさん@お腹いっぱい。01/11/17 23:17ID:???
カメラ座標を動かしてマップ中を飛んでいるような
プログラムが作りたいのですけど、衝突判定で質問です。
…ぶっちゃけた話、Zソートかけたときにカメラ座標と
一番近いポリゴンが衝突してるかどうかの判定対象でいいんですよね?
あと、全部のプリミティブを一旦登録してから
描画開始だと、カメラの後ろにある「見えないポリゴン」まで
描画の対象になってしまいませんか?それだと効率が悪いような気がするのですが…
Zソートの段階で、「このプリミティブはスクリーン上から見えるのか?」という
検討はすべきですよね?
0052名無しさん@お腹いっぱい。01/11/17 23:56ID:???
SoftImageはカナダの会社で開発されたので
仏語読みで「イマージュ」と発音するのだと聞いたけど
0053 01/11/18 02:38ID:???
http://ne.nikkeibp.co.jp/NEWS/990302ps1.html
みなさんも当時はこのニュースをみて騙されたりしたんですか?
0054名無しさん@お腹いっぱい。01/11/18 03:15ID:???
>>48
MIPMAP生成(縮小BLTでもいいかも)でやれば、それっぽくできるかも。
http://www.gamasutra.com/features/20010209/evans_03.htm
もし見れなかったら、登録無料なんで是非見てみるべし。

>>51
近いものだけが当たるとは限らない気が…、たとえば
複数の面に同時に当たる可能性もあるよね?
(カメラが部屋の隅にぶつかる時とか)
// 「近い」の定義も文面から良く分からなかったけど。

あと、オブジェクトのカリングはZソート、描画プリミティブの登録以前に
視垂台上でカリングしちゃえばいいんではないかな?
0055名無しさん@お腹いっぱい。01/11/18 04:54ID:???
>>51
3D空間を格子状に区切ったバウンディング領域を
作ってから、1つのバウンディングBOX内に引っかかる
全てのポリゴンインデックスを持たせて
カメラの居るバウンディングBOX内の全ての
ポリゴンと衝突判定ってのでどう?
複数のバウンディングBOXを突っ切るように
移動した場合はそれら全ても判定する。
チェックしたポリゴンは判定済みフラグを持たせて
重複チェックは避ける。
でもこれってBSPってのを利用するともっといいみたい。
0056名無しさん@お腹いっぱい。01/11/18 07:54ID:k3asQ08V
ブレンダーの使い方がさっぱり分かりません。いいHPありますか?
xfile読み込もうとしても受け付けないし・・・・
根本的に使い方まちがってるんですかね。アニメをしたいんですが。
0057名無しさん@お腹いっぱい。01/11/18 08:22ID:ng/298Hx
ソフトイメージって言ってるヤツ初めて見た(藁
0058名無しさん@お腹いっぱい。01/11/18 12:34ID:???
(藁って言ってるヤツ久しぶりに見た(藁
0059名無しさん@お腹いっぱい。01/11/18 20:12ID:???
SoftImageも終了したからこれからはXSIだろ。
Mayaのほうがカッコ良いけど。
0060NAME OVER01/11/18 22:46ID:Eze+A0zZ
DirectX8でテクスチャ貼らず、lightを使わないとポリゴンが真っ白
になるのですが色は付けられないのでしょうか?。
0061名無しさん@お腹いっぱい。01/11/18 23:06ID:???
>>60
頂点色は?
0062名無しさん@お腹いっぱい。01/11/19 00:27ID:???
typedef struct
{
float x, y, z; // 位置座標
float nx, ny, nz; // 法線
DWORD Diffuse; // ディフューズ色
} VERTEX;

(D3DFVF_XYZ | D3DFVF_NORMAL | D3DFVF_DIFFUSE )

この頂点フォーマットを使用すれば付けれるよ。
00635101/11/19 02:01ID:???
>>54-55
多謝。頑張って実装してみます。
0064 01/11/19 08:24ID:???
>61-62 やってみます。感謝。
0065名無しさん@お腹いっぱい。01/11/20 00:55ID:8QJ39yii
だれか質問しないと下がりまくるな。
0066名無しさん@お腹いっぱい。01/11/20 01:58ID:uF4aKngi
(D3DFVF_XYZ | D3DFVF_NORMAL | D3DFVF_DIFFUSE )

これ書いてるってことはコンスタントシェーダー使ってる?
Vertex&Pixelシェーダー使った方が圧倒的に楽だよ。
アセンブラを敬遠する人もいるかも知れないけど、1度トライしてみて欲しい。
頂点フォーマットを自分で設計できるのは便利だから
0067名無しさん@お腹いっぱい。01/11/20 02:23ID:uF4aKngi
一番簡単な実装を書いてみようか

struct BasicPoly
{
float x,y,z;
int color;
};

型定義はこれ

DWORD Vhandle,Phandle;

static const DWORD PolyType[] = {
D3DVSD_STREAM( 0 ),
D3DVSD_REG( 0, D3DVSDT_FLOAT3 ), //x.y.y
D3DVSD_REG( 1, D3DVSDT_D3DCOLOR), //color
D3DVSD_END()
};

このおまじないも書いておく


初期化関数内でCreateVertexBufferで確保した領域に値を入れる

BasicPoly *V;
VBuffer->Lock(...);
for(i = 0;i < POLY_MAX;i++)
{
V[i].x = ...;
V[i].y = ...;
V[i].z = ...;
V[i].color = 0xffffffff;
}
VBuffer->UnLock();

シェーダーのハンドルを取る

Vhandle = CreateVertexShader( dwVertexShader );
Phandle = CreatePixelShader( dwPixelShader );


描画関数内で
SetVertexShader( Vhandle );
SetPixelShader( Phandle );

SetVertexShaderConstant( 20, tmpMatrix._11, 4 );
ここで全てのMatrixをかけたものを渡す。

SetStreamSource(...);
DrawPrimitive(...);

で終了
0068名無しさん@お腹いっぱい。01/11/20 02:24ID:uF4aKngi
Vshaderの中身は

vs.1.1

dp4 oPos.x, v0, c20
dp4 oPos.y, v0, c21
dp4 oPos.z, v0, c22
dp4 oPos.w, v0, c23
//x,y,zにSetShaderConstantで渡されたMatrixをかける

mov oD0, v1
//Colorをそのまま転送


Pshaderの中身は

ps.1.0
mov r0,v0
//Vshaderから渡されたColorをそのまま使用

2つのShaderはそれぞれ拡張子をvshとpshにして
xsasm -h *.vsh
xsasm -h *.psh
でヘッダーを作る
それにCreate***Shaderの引数が入ってる


なんか汚い説明だし、これ実行しても頂点カラーを指定した板きれが出るだけ
後はShaderのリファレンスを見ながら改良していけばいいと思う
ShadowVolumeだろうが、Bump環境だろうが、Furだろうが思いのままだ
健闘ヲ祈ル
0069名無しさん@お腹いっぱい。01/11/20 09:36ID:Nj1lFQ20
xsasmはまずいだろ(w
0070名無しサソ01/11/20 10:06ID:???
>44
 公開されてるよ。場所は探してね。多分分かるから(笑)
0071名無しさん@お腹いっぱい。01/11/20 11:35ID:???
Shader使うと環境が限定されるからやだ。
つーか、i810Eとかにも対応なんてしたくねーっちゅうの!!
世の中GeForce2以降とRADEONで統一してくれYO!
0072blender信者(w01/11/20 12:48ID:hX7SJf0t
>>56
blenderはxfile読み込みのスクリプトがなかったはず。
blenderはやめてtrueSpaceにした方がいいのでは。
もしくは、コンバータでDXFに直して持って来るとか。

アニメーション付けするだけなら、xfile用のモデラ&アニメーションツールを
freeで公開されている人がいるので探してみては。
0073名無しさん@お腹いっぱい。01/11/20 13:42ID:???
>>71
あんたがメチャ面白いゲームをGeForce2とRADEON限定で
作り出せばいいかもよ。
0074名無しさん@お腹いっぱい。01/11/20 14:31ID:WD3W2AjA
>>70
わかんねー
00757101/11/20 15:38ID:???
>>73 無理。チミにまかせた。
0076名無しさん@お腹いっぱい。01/11/20 15:51ID:???
じつはコソーリ^cさんとかkanoさんとか新坂さんあたり流れて来てそうだが、
2chなのでななしさんですますことにする。
つーか、解からない事ありすぎるから教えろや、ゴルァ!!
0077名無しさん@お腹いっぱい。01/11/20 15:59ID:???
>>73
一時期の洋ゲー方式ですね。
OpenGL対応ボードが普及したのもQuakeのおかげみたいなもんだしヽ( ´ー`)ノ
0078_01/11/20 16:21ID:t2UWc/yC
誰か、パーティクルについての知識を、アライザライブチマケテちょ。
0079(・∀・)つ∴ニクコプーンクエ!!01/11/20 16:54ID:???
子供の頃、三菱化学の炭化物パーティクルで喘息を患いました。
この頃は、春になるとスギ花パーティクルによる結膜炎で悩みます。
パーティクル超嫌いです。

悩みをブチマケたらスッキリしました。
00805101/11/20 17:54ID:???
すみません…また質問させてください…。
いただいたアドバイスどおりに実装しようとして
マップデータのローダーを観てて気付いたのですが、
「Stripしてる三角形の扱いはどぎゃんすればよかですか!?」と。
独立した三角形としてプログラム内で扱って…というのは
手としてアリなんでしょうか?そのためのプリミティブの保存領域や
コマンドの転送が余計に必要になりますよね?
0081名無しさん@お腹いっぱい。01/11/20 20:20ID:???
>>51
表示モデルとあたり判定を取らないほうがいいよ。
もっとローモデルにしたものを独立三角形データで
用意してバウンディングボックスデータを
事前に生成しておく。
00825101/11/20 21:00ID:???
>>80
>>マップデータのローダーを観てて気付いたのですが、

「マップデータのローダーを書くために、
モデルデータを観てて気付いたのですが、」

>81
狼狽しててわかりにくい日本語で書いたにも関わらず
回答ありがとうございます。
つーことは、描画・表示用のプリミティブデータと
当たり判定用のローモデルデータを別に用意した方が
ベターって理解でいいでしょうか?

んで、バンウンディングボックスなんですが、
その格子の中に頂点を持っている三角形であれば対象にしても
構わないんですよね?
00834401/11/20 21:05ID:???
>公開されてるよ。場所は探してね。多分分かるから(笑)

コラム一通り見たけどテクスチャ自体の作成は無いと
思うが。
IF氏あたりがコラム書いてくれねーかなぁ。
動的スフィアで屈折&反射マッピング。
0084名無しさん@お腹いっぱい。01/11/20 21:58ID:???
>つーことは、描画・表示用のプリミティブデータと
>当たり判定用のローモデルデータを別に用意した方が
>ベターって理解でいいでしょうか?

そうしないとバウンディングボックス用のデータ作成に
時間がかかるじゃん。


>その格子の中に頂点を持っている三角形であれば対象にしても
>構わないんですよね?

それも当然対象になるけどボックス内に頂点が無くても
三角形がボックスと交差している事はある。
ボックスの12個の辺が三角形と交差していないか
面と直線の判定で調べる必要がある。
0085名無しさん@お腹いっぱい。01/11/20 21:59ID:???
ひぃぃ
0086名無しさん@お腹いっぱい。01/11/20 22:22ID:???
ガンバレ
0087名無しさん@お腹いっぱい。01/11/20 22:35ID:???
?
0088名無しサソ01/11/20 23:03ID:???
>83
 分かりにくい解説かなぁ・・・。

 要するにスフィアマップを特殊な座標変換で直接作成する
お話なんだけど。
0089名無しサソ01/11/20 23:08ID:???
>74
>83
 場所を間違っていると行けないので一応。
bioのBBSに話題が出ているから、たどってみよう。

 それでも分からない事があれば質問をどうぞ。
00908301/11/21 00:54ID:???
>要するにスフィアマップを特殊な座標変換で直接作成する
>お話なんだけど。

結局それが必要なのは解っているんだけど仕組みが
イメージ出来てないおれ。
フレームバッファに背景描いてからテクスチャにコピー
した後に特殊な変換掛けるって感じなの?
でもそれだと前面以外の横や上下分もレンダリング
してやらないとダメなような。
360度って事だと結局6方向要るだろうし。
なんか物凄い勘違いしているとは思っているが。

もしかしてモデルの頂点トランスフォームを自前で
全てやって単位化した円のなかに納まるように変換して
トランスフォーム済み頂点で描画して作成するとか。
んな恐ろしい事するわけないか。
0091名無しさん@お腹いっぱい。01/11/21 01:06ID:xQAW9/lm
レベルage。
0092名無しサソ01/11/21 01:16ID:???
>90
 その「もしかして」が正解(笑)

 DirectX7からだと、直接テクスチャサーフィスに描画できるから、
フレームバッファに書かなくても大丈夫だよ。で、描画先にSphereMap
用に確保したサーフィスを指定して、自前の変換で円の中にがりがり
書いていく。その座標変換の方法を紹介してあるんだけど。

 ただ、色々欠点があるので、Dual-Paraboroidの方を詳しく勉強
した方がいいかも。
00939001/11/21 01:31ID:???
>その「もしかして」が正解(笑)

ななななっなにゅ〜!!悪夢のようだ。
んじゃ頂点シェーダー使わないと速度的に無理じゃん。
しかも全方位のモデルを描画だからクリッピングも
クソもオクールジョンカリングも無い。
グランツーの様なゲームで動的環境マップしようと
したら背景ポリゴン多すぎて不可能じゃないの?

そのへんはDual-Paraboroidとやらも同じでっか?
0094名無しサソ01/11/21 01:55ID:???
>93
 映り込むオブジェクトを上手く取捨選択するのなら、そこまで
無理ではないよ。自前変換にかかるコストは比較的高いけど、
死ぬほどではない。問題は破綻をどう防ぐか。通常のクリッピング
とは全然勝手が違うからね。

 具体的な解決策としては、簡略化した背景をいくつかのブロック
に分けて置いて、距離的に離れたオブジェクトは最初から描かない、
とかね。一度に描くのが2000ポリゴン前後位だったら、CPU側の処理
でもまだ現実的だと思う(Pentium!!!クラスのPC、TNT2以上のビデオ
カード前提で)。もちろん出来る限りの高速化の工夫は必要になりそう
だけど、何とか実用にならないかなぁ。

 ちなみに、Dual-Paraboroidもやっていることは基本的に一緒。ただ、
話を聞いた限りでは、180度の映り込みを2枚描いて、それを切り抜いて
かつ歪ませてSphereMapを作るとか。某氏は座標変換をVertexShader、
画像処理をPixelShaderに任せているという話。
0095名無しさん@お腹いっぱい。01/11/21 13:20ID:???
>>94
横入りスマソ。おれもちょうどその辺やってるんで。
円の中に収まるように描いていくってとこだけど、
画角を180度とかに広げて描画したらそれっぽくならないですか?

あと、この話題で出てくるHPのアドレス教えてくださいナリ
00969501/11/21 13:24ID:???
ちなみに、動的スフィアを作る時は環境マップしたい対象のオブジェクトから
カメラ方向に向いた視点をセットして周りの背景とかを描画するんでOK?
複数オブジェクトに環境マップしたいときは・・・コストかかりまくり。鬱
0097名無しさん@お腹いっぱい。01/11/21 15:09ID:???
>>95

Dynamic Sphere Mapping
http://www.opengl.org/developers/code/sig99/advanced99/notes/node180.html

Dynamic Dual-Paraboloid Mapping
http://www.opengl.org/developers/code/sig99/advanced99/notes/node187.html
http://cgi3.tky.3web.ne.jp/~tkano/DynamicParaboloid.shtml

advanced99では、いったんキューブマップに通常の線形変換で描画してから
それを歪ませて環境マップを作成している。一方、Kano氏の方法では、
頂点座標を非線形変換させて環境マップに直接描画している。

通常の線形射影変換では、原理的に画角を180度にはできないのでは?
0098名無しさん@お腹いっぱい。01/11/21 21:34ID:kiEpb28W
初心者の質問で申し訳ないのですが、
Direct3DでXファイルを読み込んで表示するまではできたんですけど(ライブラリ使いましたが)
モデリングする時と実際に表示される時の大きさが分からないと不便なので
カメラも視点がXY方向の平面に垂直だとして、
3Dでの640が画面の640ピクセルになるようにしたいんですが、
(0,0,0にある640*480の物体が画面いっぱいに表示されるということ)
どのような式を書けばいいんでしょうか。
カメラに映るZの範囲は-100〜100にしたいです。
ということはカメラのZは-100ですよね。
XYに垂直なのでX = 0, Y = 0 まではわかるんですが、
視野角度というものを何度にすればいいのか分かりません。
教えてください。
00999301/11/21 21:55ID:???
>>名無しサソ
確かにCPUで2000ポリぐらいは行けそう。
それでも背景は2回描くはめになるからやっぱり
コストは高そうだなぁ。
VertexShaderで頂点変換は必須になりそうだ。
写りこみ用モデルはローポリ&テクスチャで
ごまかしたやつを使うか。

>>97
>一方、Kano氏の方法では、
>頂点座標を非線形変換させて環境マップに直接描画している。

kano氏もいぢわるしないで日本語でバカにも解るように
解説してくんねーかなぁ。
0100名無しさん@お腹いっぱい。01/11/21 22:12ID:???
>>98
スレ違いだと、思うぞ。

OpenGLプログラミングガイドにそれなりに載っている。
3D初心者はDirectXよりも、OpenGL+GLUTライブラリの方が良いと思うが。
0101名無しさん@お腹いっぱい。01/11/21 22:30ID:???
>>98
トランスフォーム済みの頂点フォーマット
使っちゃダメ?
2Dスプライト的に使うならD3DFVF_XYZRHWを
使えば十分。
3DでやりたいならCマガジンの10月号で
似たような記事があったよ。

>>100
まっageてくれたからいいじゃん。
おれ的には初心者の質問もOKだと思うよ。
0102名無しさん@お腹いっぱい。01/11/21 22:57ID:???
>>99
>kano氏もいぢわるしないで日本語でバカにも解るように
>解説してくんねーかなぁ。

掲示板やメールで質問してみるとか。
ここも見てるだろうけどリアクションは無いと思うのん。

つうかKanoさんモテモテね。きゃは。
0103名無しさん@お腹いっぱい。01/11/22 00:34ID:hpjXjtgw
http://www.genki.co.jp/soft/phantomcrash/system/index.html
このエフェクトやってみたいんですが仕組みについて
ヒントだけでも聞かせてもらえないですか?
0104名無しさん@お腹いっぱい。01/11/22 00:54ID:GSH8d9fw
>>103
上で散々っぱら話されている動的スフィアマップと大体同じ考え
なんじゃないかな。
違うのはテクスチャー行列(というかテクスチャの座標変換)
を反射から屈折にするくらいかな。
っていうか屈折って行列で表現できるのかはわからないけど。
0105名無しさん@お腹いっぱい。01/11/22 01:15ID:???
某掲示板ではバックバッファの絵をテクスチャにして、
モデルの頂点を透視変換かけたものをuv座標に
してから適当にずらすとかあったが。(んなアホな)

他の可能性としてはバンプマッピングも
考えられんか?おれには解らんが。
0106名無しさん@お腹いっぱい。01/11/22 01:18ID:???
>>103
別に、動的スフィアみたくテクスチャを変形しなくても
背景をテクスチャにレンダリングしてそれをそのまま
環境マップ用のテクスチャとするだけでそれっぽく見えないかな?
変換の式を適当にいじる必要はあるだろうけど。詳細はわからんっす。

屈折マッピングについては
↓聖地とか
http://developer.nvidia.com/view.asp?IO=Refraction_paper
↓聖書とか
Game Programming Gems
・・・にあります。
0107名無しさん@お腹いっぱい。01/11/22 01:21ID:???
>>105 かぶった。しかも(んなアホな)っていわれてるし。(;;)鬱出汁脳
■ このスレッドは過去ログ倉庫に格納されています