鬱だ氏のう DirectX (Part 8)
■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。
03/03/03 16:25ID:bb2JYtGF初心者用相談室では扱わないような少し高度な話題も受け持つ。
■ 過去スレ
Part 1 http://piza.2ch.net/tech/kako/966/966655286.html (プログラム板)
Part 2 http://pc3.2ch.net/test/read.cgi/tech/997101556/ (プログラム板)
Part 3 http://game.2ch.net/gamedev/kako/1005/10051/1005119775.html
Part 4 http://game.2ch.net/gamedev/kako/1016/10162/1016276254.html
Part 5 http://game.2ch.net/test/read.cgi/gamedev/1027351925/
Part 6 http://game.2ch.net/test/read.cgi/gamedev/1033920036/
Part 7 http://pc2.2ch.net/test/read.cgi/gamedev/1039509250/
0102名前は開発中のものです。
03/03/12 17:50ID:cEGESv7c0103あぼーん
NGNG0104名前は開発中のものです。
03/03/12 19:05ID:0K/wKlGYSDKのサンプルが使ってるだろ
0105あぼーん
NGNG0106名前は開発中のものです。
03/03/13 16:48ID:Ii9bz48e三角形ストリップの組み合わせに変換するアルゴリズムってあるんでしょうか?
総当りで最適解を探すと O(2^n)なのでとても使い物にならないです。
0107あぼーん
NGNG0108名前は開発中のものです。
03/03/13 18:34ID:jwJvEsOxGetDXVersionとか言うのを聞いたことあるけど使い方が分からないです。
開発環境はC++.netです
0109名前は開発中のものです。
03/03/13 19:32ID:k+shlABQ腐るほど研究されてると思うが、googleで検索すらしてないのか?
0110あぼーん
NGNG0111名前は開発中のものです。
03/03/14 01:24ID:ypb+B9/2DirectXに限って言うなら、NVTRISTRIPを使ってみるのはどうよ?
http://developer.nvidia.com/view.asp?IO=nvtristrip_library
0112あぼーん
NGNG0113名前は開発中のものです。
03/03/14 13:14ID:LEfIlZagttp://www.microsoft.com/japan/msdn/library/ja/jpdx8_c/hh/directx8_c/_dx_version_checking_dxintro.asp
ついでに、サンプルソースをよく探してみなされ。
0114あぼーん
NGNG0115名前は開発中のものです。
03/03/15 03:37ID:lWsehBXVオブジェクトから順にレンダリングするって事は理解できるんですが、半透明オブ
ジェクト同士が重なった場合のことを考えると、ポリゴン単位でZソートする必要が
ありますよね。
さらに半透明ポリゴン同士が重なった場合、ポリゴンを分割して面が交差しないよ
うにする工夫も必要だと思います。
でもこんな事やるとRenderStateの変更や頂点バッファへのアクセスが頻繁に起こ
ってしまいますし、何よりこんなプログラムを作るのは難しいと思います。
実際、市販のゲームとかはどうやってるでしょうか?
0116名前は開発中のものです。
03/03/15 04:48ID:DYNwlk+J0117あぼーん
NGNG0118名前は開発中のものです。
03/03/15 06:54ID:oN83Oao0これは作ってみるとわかる。
ポリゴン単位でソートしたくなる部分は、人物の髪の毛・草や木の葉だね。
この部分は気の済むまでやれ。
0119名前は開発中のものです。
03/03/15 06:58ID:DSMrL0/+なんだかすごいことになっています
0120あぼーん
NGNG0121名前は開発中のものです。
03/03/15 13:18ID:N4pcUhcX0122名前は開発中のものです。
03/03/15 13:24ID:lWsehBXV今やりたいのが、円柱にテクスチャを貼った半透明の竜巻のエフェクトと
加算合成の爆発のエフェクトなんですけど、この両者が重なってもちゃん
と見えるようにするには、ポリゴン単位ソート+重なったポリゴンを分割
ってのをやるしかないんでしょうか
0123クラッシュ ◆zmflhpEGDw
03/03/15 13:55ID:5kjc56l/半透明を含むものだけをZソートして後ろから描画(Z書き込み=FALSE Z比較=TRUE)
でいいんじゃない?
0124名前は開発中のものです。
03/03/15 14:13ID:lWsehBXVしかし、今回の竜巻は大きくて奥行きもかなりあります。
かなり太い竜巻で街が壊されて爆発が起きてるところを想像して下さい。
断面図はこんな感じで。。
| |
|竜巻 |
| 人
| < > ←爆発
| V
凸凸凸凸凸凸凸凸凸←街
爆発は円柱状の竜巻の中でも外でも起こりますし、図のように竜巻と
かさなっている場合もあります。オブジェクト単位のソートだと、こういう
表現で問題が出ます。どうしたらいいですか
0125名前は開発中のものです。
03/03/15 14:20ID:CBUe4G930126名前は開発中のものです。
03/03/15 14:24ID:pQd+YFZG0127クラッシュ ◆zmflhpEGDw
03/03/15 15:34ID:rik7CotW竜巻を表と裏に分割なり縦に分割なりするのがベストかなあ。
リアルタイムだとどうしても制約はできてしまうから、その制約を
前提にしたデータ作りは避けられないと思うよ。
0128名前は開発中のものです。
03/03/15 22:04ID:lWsehBXVありがとうございました。
今回はこれで対応できましたけど、プレステのゲームとかってどうやってるんでしょうか。
最近出たアヌビスなんてアルファブレンド使いまくりですが・・・
0129名前は開発中のものです。
03/03/16 01:57ID:IqCtVYEPスキニングやトゥーンシェードはサンプルが山ほどあるから大丈夫なんですが、
顔のアニメーションをどうやったらいいのかわかりません。
くちパク、まばたき、視線操作、表情変化などをやりたく思います。
FFXくらい動いたら言う事無しなんですが。どうやればいいのでしょうか。
0130あぼーん
NGNG0131名前は開発中のものです。
03/03/16 03:54ID:8C6BxU150132あぼーん
NGNG0133名前は開発中のものです。
03/03/16 11:39ID:XeJMShXcTweening使ったら?
0134名前は開発中のものです。
03/03/16 12:07ID:h9gzgqqkさらに頂点バッファを減らすために、座標、テクスチャ座標、頂点の色、法線などを
別個に作ってそれのインデックスをつくって、インデックスバッファがそれを参照
するような形にしようと言う動きは無いんですか?
0135名前は開発中のものです。
03/03/16 12:47ID:RPGdgCPgすでにストリームが複数あるだろうが。
0136名前は開発中のものです。
03/03/16 14:43ID:io+cbLoFIDがIDがああっ
0137名前は開発中のものです。
03/03/16 14:53ID:JNj+EWjlすごい!!あんたは神!!
0138名前は開発中のものです。
03/03/16 14:55ID:aUQnrCrnキタ━━━━━━(゚∀゚)━━━━━━ !!!!!
0139名前は開発中のものです。
03/03/16 16:09ID:NSlDXVUjで、この場合ってあっちのスレは終了なの?
0140名前は開発中のものです。
03/03/16 16:53ID:zCeAM5Bb神だ!神がどう動くかだ!
0141あぼーん
NGNG0142名前は開発中のものです。
03/03/16 19:00ID:UGGnfUeC0143あぼーん
NGNG0144名前は開発中のものです。
03/03/16 20:29ID:Q9bXqTGR0145名前は開発中のものです。
03/03/16 20:30ID:roqGfuoVgoogleは特定の言語のサイトだけを検索できるよ。
0146あぼーん
NGNG0147144
03/03/16 21:25ID:t5LcL5Kkできねーよ馬鹿!
氏ね馬鹿!
お前のような馬鹿は馬鹿の一等賞だ馬鹿!
0148あぼーん
NGNG0149名前は開発中のものです。
03/03/16 23:27ID:GWAdr3Lxほらよ。これで検索しな。
ttp://www.google.co.jp/search?as_q=DirectX&num=10&hl=ja&ie=UTF-8&oe=UTF-8&c2coff=1&btnG=Google+%E6%A4%9C%E7%B4%A2&as_epq=&as_oq=&as_eq=&lr=lang_fr&as_ft=i&as_filetype=&as_qdr=all&as_occt=any&as_dt=i&as_sitesearch=
0150名前は開発中のものです。
03/03/17 00:16ID:XSMSvRu20151名前は開発中のものです。
03/03/17 00:43ID:6HdY2/hF0152あぼーん
NGNG0153名前は開発中のものです。
03/03/17 11:01ID:cUb9kLSC0154名前は開発中のものです。
03/03/17 18:36ID:VGpS7TLv0155名前は開発中のものです。
03/03/17 21:39ID:Odh3Hm+m0156名前は開発中のものです。
03/03/17 22:02ID:GnLbo7lbCPU・ビデオカードをグレードの高いものにする
0157名前は開発中のものです。
03/03/17 22:09ID:r8FTcU4J描画しない
0158名前は開発中のものです。
03/03/17 22:28ID:Odh3Hm+mワラタ
0159名前は開発中のものです。
03/03/17 23:03ID:ZJJFntE0うちのモニタは320x200できるぜ。
0160名前は開発中のものです。
03/03/17 23:11ID:bYoYst8Tはいはいダウト
解像度を下げても速度は変わらないよ
勉強し直してまた来てね
0161名前は開発中のものです。
03/03/17 23:11ID:CC77FEGd157はマジレスだとおもうが。
0162名前は開発中のものです。
03/03/17 23:13ID:CC77FEGd解像度を低くすれば低解像度のテクスチャを使ってもあまり気にならんし、
普段よりもローポリゴンモデルを使ってもだませると思うんだが。
普通はやらんがナー
0163名前は開発中のものです。
03/03/17 23:17ID:bYoYst8Tはいはいダウト
解像度を下げごまかそうにもフルスクリーンでは意味無いよ
勉強し直してまた来てね
0164あぼーん
NGNG0165名前は開発中のものです。
03/03/17 23:21ID:F3tILkQF0166名前は開発中のものです。
03/03/17 23:26ID:bYoYst8Tはいはいダウト
あなたは159
勉強し直してまた来てね
0167149
03/03/17 23:48ID:ihVjtNNd0168名前は開発中のものです。
03/03/17 23:52ID:TEZKAErQこの発言、かなり謎
VSYNC待ちとかやっててFPSあがらなかったから意味が無いと勘違いした
位しかこんな発言をする状況がわからん
解像度を下げても速度は上昇しない が真であるとすると
解像度を上げても速度は低下しない も真になってしまう
これが真だったらすばらしい世の中になるんだが・・・
0169名前は開発中のものです。
03/03/18 00:07ID:LaTsV02p転送量減るから明らかに下がると思うんだけど……ってこれは2Dか。
3Dの場合はレンダリングの負担が減るから上がる?そうでもない?
0170名前は開発中のものです。
03/03/18 00:15ID:MB/llWqvポリゴン数が少なめで、αでの重ね描きが多いなら、速度の変化は大きいだろう。
逆にポリゴン数がむっちゃ多ければ、頂点転送がネックになるだろうから、
速度はそんなに変わらんだろうね。
解像度、というか描画されるときのピクセル数に応じて
モデルをLODしてあげるのがベスト。ああ、言うのは簡単。
0171名前は開発中のものです。
03/03/18 00:20ID:1abL5V3T0172名前は開発中のものです。
03/03/18 00:40ID:27p31k4Bあんたはやるのかい?
0173名前は開発中のものです。
03/03/18 00:43ID:MB/llWqvだから解像度で合ってると思うけど・・・
バックバッファを固定のピクセル数で描画して、
縮小bltすることでアンチエイリアスするとかいう話かな?
あんまりメジャーなやり方じゃないような気もするけど、
FFXIとかはやってるんだっけ。
0174あぼーん
NGNG0175名前は開発中のものです。
03/03/18 02:19ID:vu1bRTRv0176名前は開発中のものです。
03/03/18 02:23ID:vu1bRTRvhttp://developer.nvidia.com/docs/IO/4449/SUPP/GDC2003_PipelinePerformance.pdf
ここらへんに色々ヒントがあるんでないかい。
0177名前は開発中のものです。
03/03/18 02:24ID:JNOt4two真性のアフォか?
普通はやらんと書いてる上に突っ込み。
これだけでも見事だが、
>解像度を下げごまかそうにもフルスクリーンでは意味無いよ
はじめっから320*200でディティール潰れてるのにごまかすも糞もないというか
明らかに>159の言ってることを理解してないと思うんだが。
>うちのモニタは320x200できるぜ。
どう考えてもフルスクリーンの320*200って意味だろ?
それを前提に書いてるんだが・・・。
163は日本語勉強し直してまた来てね。
0178名前は開発中のものです。
03/03/18 03:15ID:yFGYF0mB技術の肥やしにもならんぞ。
0179名前は開発中のものです。
03/03/18 03:17ID:dmYl8h+P実際ゲームを組んだときに大きな効果があったのはこの二つだったな。
描かないってのはクリッピングやカリングやソートをしっかりやれってことだし。
グラボがショボイと機能のサポートはなんとかできるが速度のサポートはそんなにはできない。
じゃあなんとか速度をあげる工夫をしたいとこだけど描かない処理以上に効果が期待できるものはない。
0180あぼーん
NGNG0182155
03/03/18 13:26ID:wiJ8wouC0183名前は開発中のものです。
03/03/18 13:48ID:gYLRZrvG3Dデバイスからみた大きさとは関係ないということ
速度の問題ならバックバッファを小さくとって、
ビデオカードが表示可能な解像度に設定すればいい
>うちのモニタは320x200できるぜ。
とサポートが怪しい解像度を使う必要はない
0184155
03/03/18 14:54ID:wiJ8wouCオブジェクトを回転させようとすると、巨大化したり変な形になってしまいます。
D3DXMatrixOrthoLH(&matProj,320.0f,240.0f,0.0f,10000.0f);
m_pd3dDevice->SetTransform(D3DTS_PROJECTION, &matProj);
float t_y=45.0f;
D3DXMATRIXA16 matworld;
D3DXMatrixIdentity(&matworld);
D3DXMATRIXA16 temp,res;
D3DXMatrixRotationY( &temp,t_y);
D3DXMatrixMultiply(&res,&matWorld,&temp);
matWorld=res;
float x=668f,y=64.0f,z=668.0f;
D3DXMatrixTranslation(&temp,x,y,z);
D3DXMatrixMultiply(&res,&matWorld,&temp);
matWorld=res;
m_pd3dDevice->SetTransform(D3DTS_WORLD, &matWorld );
//メッシュ描画
m_pd3dDevice->DrawSubset(i);
こんなソースです。
t_yを0にすると正常に描画されます。たすけてください。
0185名前は開発中のものです。
03/03/18 15:05ID:gYLRZrvG>D3DXMatrixRotationY( &temp,t_y);
これでは出来なくて当たり前
0186155
03/03/18 15:10ID:wiJ8wouCすみません。3.14*t_y/180.0fでした。ソースではちゃんとなっていたんですがこっち(掲示板)には書き忘れました。
でもできないんです。
0187名前は開発中のものです。
03/03/18 15:48ID:M5e1mN7f『D3DXMATRIXA16 を D3DXMATRIX と解釈する。
実際には行列のアラインメントを行わないコンパイラでこの構造体を使うと、
アラインメントを無視してしまうというバグを発見できずに、
問題が起きることがある。』
あと、179は笑い所ではないと思うが…
0188名前は開発中のものです。
03/03/18 15:49ID:I/hIMVFOD3DXMatrixOrthoLH(&matProj,320.0f,240.0f,1.0f,10000.0f);
にしたら?
0189名前は開発中のものです。
03/03/18 15:59ID:ax2Oh+v0どこかにウィンドウモードからフルスクリーンモードへの
切り替えをするプログラムの良いサンプルは無いでしょうか?
作成環境はVC++.NET、DirectX9です。
0190名前は開発中のものです。
03/03/18 16:01ID:uxd6NOfDDirectX Graphics > プログラミングガイド > チュートリアル(…) >
> プログラミングのヒント > パフォーマンスの最適化
「最速のポリゴンは描画しないポリゴンであることを忘れないこと」
偉大なる指導者ゲイツ様もこうおっしゃっておられる。
プログラミング全般においても、バグを作らないためにはコードを書くなってのは
よく言われる鉄則だよな。
0191155
03/03/18 16:02ID:wiJ8wouCすみません、なんとt_yがintになっていました。dllでエクスポートした関数の回転部分の定義がintになっておりdllを使用するアプリケーションの定義との食い違いが発生していた模様です。
修正するとなおりました。
おさわがせしました。
0192あぼーん
NGNG0193名前は開発中のものです。
03/03/18 17:56ID:GviPNe6yいや、だからさ、実際の解像度よりも大きなレンダリングターゲットを用意する必要があるのかと
アンチエイリアスだわ〜いわ〜い。などと言ったところで何の意味があるのかと
ニュアンスとして当然解像度下げる=レンダリングターゲットのサイズを小さくする
なわけで、重箱の隅つつきもいいかげんにしたほうがいいと思われ
0194名前は開発中のものです。
03/03/18 18:10ID:gYLRZrvG小さな方なら意味があると言っているんだが、なぜ大きい方にこだわるんだ?
もう一度言うが速度の問題ならバックバッファを小さくとればいいだけで
転送先の解像度は関係ない
>ニュアンスとして当然解像度下げる=レンダリングターゲットのサイズを小さくする
>なわけで、重箱の隅つつきもいいかげんにしたほうがいいと思われ
間違いを認めるのならそれでいい
次からは解像度と言わないように気を付けろよ
0195
03/03/18 19:10ID:rJ5Ix6yq0196あぼーん
NGNG0197名前は開発中のものです。
03/03/18 19:42ID:MB/llWqv解像度の比率はどれくらいがいいんだろ。
0198名前は開発中のものです。
03/03/18 20:15ID:LsVxoaNv日本のMSのサイトにあるやつ、もううごかねーでやんの。
0199名前は開発中のものです。
03/03/18 21:03ID:H/UNWxeVhttp://hkwr.com/
http://hkwr.com/bbs
0200あぼーん
NGNG0201名前は開発中のものです。
03/03/18 21:18ID:xLSGhw1cDx9 のサンプルソースを見るとよろしい。
私は、それを参考にして、Window <-> FullScreen を実装した。
■ このスレッドは過去ログ倉庫に格納されています