【C++】 DirectX初心者質問スレ Part31 【C】
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2010/09/30(木) 21:45:21これらに当てはまる人のための質問スレです。
1.C/C++は多少理解している。
2.最近DirectXを始めたばかり
3.SDKを見ても、Googleで検索しても、いまいち理解できない人
4.余計な雑談は不要ですよ
【 回答してくださる方 】
・ できるだけ優しく質問に答えてあげてください。
・ 優しく教えるのが嫌でしたら、解決するためのヒントだけでも結構です。
「ググれ」「SDK見れ」以外の回答でおながいします。
・ 神ですら理解不能な質問は無視して下さい。
【 質問する方 】
・ どんな事で躓いているのか明確にしよう。
・ 長くならないなら躓いている部分のコードを晒してみれ。
・ 解決した場合、お礼を言うのは当然だが、何をどうしたら解決したかを明確に書こう。
・ 回答して貰ったら、出来るだけお礼もしよう。
前スレ
【C++】 DirectX初心者質問スレ Part30 【C】
http://hibari.2ch.net/test/read.cgi/tech/1278214135/
0002デフォルトの名無しさん
2010/09/30(木) 22:10:17乙でござる
0003デフォルトの名無しさん
2010/09/30(木) 22:12:53作りますた
同じ感じでやったのに一旦PNGにした方が明らかに綺麗になりますた
合格レベルですか?
0004デフォルトの名無しさん
2010/09/30(木) 22:16:250005デフォルトの名無しさん
2010/09/30(木) 22:21:45もうちょっと綺麗にならんのか
つか元の画像はどんななんだ?
0006デフォルトの名無しさん
2010/09/30(木) 22:30:230007デフォルトの名無しさん
2010/09/30(木) 22:41:19元の画像は
http://www.yamagishi.or.jp/furusato/wp-content/uploads/2009/06/2009-06-27-e7b791e9a48c-017-900x598.jpgこれの手前と
http://img.pics.livedoor.com/007/6/b/6b9fd34161e46eda86c6-LL.jpglこれの真ん中の左でつ
それをフォトショで切り抜いて回転させたりして作りました
http://pc.gban.jp/img/23291.jpg
http://pc.gban.jp/img/23293.png
できたのがこれで2階調補正して白黒反転させてToolでddsにしました
0008デフォルトの名無しさん
2010/09/30(木) 22:49:49PNGってダイレクトによめたっけ?読めればアルファも保存できるんだが。
0009デフォルトの名無しさん
2010/09/30(木) 22:57:58TGAは出力できます
PNGは、最初JPGで保存してたのを名前を変えてPNGとしたらエラーになったのですが
JPGで開いてPNGでインターレース付きで保存したら透過付きで読み込めました
SDKのサンプルではよくDDSが使われてるのでDDSにしたいのですが
TooLで合成しようがフォトショで出力しようが同じものができますよね?
0010デフォルトの名無しさん
2010/09/30(木) 23:02:24何がそれを保障するかはわからんけど、
一応どっちも製品なんだから同じかどうかは知らないが、途方も無くおかしな方式は採用しないだろ。
一つの見方だが、
フォトショップの内部形式から他のステップを踏むことなくダイレクトにPNGなりDDSになったほうが品質の面では良くないかい?
0011デフォルトの名無しさん
2010/09/30(木) 23:08:01なるほど!
ようつべの動画を何回も上げて落とすを繰り返すと劣化するって動画がありましたがそんな感じですね
TGAかDDSのプラグインを探すようにします
0012デフォルトの名無しさん
2010/09/30(木) 23:15:15お前、仕組み理解しろよ
「アンチエイリアス」でググレよ
>できたのがこれで2階調補正して白黒反転させてToolでddsにしました
なんで2階調補正するんだよーーーーーーーーーーーーーーーーーーーーーーーー!
ググレって自分が何アフォなことやってるのか一発で理解できるから
0013デフォルトの名無しさん
2010/09/30(木) 23:37:37変にアンチエイリアス入れると描画順を考えないと半透明部分のZ値がおかしくなる
ソートなしでαテストのみで描画できるから完全に抜きの方が楽
という話は置いといて
元素材をちゃんと作れ、そしてαチャンネルについて勉強しろ
2階調ににした白と黒の部分が何を意味してるのか理解してるのか?
0014デフォルトの名無しさん
2010/09/30(木) 23:41:130015デフォルトの名無しさん
2010/09/30(木) 23:51:47ビルボードならいいけど
よくRPGとかであるように十字に組み合わせて配置したいときに面倒だろ?
0016デフォルトの名無しさん
2010/09/30(木) 23:58:46フォトショのDDSプラグインはNVIDIAが配布してんぞ
0017デフォルトの名無しさん
2010/10/01(金) 00:00:01ありがとうございます
アルファチャネルと間違ってググってました
つまり…PNGだと自動的にアンチエイリアスになるってことですか…?
0018デフォルトの名無しさん
2010/10/01(金) 00:01:480019デフォルトの名無しさん
2010/10/01(金) 00:08:20すいません
アルファチャンネルについてググったのですが理解できませんでした…
背景をカットしたコピーと同一ではないのですか?
ある色を透過色としてその色をスルーするのが透過の仕組みですよね?
そしてDDSだかは透過色が始めから決まってるからその範囲を黒の部分として合成してDDSを作る…みたいなイメージでした
0020デフォルトの名無しさん
2010/10/01(金) 00:14:33なんで汚く見えるのか?
ってところから理解できたの?
それとアルファ画像もその仕組みも理解してねーのかよ
いろいろ覚えることあるな
全部1つ1つ丁寧に覚えてったほうがいいぞ
1.アルファブレンド(αが0のとき、128のとき、255のときでそれぞれどうなるか?)
2.アルファチャンネルの仕組み(2階調?ありえないw)
3.アンチエイリアスの仕組み
4.アルファ画像の作り方
の順番でしっかり覚えていかないと理解できないと思うけどな
0021デフォルトの名無しさん
2010/10/01(金) 00:19:40フォトショップの使い方とか、アルファブレンディングの仕組みとか、ファイルフォーマットの区別とか。
DirectXの前段階じゃね?
0022デフォルトの名無しさん
2010/10/01(金) 00:24:16ぐぐりました
1.アルファブレンド(αが0のとき、→透明
128のとき、→半透明
255のとき→不透明
2.アルファチャンネルの仕組み(2階調?ありえないw)→つまり、2階調にすると灰色の半透明ができないだろ!みたいなことですか…?
3.アンチエイリアスの仕組み→色のさかい目がだんだn混ざっていく?それでPNGだとアンチエイリアスになってJPGだとならないんですか?
4.アルファ画像の作り方→つまり各マスの黒から白の0〜255をα値にするってことですか…?
合ってたら理解が繋がった気がしてきた
0023デフォルトの名無しさん
2010/10/01(金) 00:29:16質問!RGBAってなんだかわっかるー??
0024デフォルトの名無しさん
2010/10/01(金) 00:32:13レッドブルーグリーンアルファの値?
アルファ…?ピクセルごとに透明度が決まってるみたいな?
0025デフォルトの名無しさん
2010/10/01(金) 00:37:49半分丸だね。
ピクセルを構成する要素で、色の3色である、赤、緑、青、に透明度の単位であるアルファチャンネルをつけたもの。
つまり、2ピクセルを合成するときにアルファチャンネルに基づいて、赤と緑と青の合成濃度が変わるということ。
それが結局透けて見えるとかガラスの表現だとかそういうほうに結びつくの。
0026デフォルトの名無しさん
2010/10/01(金) 00:41:48JPG→RBG
PNG→RBGAってこと?
フォトショで切り抜いたから端のアンチエイリアスが混ざる色が0000とかで
だからJPGだと端のコマがアンチエイリアスされず全部白に置き換わる
PNGだとアンチエイリアスされてだんだんAが0に近づくからアンチエイリアスされて見える。みたいな?
0027デフォルトの名無しさん
2010/10/01(金) 00:46:20JPEGや24bitBMPはもともとα値を保存してない(RGB)しかない
ここにグレースケール画像(0〜255段階)をα値として合成することで
ARGBのDDSとして保存するのがDirectXTextureToolのやってること
0と255の2階調なら完全な抜き絵になるし
白→黒へ徐々にグラデーションさせればアンチエイリアスになる
PNGはもともとα値を含む画像フォーマットなので
フォトショップ上でどう編集してるかにもよるけど
おそらく回転だの拡大だのしてるときにフィルターがかかって自動で縁にアンチエイリアスがかかってる
だからフォトショでPNGとして保存したものをそのまま読み込むと(DirectXTextureTool)を使わない
アンチエイリアスのかかったテクスチャが出来上がる
0028デフォルトの名無しさん
2010/10/01(金) 00:53:05半分丸だね。
JPGは別の問題があって、高圧縮の影には非可逆圧縮系の方法がさいようされてて、画像は絶対劣化する。
透明なJPGができたかは忘れた。こういう用途ではあんまり使わない。
PNGは大雑把に言えばZIPと似たような方式をとってて可逆圧縮系の方法が採用されているのと、
アルファチャンネルなどの要素も仕様に含んでいる。
PNGはアルファチャンネルが保存できるから、
そのアルファによって透過させるということは、君の言うアンチエリアスの機能も実現できるんだ。
0029デフォルトの名無しさん
2010/10/01(金) 00:53:14おおーなるほど。もう完璧にわかりました
下手すればフォトショでPNGで作っといて名前を変えるでDDSにしてもいけるんじゃないかってぐらいに理解できました
ツール要らないんじゃないかとか一瞬思ったけど、ミップマップレベルとかあるからやっぱり要るんでしょうね
0030デフォルトの名無しさん
2010/10/01(金) 01:03:32ありがとうございます
アルファ値の保存と、アルファチャンネルの保存の違いはまだよくわかりませんが
512×512ピクセルとはいえJPGの圧縮の劣化と言ってもそこまで無いでしょうし
とりあえず今は透過=PNGかGIFと覚えておきます
0031デフォルトの名無しさん
2010/10/01(金) 01:06:37まー、がんばってくれ。GL&HF!!
0032デフォルトの名無しさん
2010/10/01(金) 01:12:470033デフォルトの名無しさん
2010/10/01(金) 04:48:470034デフォルトの名無しさん
2010/10/01(金) 07:19:17まともなモデリングソフトを触って研究しようとしないんだろう?
どれだけ馬鹿なの?
0035デフォルトの名無しさん
2010/10/01(金) 07:41:49こんな短時間で理解するのは無理だよな
まあ、わからなかったら何回でも書き込みを読み直せばいい
そのうちできんだろw
0036デフォルトの名無しさん
2010/10/01(金) 07:44:16完璧に理解したつもりなんだが
0037デフォルトの名無しさん
2010/10/01(金) 07:52:11じゃあ、>>3と同じ形で出してみろよ
0038デフォルトの名無しさん
2010/10/01(金) 08:40:30何をですか?
0039デフォルトの名無しさん
2010/10/01(金) 09:33:37アルファチャンネルをちゃんと適用したものを
0040デフォルトの名無しさん
2010/10/01(金) 09:51:14すいません理解できません
どういうことですか?
具体的に何をどうしたやつを出せと言ってるのかゆってください
0041デフォルトの名無しさん
2010/10/01(金) 10:20:030042デフォルトの名無しさん
2010/10/01(金) 10:26:390043デフォルトの名無しさん
2010/10/01(金) 10:33:10いったいこいつらは何を言っているんだ?
0044デフォルトの名無しさん
2010/10/01(金) 10:43:27淵が綺麗にならない問題はあきらめるってこと?
でも今回のレスって綺麗に貼れないか云々じゃなかったっけ?
0045デフォルトの名無しさん
2010/10/01(金) 10:47:06>>3の汚い草を改善できなかったらいままでのやり取りはすべて無駄だな
0046デフォルトの名無しさん
2010/10/01(金) 10:51:26それを分離しなければどうにもならず、
前段階の問題なんだからアンチエイリアス云々でどうにかなる話ではない。
手作業で地道に修正するしか無い。
0047デフォルトの名無しさん
2010/10/01(金) 10:57:19>>3じゃPNGの方でも汚すぎるってこと?
0048デフォルトの名無しさん
2010/10/01(金) 10:58:280049デフォルトの名無しさん
2010/10/01(金) 10:59:18白と融合してる部分はアルファで見えないぐらいに消しちまえばいいんじゃね?
アルファチャンネル理解して淵を綺麗にできることが今回の話を理解できたってことだと思うけどな
>>47
そういう話だっただろ
0050デフォルトの名無しさん
2010/10/01(金) 11:00:450051デフォルトの名無しさん
2010/10/01(金) 11:02:13それもある
でも>>3の画像って2階調で処理しちゃった奴でしょ?
0052デフォルトの名無しさん
2010/10/01(金) 11:41:352階調でも十分だと思うぞ
やっつけだけど
http://www5b.biglobe.ne.jp/~mya_a/dx/23293.dds
0053デフォルトの名無しさん
2010/10/01(金) 11:48:140054デフォルトの名無しさん
2010/10/01(金) 12:04:03あるエフェクトの表現方法について教えていただきたいのです。
よくRPGとかの戦闘シーンで件で切りつけた瞬間に本当に切ったような光が
ランダムに描画されて消えていくエフェクトを見たことあると思いますが、
それを表現したいのです。
具体的に言うとテイルズオブヴェスペリアのユーリの秘奥義である漸毅狼影陣
で切りつける瞬間に出る光のことです。
↓の動画の一番最初の技のやつです。
http://www.nicovideo.jp/watch/sm9545804
何がわからないのかといいますと、どういう画像を使って、どのような描画を行えば
よいのかが分かりません。
三角形の画像を使って、拡大しながら加算ブレンドするとか、ポリゴンの頂点を急激に伸ばしながら描画するとか
そういう表現で説明していただけると助かります。
コード等は必要ありません。
表現方法を教えてください。
最高のRPGを作りたいのです。よろしくお願い致します。
0055デフォルトの名無しさん
2010/10/01(金) 12:10:41テクスチャに動画貼り付けてEND
005654
2010/10/01(金) 12:16:07テクスチャに動画なんて貼れません。
DirectXの知識自体はあるのです。
エフェクトを表現するスキルが不足しているんです。
よろしくお願いします。
0057デフォルトの名無しさん
2010/10/01(金) 12:30:00動画から画像を取りだして、更新が必要なフレームでテクスチャを書き換えればいいだけだよ。
005854
2010/10/01(金) 12:34:15ああいうエフェクトは最初から、一つの画像を色々プログラムで駆使して表現しているのではなく、
何枚もの画像を使って、切り換えているだけなんでしょうか?
0059デフォルトの名無しさん
2010/10/01(金) 12:43:06なんでレベル低いくせに背伸びするんだw
http://www.shader.jp/xoops/html/masafumi/directx9/DShow/dshow001.htm
動画にZ値をもたせておけば前後関係もちゃんと表現できるぞ
α情報をもたせておけば透過もできる
0060デフォルトの名無しさん
2010/10/01(金) 12:50:50α値含むエフェクト画像を加算合成
全体の透明度を0.0→1.0→0.0の変化と
αテストの閾値を0→255の変化を同時進行させているように見える
0061デフォルトの名無しさん
2010/10/01(金) 12:50:54そうです
フォトショでまず自動選択ツールとか消しゴムで切り抜いて、白紙を背景にして保存して、2階調補正して透過のために白黒ファイルを作って、ツールで重ねました
jpgの時の散らばりが無くなったので結構満足してたのですがどうやるのが正解なのでしょうか?
>>52
自分の作ったPNGと違いがわかんねえ…あんまり変わらないような
それと、グラボ買ってきたから今から取り付ける
これからはトゥーンレンダリングしまくってやんよ
0062デフォルトの名無しさん
2010/10/01(金) 12:55:480063デフォルトの名無しさん
2010/10/01(金) 12:56:58透明な線ポリや板ポリを発光させたり、
板ポリ+アルファ付テクスチャを発光 & フェードイン/アウトさせたりするんじゃないの?
負荷は増えるだろうけどパーティクル使っても可能だろう。
何にせよ応用思考の全く出来ない人っぽいので、ググるか大き目の本屋に行ってみる事をお勧めする。
タイトルは忘れたが、その手のエフェクトについて解説した本がある。
シェーダー関係だったかな?
0064デフォルトの名無しさん
2010/10/01(金) 12:59:18あいつはテクスチャアニメーションの代わりに使おうとしてたクズだろ
あんなのといっしょにするな
0065デフォルトの名無しさん
2010/10/01(金) 13:06:38006654
2010/10/01(金) 13:09:06DirectShowを使えば可能なんですね。まったく知りませんでした。
私の知識不足です。
>>60
なるほど。参考になります。ありがとうございます。
>>63
ありがとうございます。
シェーダーもそこそこ扱えるので、
本の名前思い出したら、また書き込んでいただけると助かります。
0067デフォルトの名無しさん
2010/10/01(金) 13:09:180068デフォルトの名無しさん
2010/10/01(金) 13:10:42で体験版を落として30日使い込んで、必要最低限の知識を学べ。
いきなり0からやろうとするから、右も左も分からないんだよ。
0069デフォルトの名無しさん
2010/10/01(金) 13:16:26台所で料理してるオカンの手元が光りまくってるのを想像してしまった。
っていうか、質問するほどのネタでもないような。
放射状に筋を描いて、ポストエフェクトでライトブルームを加えてるだけじゃない?
中心部分には円形の光を加えていそうだが。
007054
2010/10/01(金) 13:19:58ありがとうございます。ダウンロードしてやってみます。
>>69
言い方おかしかったですねw。すみません。
なるほど。ありがとうございます。
0071デフォルトの名無しさん
2010/10/01(金) 13:21:500072デフォルトの名無しさん
2010/10/01(金) 13:48:02どうやったらDirectXマスターできるんだよ
0073デフォルトの名無しさん
2010/10/01(金) 14:17:50仮になるにしてもとりあえずサンプル全部作れるようになってからそんなこと言ってるのか?
0074デフォルトの名無しさん
2010/10/01(金) 14:18:320075デフォルトの名無しさん
2010/10/01(金) 14:28:38いいと思う。
0076デフォルトの名無しさん
2010/10/01(金) 14:33:420077デフォルトの名無しさん
2010/10/01(金) 14:35:59先にOpenGLでもやれ
0078デフォルトの名無しさん
2010/10/01(金) 14:38:490079デフォルトの名無しさん
2010/10/01(金) 14:39:360080デフォルトの名無しさん
2010/10/01(金) 15:17:04DirectXのチュートリアルからはじめたらどうか?
虎表示するのあったじゃん
あれやるとモデルの表示がわかるからその後
固定モデル→アニメーションモデル→スキンメッシュモデル→各種シェーダ
って自分ライブラリ作っていったほうがランクアップしやすいぞ
DXライブラリの中身とかなにやってるのか読まなきゃいけないとか結構きついんじゃね?
(いや、ソースついてるのかどうかから俺は詳細知らないんだが・・・)
他の人の作ったもんだし
0081デフォルトの名無しさん
2010/10/01(金) 20:24:590082デフォルトの名無しさん
2010/10/01(金) 20:53:330083デフォルトの名無しさん
2010/10/01(金) 20:56:190084デフォルトの名無しさん
2010/10/01(金) 20:59:00気に入らないなら「DirectX上級者質問スレ」でも作りたまへ
0085デフォルトの名無しさん
2010/10/01(金) 21:01:020086デフォルトの名無しさん
2010/10/01(金) 21:14:330087デフォルトの名無しさん
2010/10/01(金) 22:09:520088デフォルトの名無しさん
2010/10/01(金) 22:25:56調度このスレに来てる層だろ
0089デフォルトの名無しさん
2010/10/01(金) 22:34:380090デフォルトの名無しさん
2010/10/02(土) 00:21:36グラボはオンボで、グラボのサイトを見てるとDirectX10.1対応(キッ
とか書いてあるのですがこれはどういうことなのでしょうか?
0091デフォルトの名無しさん
2010/10/02(土) 00:23:140092デフォルトの名無しさん
2010/10/02(土) 00:25:06当然か
0093デフォルトの名無しさん
2010/10/02(土) 00:28:030094デフォルトの名無しさん
2010/10/02(土) 00:37:01知らんがな
dxdiagじゃなくてSDKインストールフォルダの\Utilities\binフォルダにあるDXCapsViewer.exeを実行して
メニューからprint whole tree to fileを選ぶ
exeと同じフォルダにdxview.logというファイルができるのでそれを晒したら話が早いと思うよ
0095デフォルトの名無しさん
2010/10/02(土) 00:46:460096デフォルトの名無しさん
2010/10/02(土) 01:42:15はやくねー
0097デフォルトの名無しさん
2010/10/02(土) 07:07:35なにかいかんのかね
0098デフォルトの名無しさん
2010/10/02(土) 07:10:580099デフォルトの名無しさん
2010/10/02(土) 07:33:09WARPが分かっていなくてソフトウェアエミュレーションとぼかして言ったり、
Direct3D11エミュレーション機能が無いことが分かっていなかったりで、
あるようなニュアンスで答えるような>>91って何なの?
ちなみにWARPはVistaでも使えるし、機能レベルはDirect3D10まで。
0100デフォルトの名無しさん
2010/10/02(土) 08:30:02シェーダーがおかしいとか
αテストの閾値が64以上になってるととか
0101デフォルトの名無しさん
2010/10/02(土) 08:40:35煽るだけの馬鹿はいい加減消えてください
0102デフォルトの名無しさん
2010/10/02(土) 09:20:55よくそんな姿勢で技術者やってられるなと思う
すぐに仕事なくなっちゃうし
職場でも浮いちゃうと辞めるしかなくなっちゃうぞと思う
0103デフォルトの名無しさん
2010/10/02(土) 09:23:22エフェクトを難しく考えすぎなんじゃないか?
一見して派手に見えるエフェクトはもうほとんど絵の問題でプログラムどうこうってのは少ない
エフェクト専門にやってるデザイナさんにツールみせてもらったけどあれは素人がなんとかできるもんじゃない
基本上がってきたエフェクトアニメーションを再生してるだけってのが実態だと思うぞ
あえて、アニメーション無しの
透明度変化、回転のみでやってみたけど
いかんせん絵の専門家じゃないのでしょぼさが隠しきれない
これも絵次第でなんとかなるんじゃないかなぁと思うんだが…
http://www5b.biglobe.ne.jp/~mya_a/dx/effect.html
0104デフォルトの名無しさん
2010/10/02(土) 09:24:18天使ちゃんマジ天使
0105デフォルトの名無しさん
2010/10/02(土) 10:21:590106デフォルトの名無しさん
2010/10/02(土) 10:40:240107デフォルトの名無しさん
2010/10/02(土) 10:44:12モデルにする意味がわからない
0108デフォルトの名無しさん
2010/10/02(土) 10:50:11単純に職場のデザイナさんがアニメーション形式で作ってきてくれるってだけ
俺は画面に出すだけw
0109デフォルトの名無しさん
2010/10/02(土) 11:06:04十分よくできてると思うよ。
筋の方のテクスチャの半透明の部分をもっと増やして太くすると
ライトブルームっぽくなるかも。
0110デフォルトの名無しさん
2010/10/02(土) 11:11:23本屋に雷や炎、水しぶき、雲、煙、岩のテクスチャの描き方的な本ってあるんだぜ
俺がもってる本(photoshop デザインコレクション)が絶版状態だから似たような本を探してくればいいんじゃね?
デザイナさんもそーゆーの見て描いてたしw
0111デフォルトの名無しさん
2010/10/02(土) 13:15:48これで俺も3Dゲームプログラマーの仲間入りだおwwwwwwwwwwwwwww
0112デフォルトの名無しさん
2010/10/02(土) 13:31:22スキニングできましたか?
スキニングできましたか?
0113デフォルトの名無しさん
2010/10/02(土) 13:40:10なんで2回言うんですか…
0114デフォルトの名無しさん
2010/10/02(土) 13:42:05大事なことなので2回言いました
0115デフォルトの名無しさん
2010/10/02(土) 15:22:52いまやってる方法だとどうも描写順に表示してしまってるようで不便でして
0116115
2010/10/02(土) 15:33:570117デフォルトの名無しさん
2010/10/02(土) 17:28:090118デフォルトの名無しさん
2010/10/02(土) 19:16:340119デフォルトの名無しさん
2010/10/02(土) 19:33:250120デフォルトの名無しさん
2010/10/02(土) 19:38:05効率の面でintrusive_ptr、CComPtrをつかえってことですよね?
0121デフォルトの名無しさん
2010/10/02(土) 19:40:240122デフォルトの名無しさん
2010/10/02(土) 22:11:09余計な処理のないCComPtr一択っしょ
0123デフォルトの名無しさん
2010/10/02(土) 22:24:370124デフォルトの名無しさん
2010/10/03(日) 02:44:110125デフォルトの名無しさん
2010/10/03(日) 03:34:030126デフォルトの名無しさん
2010/10/03(日) 03:45:03そういうのを描く用のブラシとテクニックがあってだな
0127デフォルトの名無しさん
2010/10/03(日) 03:47:020128デフォルトの名無しさん
2010/10/03(日) 05:42:54Device->SetTexture(ステージの番号,ポインタ)
とする時のステージを指定するのって
Effect->SetTexture("識別子",ポインタ)でする時はどうすれば良いのでしょうか?
0129デフォルトの名無しさん
2010/10/03(日) 06:03:56pEffect->SetTexture("シェーダーのテクスチャ変数orセマンティクス", テクスチャオブジェクトへのポインタ);
0130デフォルトの名無しさん
2010/10/03(日) 06:04:18シェーダー側のテクスチャ変数を増やせば良いだけじゃ
0131デフォルトの名無しさん
2010/10/03(日) 06:06:46フォトショ
http://macototo.cool.ne.jp/junics/book.html
0132デフォルトの名無しさん
2010/10/03(日) 06:11:45>>130
ありがとうございます
ずっとググってるのですが全然理解できません
ステージの番号iはfxファイルの中のTexiと繋がっているのでしょうか?
0133デフォルトの名無しさん
2010/10/03(日) 06:26:15指定するのはステージ番号じゃないよ。リファレンスにはステージ番号なんて書いてないだろ。
SetTexture(D3DXHANDLE hParameter, LPDIRECT3DBASETEXTURE9 pTexture);
IDirect3DDeviceのSetTextureとID3DXEffectのSetTextureは違うモノだ。
0134デフォルトの名無しさん
2010/10/03(日) 06:34:10http://bbx.hp.infoseek.co.jp/cgi-bin/bbx.cgi?log=33&vew=408
0135デフォルトの名無しさん
2010/10/03(日) 06:37:20char number[] = {"01234567"};
for(int i=0;i<8;i++){
//テクスチャの取得
LPDIRECT3DBASETEXTURE9 temp_tex = NULL;
aDevice->GetTexture(i,&temp_tex);
//テクスチャがなければ終わる
if(!temp_tex)break;
//テクスチャの設定
string out = "texture";
out.push_back(number[i]);
effect->SetTexture(out.c_str(),temp_tex);
temp_tex->Release();
}
0136デフォルトの名無しさん
2010/10/03(日) 06:49:24>>133
だろ。に笑ってしまったのですがw
>>134
>>135
よくわかりません…具体的にはマルチレンダリングターゲットをしてて0と1とあるのですが
サンプルだとdevice->SetTexture(1or0,ptex)で指定してるのでわかりやすいのですが
>>135だと全くeffect->を使ってないのですが自分は殆どeffect->SetTexture("g_texture",ptex)を使ってるのでどうすれば良いのかわからないのです
effectでやりたいのですがこういう時どうすれば良いのでしょうか?
0137デフォルトの名無しさん
2010/10/03(日) 06:51:08目が腐ってました
0138デフォルトの名無しさん
2010/10/03(日) 06:54:550139デフォルトの名無しさん
2010/10/03(日) 06:55:30黙れよカス
0140デフォルトの名無しさん
2010/10/03(日) 06:56:09SetTexturetとSetRenderTargetを勘違いしてたってオチ?
0141デフォルトの名無しさん
2010/10/03(日) 07:00:19SetTexturetとSetRenderTargetの第一引数って関係無いんですか?
0142デフォルトの名無しさん
2010/10/03(日) 07:01:480143デフォルトの名無しさん
2010/10/03(日) 07:02:100144デフォルトの名無しさん
2010/10/03(日) 07:04:17まったく関係ないっすなぁ
0145デフォルトの名無しさん
2010/10/03(日) 07:06:220146デフォルトの名無しさん
2010/10/03(日) 10:04:44>>135もなんかずれてるし
エフェクトファイル側を出さないで何を伝えるつもりなの?
0147デフォルトの名無しさん
2010/10/03(日) 10:32:43ユーティリティーにPIXは入ってたのですがシェーダデバッガーらしきものは入ってませんでした
MSDNにもここからダウンロード的な誘導も付いてませんし、VisualStudio.Netが必要だというページもあるのですが自分はExpressEditionです
どうすれば入手できますか?
0148デフォルトの名無しさん
2010/10/03(日) 11:52:26もうシェーダ無理マジで
なんでエフェクトファイルだけCと違うんだよ
既存の↓に適当に入れただけでエラーってどういうこと?
struct VS_OUTPUT
{
float4 Pos : POSITION;
float4 Diffuse : COLOR0;
float4 Diffuse : COLOR1;←加えた
float2 Tex0 : TEXCOORD0;
};
typedef struct VS_OUTPUT{も無理だし
0149デフォルトの名無しさん
2010/10/03(日) 12:02:49変数名が同じだからでは?
fxcでコンパイルしてエラーメッセージをチェックするといいかも。
0150デフォルトの名無しさん
2010/10/03(日) 12:09:10サンクス
普通にVS_OUTPUTの前にsとかつけたら通った
なんでこんな簡単なことが気付かなかったんだろうか
2ちゃんに文句書き込んだ瞬間解決するんだよないつも
0151デフォルトの名無しさん
2010/10/03(日) 12:11:030152デフォルトの名無しさん
2010/10/03(日) 12:27:23コンパイルエラーを表示できるようにしといたほうがいいよ
OutputDebugStringAを使えばデバッグウィンドウからエラー箇所まで飛べる
hoge.fx(38,9): error X3003: redefinition of 'VS_OUTPUT::Diffuse'
0153デフォルトの名無しさん
2010/10/03(日) 12:45:52出力のところ見たら普通に載ってたな
特殊形式っぽいしツール無いと無理だと思って探しまくってるうちに洗脳されてた
0154デフォルトの名無しさん
2010/10/03(日) 13:12:37一気にトトリっぽくなったしもうあとリソース作るだけだわ
ktkr
0155デフォルトの名無しさん
2010/10/03(日) 13:27:43>>134のリンク先でその仕組みが分かって
SetTextureで設定しておいたものをシェーダ用として使うコードが>>135のつもりで貼った
まあ、でもよく考えるとすでに動くHLSLのサンプルがSDKのサンプルにあるのに
こんなことで迷ってるなんて相手にしないほうがいい人だったねw
0156デフォルトの名無しさん
2010/10/03(日) 13:33:560157デフォルトの名無しさん
2010/10/03(日) 13:35:58今回に関して言えばテクスチャが貼られてるサンプルならなんでもよかったよね?
0158デフォルトの名無しさん
2010/10/03(日) 13:44:32__、
,r´⌒ヽ,⌒ヽ,ヽ
(⌒)、 .人 λ\、 ._____
\. \ 、 ヽ./ ー ー\
|\ \ ヽ./ ( ●) ( ●)
| \ \ / (__人__) \ はいはい、どーもすみませんでした
|. \ | ` ⌒´ |
. |. |.\_ノ\ /
. |. | | \______/
. | ) .| . . ̄ ̄
. | | .|
| |.| .|
. | | .| .|
/ / / ヽ,
(__ノ ヽ、__つ
0159デフォルトの名無しさん
2010/10/03(日) 13:45:56すっごい馬鹿だったよねw
見てて惨めなくらい間抜けだよね?
SDKに載ってることを馬鹿みたいにわかんないわかんないってw
PG向いてないんと違う?大丈夫?
0160デフォルトの名無しさん
2010/10/03(日) 13:48:47だまれ死ね
0161デフォルトの名無しさん
2010/10/03(日) 13:50:52__、
,r´⌒ヽ,⌒ヽ,ヽ
(⌒)、 .人 λ\、 ._____
\. \ 、 ヽ./ ー ー\
|\ \ ヽ./ ( ●) ( ●)
| \ \ / (__人__) \ はいはい、どーもすみませんでした
|. \ | ` ⌒´ |
0162デフォルトの名無しさん
2010/10/03(日) 14:00:52質問するとき判別できるようにコテハン付けてくれ
そして質問に関係すること以外はチラシの裏にでも書いといてくれ
0163デフォルトの名無しさん
2010/10/03(日) 15:00:17もう8年になるかというのに、いまだ手を出す奴が絶えないもんな
といいつつ俺も9で完全に止まってる化石だが
0164デフォルトの名無しさん
2010/10/03(日) 15:08:37DX10.1もNVIDIAがついてこずこれも黒歴史化
Win7とDX11が普及しきる迄はまだまだDX9の天下
0165デフォルトの名無しさん
2010/10/03(日) 15:16:427以前のハードの進化とのイタチごっこが終わったからだな
今後はSMのバージョンアップ=DXのバージョンアップになっていくんだろう
0166デフォルトの名無しさん
2010/10/03(日) 16:00:14D3Dの時代は終わるかも
まあLarrabeeやCellがずっこけてるし、まだまだ先かもしれんけど
D3D9はその時でも依然現役だろうな
0167デフォルトの名無しさん
2010/10/03(日) 16:04:070168デフォルトの名無しさん
2010/10/03(日) 17:33:53ここがDirectX11をまともに動かせるようになるまでは駄目だ
0169デフォルトの名無しさん
2010/10/03(日) 18:04:35とりあえずVS2012くらいでXPのサポート打ち切って
じょじょにDXSDKのVS2010以前のサポートを打ち切ってくるだろう
世間ではまだ9が全盛でも9で開発したかったら古い環境でやってね、となるに違いない
0170デフォルトの名無しさん
2010/10/04(月) 00:32:47こんなのでた、本当にどうしよう
0171デフォルトの名無しさん
2010/10/04(月) 00:41:130172デフォルトの名無しさん
2010/10/04(月) 00:41:34どうせ「かまってトゥーン君」なんだろうが…
0173デフォルトの名無しさん
2010/10/04(月) 00:50:570174デフォルトの名無しさん
2010/10/04(月) 00:56:35弄る前の状態にしてもエラーでるしワケ分からん
0175デフォルトの名無しさん
2010/10/04(月) 01:04:58VCみたいだからF5でデバック実行する
エラーがでて止まったら呼び出し履歴をみて最後に呼ばれた関数に飛ぶ
その中に適当にブレークポイントを打って止まる原因になってる行を突き止める
まぁ、たぶんNULLインターフェースのメンバを呼んでるとか
new してないインスタンスのメンバを呼んでるとかそんな感じだと思われ
0176デフォルトの名無しさん
2010/10/04(月) 01:06:190177デフォルトの名無しさん
2010/10/04(月) 01:06:47なるほど
ありがとう
0178デフォルトの名無しさん
2010/10/04(月) 14:11:12それに使うIDirect3DSurfaceはどこから取得するのが最適でしょうか?
0179デフォルトの名無しさん
2010/10/04(月) 14:35:000180デフォルトの名無しさん
2010/10/04(月) 20:07:15October2004をインストールしているのですが、最近のバージョンの
SDKと共存させることはできるでしょうか?
インストール先を別々にするだけで良いとかだとうれしいです。
0181デフォルトの名無しさん
2010/10/04(月) 20:11:28でも、環境変数とか同名の名前の衝突とかで食い合う気がするのでその辺の調整はいるかも。
0182デフォルトの名無しさん
2010/10/04(月) 20:12:07XPからにしとけwww
どうせ貧乏人をサポートしてもそいつらコピーでしかあそばねえからwww
0183デフォルトの名無しさん
2010/10/04(月) 20:19:46インストール先を別にして
環境設定のインクルードディレクトリとライブラリディレクトリの優先順位を2004Octの方を上にしとけば基本そっちから使ってくれる
ただMSもあまりそれは推奨してないようなので不具合がでても自己責任
0184デフォルトの名無しさん
2010/10/04(月) 20:24:47個々のプロジェクトごとに設定できるようになったから良いね
その分ちょっと煩雑にはなったけど
0185デフォルトの名無しさん
2010/10/04(月) 20:29:56インストールパスが違う他環境だとそのままじゃビルド不能になるし。
0186デフォルトの名無しさん
2010/10/04(月) 20:29:59ありがとうございます、一応できるんですね
環境変数も注意して見ることにします
0187デフォルトの名無しさん
2010/10/04(月) 20:35:32フルパスを書き込まなければ良い
0188デフォルトの名無しさん
2010/10/04(月) 20:37:18結局環境依存じゃねーか
0189デフォルトの名無しさん
2010/10/04(月) 20:38:15$(WindowsSDK)
0190デフォルトの名無しさん
2010/10/04(月) 20:40:070191デフォルトの名無しさん
2010/10/04(月) 20:45:070192デフォルトの名無しさん
2010/10/04(月) 20:45:21自分で環境変数を増やせばいいじゃない
別に一個じゃなきゃいけない理由も無いんだし
0193デフォルトの名無しさん
2010/10/04(月) 21:54:52SetRenderStateで設定してるものは全て無効になるんですよね?
すべてシェーダー側で設定しろってことですか?
カリングモードの設定もですか?
よろしくお願いします。
0194デフォルトの名無しさん
2010/10/04(月) 22:07:24そうでないと話にならない。
0195デフォルトの名無しさん
2010/10/04(月) 22:13:35試しました。たぶんそうなんですが、念のための確認です。
スパルタ教育は好きです。
0196デフォルトの名無しさん
2010/10/04(月) 22:15:570197デフォルトの名無しさん
2010/10/04(月) 22:19:34やり直して確信に変わりました。ありがとうございました。
0198デフォルトの名無しさん
2010/10/04(月) 22:39:44同じアプリ内のEVR (DirectShow)です。
0199デフォルトの名無しさん
2010/10/04(月) 23:17:10αブレンドの設定は生きてるぞ
他にも生きてるもんあんだろ
0200デフォルトの名無しさん
2010/10/05(火) 00:11:450201デフォルトの名無しさん
2010/10/05(火) 00:17:340202デフォルトの名無しさん
2010/10/05(火) 00:31:12何が生きて何が生きてないんですか?
勉強不足でホントすみません。
0203デフォルトの名無しさん
2010/10/05(火) 00:32:230204デフォルトの名無しさん
2010/10/05(火) 00:41:45知らん
そのときどきで「おーこいつ生きてるじゃんoh!yeah!」って対処しろ
0205デフォルトの名無しさん
2010/10/05(火) 00:46:58もうしょうがないわね。わかったよ。
0206デフォルトの名無しさん
2010/10/05(火) 01:10:11マジレスするとシェーダー使っててもSetRenderStateは全て無効にならない
基本事項はSetRenderStateで設定しといて
シェーダー内のみで変更したい項目をシェーダー側で変更する
ID3DXEffect::Beginでパラメーターを指定しなければEndの時に変更部分が復元される
0207デフォルトの名無しさん
2010/10/05(火) 09:22:16最高です!釣りじゃありません!
ちょっと前から厳しい人がいたんで反応を見てただけです!
スパルタ教育は好きなんですけどね!
ありがとうございました!
0208デフォルトの名無しさん
2010/10/05(火) 09:33:01追加で質問です。
Beginでパラメータを指定しないってことは第二引数を0にするってことですよね?
変更部分が復元されるというのは、シェーダ内での変更がそのまま維持されるということでしょうか?
それとも、シェーダ内で変更した項目は全てリセットされ、シェーダーで変更する前の状態に復元されるということでしょうか?
何度もすみません。よろしくお願いします。
0209207
2010/10/05(火) 09:52:12シェーダ内の変更がそのまま復元され維持されるということですね。
復元されちゃったら、また元に戻さないといけないのでやめたほうが良さそうですね。
0210デフォルトの名無しさん
2010/10/05(火) 11:49:07207=209じゃないよな?
0211デフォルトの名無しさん
2010/10/05(火) 11:52:300212デフォルトの名無しさん
2010/10/05(火) 12:01:200213デフォルトの名無しさん
2010/10/05(火) 12:08:390214デフォルトの名無しさん
2010/10/05(火) 12:11:230215デフォルトの名無しさん
2010/10/05(火) 12:38:590216デフォルトの名無しさん
2010/10/05(火) 12:47:47だろ。の人は回答する気がないならいい加減消えればいいのに
0217デフォルトの名無しさん
2010/10/05(火) 12:59:42人が悪いなと思ってしまう。
0218デフォルトの名無しさん
2010/10/05(火) 13:22:130219デフォルトの名無しさん
2010/10/05(火) 13:29:030220デフォルトの名無しさん
2010/10/05(火) 13:56:58対処法がわかりません。教えて下さい。
fatal error RC1011: compiler limit : 'XSKINEXP_TEMPLATES': macro definition too big
0221デフォルトの名無しさん
2010/10/05(火) 14:00:50日本語でおk
0222デフォルトの名無しさん
2010/10/05(火) 14:08:520223デフォルトの名無しさん
2010/10/05(火) 14:12:07compiler limit : 'identifier' : macro definition "too big"
Try to split the definition into shorter definitions.
0224デフォルトの名無しさん
2010/10/05(火) 14:21:35MP3が読み込めません。
どうすればいいんでしょうか。
0225デフォルトの名無しさん
2010/10/05(火) 14:34:29XAudioだかはWMA風データなら読めるがMP3は読めない
MP3を簡単に再生するならWin32APIかDirectShow
ちゃんとやりたかったらSDKなりでWAVに変換せよ
0226デフォルトの名無しさん
2010/10/05(火) 14:36:30自前でデコードするかDirectShowを使うしかない
0227デフォルトの名無しさん
2010/10/05(火) 14:50:56oggなら展開用のライブラリもそのへんに転がってるし
0228デフォルトの名無しさん
2010/10/05(火) 15:47:29レスありがとうございます。
DirectShowやoggを検討してみます。
0229デフォルトの名無しさん
2010/10/05(火) 22:53:52結構安いと思うんだけど?
お前ら的にはあり?
IS01 1円スタート 即決有
http://page9.auctions.yahoo.co.jp/jp/auction/k134019945
http://page8.auctions.yahoo.co.jp/jp/auction/h145981541
http://page11.auctions.yahoo.co.jp/jp/auction/n91104112
http://page10.auctions.yahoo.co.jp/jp/auction/m77370908
http://page2.auctions.yahoo.co.jp/jp/auction/b113651808
IS02 1円スタート 即決有
http://page11.auctions.yahoo.co.jp/jp/auction/n93102178
http://page2.auctions.yahoo.co.jp/jp/auction/b113622828
http://page11.auctions.yahoo.co.jp/jp/auction/n92987886
0230デフォルトの名無しさん
2010/10/05(火) 22:59:49こいつ宣伝しまくってるな。
0231デフォルトの名無しさん
2010/10/05(火) 23:02:11面倒だけど癖になるからアク禁依頼だしてくるか
0232デフォルトの名無しさん
2010/10/06(水) 00:27:490233デフォルトの名無しさん
2010/10/06(水) 02:09:230234デフォルトの名無しさん
2010/10/06(水) 17:48:33読み込みから解放までを。
すみません。
0235デフォルトの名無しさん
2010/10/06(水) 18:06:57ファイル名や識別子などからリストを検索
未登録ならテクスチャを作成しリストに登録
登録済みならテクスチャへのポインタを返しAddRef(参照カウントを増やす)
必要なくなったら参照先でRelease
参照カウンタが0になったらリストから削除
0236デフォルトの名無しさん
2010/10/06(水) 18:21:14パスはレンダーステートとプログラムのセットですか?
0237デフォルトの名無しさん
2010/10/06(水) 18:22:49ありがとうございます。
描画する際もファイル名などからリストを検索して描画ルーチンに渡しているのでしょうか?
もしそうなら、その検索時間は気になりませんか?
0238デフォルトの名無しさん
2010/10/06(水) 18:24:04ハッシュマップとかIDでソートかけておくとか
0239デフォルトの名無しさん
2010/10/06(水) 18:26:450240デフォルトの名無しさん
2010/10/06(水) 18:26:55なるほど。ありがとうございます。
STLのコンテナを使わないのは何故ですか?
0241デフォルトの名無しさん
2010/10/06(水) 18:36:44しないよ
描画オブジェクトもテクスチャへのポインタを持たせておけば読み込み時の1回だけでいいだろう?
なんのための参照カウンタだ
0242デフォルトの名無しさん
2010/10/06(水) 19:30:24なるほど!本当にありがとうございます!
最高のシステムですね!参考にさせていただきます!
0243デフォルトの名無しさん
2010/10/06(水) 19:32:35本当に本当にありがとうございました!
0244デフォルトの名無しさん
2010/10/06(水) 20:44:49col.xyzw = 1と同じですか?
0245デフォルトの名無しさん
2010/10/06(水) 21:03:340246デフォルトの名無しさん
2010/10/06(水) 21:08:490247デフォルトの名無しさん
2010/10/06(水) 22:35:30自分は別な質問者ですが、
参照カウンタが0になったら、というので
内部参照カウンタの値を取得するにはどうすればよいですか?
それとも自分で数えておくのですか?
0248247
2010/10/06(水) 22:39:48ULONG = Hoge->addref() - 1;
Hoge->Relase();
ですね
0249デフォルトの名無しさん
2010/10/06(水) 23:31:020250デフォルトの名無しさん
2010/10/06(水) 23:41:090252デフォルトの名無しさん
2010/10/07(木) 09:24:14Syntax
C++
ULONG Release()
Return Value
Returns the new reference count. This value is for diagnostic and testing purposes only.
0253247
2010/10/07(木) 09:30:05まじすか ありがとうございます
じゃあ上の参照カウンタが0になったら、
っていうのは自分で数えておけということでしょうか?
それとももっとましな方法がありますか?
0254デフォルトの名無しさん
2010/10/07(木) 10:00:58自分で覚えておけばおk
0256デフォルトの名無しさん
2010/10/07(木) 11:13:43それって単にマルチスレッド環境での保証がされてないってだけじゃね?
0257デフォルトの名無しさん
2010/10/07(木) 13:58:14もっといい方法ないですか?
皆さんの描画システムを簡単に教えてほしいです。
0258デフォルトの名無しさん
2010/10/07(木) 14:06:26前提条件も把握せずに答える馬鹿が出てくるかもしれないが、
頭の悪い内容しか返ってこないぞ。
0259デフォルトの名無しさん
2010/10/07(木) 14:13:06テクスチャ型と座標を管理したクラス配列を持つクラスにやってもらう
てか、テクスチャ型と座標って何の話だ?www
0260デフォルトの名無しさん
2010/10/07(木) 14:28:26具体的に言うと、LPDIRECTD3DTEXTURE9とそのキャラクターの位置座標を渡して
描画してもらうようにしています。
>>259
こんな回答でも参考になります。
0261デフォルトの名無しさん
2010/10/07(木) 15:05:21【ソースコード】
for(i=DSBVOLUME_MAX; i>DSBVOLUME_MIN; i-=25)
{
pDSData->SetVolume(i);
Sleep(1);
}
pDSData->Stop();
フェードアウトの方法が間違っているのでしょうか。
よろしくお願いします。
0262デフォルトの名無しさん
2010/10/07(木) 15:05:49手段の説明しかしていないのが分からないのか?
0263デフォルトの名無しさん
2010/10/07(木) 15:08:46まずはサウンドカードを別の物に交換して確認する。
0265デフォルトの名無しさん
2010/10/07(木) 15:34:58日本語は通じてる?
対応云々の話なんて一切していない。
別のサウンドカードで確認しろと言ってるの。
0267デフォルトの名無しさん
2010/10/07(木) 15:40:210268デフォルトの名無しさん
2010/10/07(木) 15:44:54具体的にその2品の製品名なりチップセット名は?
0269デフォルトの名無しさん
2010/10/07(木) 16:01:10Sleep間隔を長くする。
もっとまともなタイマーを使う。
完全なフェードにするには1サンプル毎に減衰させる。
0270261
2010/10/07(木) 16:04:38wavデータをセカンダリバッファに書き込むときに減衰した値を書き込む訳ですね。
しかし、ストリーミング再生をしているので、恐らくセカンダリバッファをロックして
バッファの値を読んで減衰した値に書きなえないとダメだと思うのですが、
フェードアウトするためにバッファをロックするタイミングがわからなかったりします。
>>268
�@SoundMAX Integrated Digital Audio
�ADigidesign MBOX2Pro ← プロ用のDirectSound対応
です。
0271デフォルトの名無しさん
2010/10/07(木) 16:05:030272デフォルトの名無しさん
2010/10/07(木) 16:09:15サウンドカードとしては最悪に分類される製品。
音が出るだけありがたいと思わなければならない。
�ADigidesign MBOX2Pro ← プロ用のDirectSound対応
不明
0273デフォルトの名無しさん
2010/10/07(木) 16:19:060274デフォルトの名無しさん
2010/10/07(木) 16:20:20Sleep(1)が良くないんじゃね?
0275261
2010/10/07(木) 16:20:38>ボリューム値の変動を細かくする、Sleep間隔を長くする
10秒ぐらい掛けてフェードアウトするとなめらかなのですが・・・
50ms以内にフェードアウトしたいです。
>もっとまともなタイマーを使う
Sleepには、1ms〜14msのばらつきがあるのは確認しましたが、
もっとまともなタイマーを使うというのは、1msよりも短い時間で
ボリュームを変更するということを兼ねているのでしょうか。
>完全なフェードにするには1サンプル毎に減衰させる
本当はこれをやりたいのですが、どのような方法で実装すればよいのか
僕の技術力不足でわかりません。
>>272
>Digidesign MBOX2Pro
ミュージシャンがDirectSound対応のソフトシンセを使って
音を鳴らすことを前提に設計されているようです。
0276デフォルトの名無しさん
2010/10/07(木) 16:21:53USB接続の時点で、細かく切り替えたら駄目だろ。
0277デフォルトの名無しさん
2010/10/07(木) 16:24:49Sleep(16)くらいで試してくれ
0278デフォルトの名無しさん
2010/10/07(木) 16:27:30その衝撃がノイズになって当たり前なのは分かっているのか?
0279261
2010/10/07(木) 16:32:04僕も過去にそういう経験があったような気がします。
もともと、やりたいことは、
ストリーミング再生において、「play → stop → 曲を変えてplay」のときの
stop時に発生する、ノイズを消し去ることです。
ノイズを消し去る方法をインターネットで調べているうちに下記の方法を知りました。
----
セカンダリバッファを2つ用意して
1個目 -- 曲のplay → stop → 曲を変えてplay
2個目 -- 無音の音をずっと流す。
----
実装しましたが、stop時のノイズは消えませんでした。
>>276
IEEE1394仕様です。
>>277
了解しました。
Sleep(16)あたりで試してみます。
>>278
あまりわかっていません。
どこかのサイトで50msでフェードアウトするとstopノイズが消えると見かけたので
50msを目標にしています。
0280261
2010/10/07(木) 16:33:29>このバグの対処法として、セカンダリバッファの停止時に、
>50msくらいでフェードアウトさせると良い、とあります。
というのを見かけました・・・
0281デフォルトの名無しさん
2010/10/07(木) 16:34:305段階くらいのフェードアウトで十分だと思う
0282デフォルトの名無しさん
2010/10/07(木) 16:41:2250ms間隔でフェードアウトの間違いなんじゃ
0283デフォルトの名無しさん
2010/10/07(木) 16:59:53> 徐々に(50msぐらいで)フェードアウト
0284デフォルトの名無しさん
2010/10/07(木) 17:05:050285デフォルトの名無しさん
2010/10/07(木) 17:06:010286デフォルトの名無しさん
2010/10/07(木) 17:09:45二度とこないよ。
0287デフォルトの名無しさん
2010/10/07(木) 17:11:280288デフォルトの名無しさん
2010/10/07(木) 17:17:220289デフォルトの名無しさん
2010/10/07(木) 17:33:30DirectSoundって言うよりWDMサウンドデバイスのバグでしょ?
0290デフォルトの名無しさん
2010/10/07(木) 17:38:42さようならノシ
0291261
2010/10/07(木) 19:58:34LONG v;
float x;
for(x=0.0f; x<100.f; x+=2.0f)
{
v = (LONG)(x > 99.99f ? -10000 : -100.0f * log(100.0f / (100.0f - x)) / log(2.0f));
pDSData->SetVolume(v);
Sleep(1);
}
pDSData->Stop();
0292デフォルトの名無しさん
2010/10/07(木) 20:08:340293デフォルトの名無しさん
2010/10/07(木) 20:20:28変更間隔が短すぎてノイズが出るのは別問題
0294デフォルトの名無しさん
2010/10/07(木) 21:29:18x+=20.0fにしてSleep(10)くらいにしとけ
0295デフォルトの名無しさん
2010/10/07(木) 23:07:160296デフォルトの名無しさん
2010/10/07(木) 23:44:36timeBeginPeriod()で精度上げれるよ。
今はMSDNライブラリにも明記されてる。
ttp://msdn.microsoft.com/en-us/library/ms686298(VS.85).aspx
0297デフォルトの名無しさん
2010/10/07(木) 23:48:32Sleepから復帰させるスケジューラーがこの割り込み分解能より短い時間で仕事できないから
10msだったり16msだったりまちまち
timeBeginPeriod(1);
を呼べば精度の低いSleepでは限界があるものの1msに近づけることはできる
ところでtimeBeginPeriodを呼んでる臭いアプリ(WindowsMediaPlayerとか)を同時に立ち上げとくと
いきなりぬるぬる動き出すアプリあるよねw
そのプログラム内のみの変更じゃなくて
OS自体のタイマー割り込みに対する変更だから起動してる全てのアプリに影響があるので注意
0298261
2010/10/07(木) 23:57:37>ストップノイズが出るの
無音のwavファイルを再生中にストップしてもノイズが出なかったので、
ストップノイズの問題は発生してないようです。
>変更間隔が短すぎてノイズが出るの
>>294に教えていただいた値にしたいと思います。
しかし、最大の疑問は、
『v = x > 99.99f ? -10000 : -100.0f * log(100.0f / (100.0f - x)) / log(2.0f);』
の式が本当にあっているか、とても怪しいです。
上記の式では、音は多少小さくなりますが、きちんと無音までフェードアウトしているようには
聞こえないからです。
ちなみにこのサイトに情報が載っていました。
ttp://www.hgw-a.info/?date=200304
申し訳ありませんが、音の世界に詳しい人に上記の式を検証していただけると幸いです。
>>295
PentiumMのWinXPの場合、Sleep(1)は、timeGetTimeの精度を1msに上げて
測定したところ、ほとんどが1〜2ms、ばらつきがあり、最大が14msでした。
>>295の結果は酷く精度が悪いですね。僕の持っているマシンがたまたま精度がいいだけかも。
0299261
2010/10/08(金) 00:01:27その方法で精度を上げています。
>>297
>ところでtimeBeginPeriodを呼んでる臭いアプリ(WindowsMediaPlayerとか)を
>同時に立ち上げとくといきなりぬるぬる動き出すアプリあるよねw
興味があるので検証してみたいと思います。
0300デフォルトの名無しさん
2010/10/08(金) 01:12:120301デフォルトの名無しさん
2010/10/08(金) 01:12:49とりあえず今回に限ってはその式を適用させる意味はないよ
50msのフェードはユーザーに聞かせるための目的じゃないから普通に線形にボリュームを下げていいかと
一応書いとくと
「-100.0f」 * log(100.0f / (100.0f - x)) / log(2.0f);
↑の-100.0fがボリューム(x)が半分(50)の時の値になる
そこに書いてあることが正しくて
10db(10%)下がった時に半分に聞こえるとするなら
DSBVOLUME_MINの10%である-1000.0fじゃないとおかしい
0302デフォルトの名無しさん
2010/10/08(金) 01:24:28人のソースを意味も分からずコピペして
「怪しいです」「検証してください」はどうかと・・・。
ソースを公開している方にも失礼ですよ。明らかに間違っているならともかく。
x > 99.99f のときに -10000 (-10000が無音と仮定) になるんだから、
式が間違ってるわけではないでしょう。
検証するとすれば、
DSBVOLUME_MIN(無音) が本当に -10000 かどうか
x > 99.99f になるルートがあるか
といった部分だと思う。
>>291のソースでは、x =98 でループを抜けてしまう(xが100にならない)から
無音にならないのでは?
0303デフォルトの名無しさん
2010/10/08(金) 02:12:17あと>>261や>>291だと、時間が基準になってないから
思ったようなきれいなカーブ/線を描かないと思う。
設定するボリュームは、経過時間/フェード時間 を基準にするべき。
double total, fadetime;
clock_t start, end;
total = 0;
fadetime = 2.0f; //フェード時間(秒)
while (total < fadetime)
{
start = clock();
pDSData->SetVolume(DSBVOLUME_MIN * total / fadetime);
Sleep(1);
end = clock();
total += (double)(end - start) / CLOCKS_PER_SEC;
}
pDSData->SetVolume(DSBVOLUME_MIN)
こんな感じ?Volume計算式とかSleepの値は調整してね。
環境なくてちゃんと試してないけどご容赦を。
0304デフォルトの名無しさん
2010/10/08(金) 02:40:46いや、時間を基準とか関係無しに
線形にデジベルを下げると
音の性質上急速にボリュームが下がってしまうという話だから
言ってることは正しいが今は関係ない
組み合わせて
pDSData->SetVolume(-1000.0f*log(1.0f-total/fadetime)/log(0.5f));
とするなら有りだと思うが
0305デフォルトの名無しさん
2010/10/08(金) 02:41:38エラーですか?どうやらClearなどは成功していて、この関数だけが失敗しているようなんですが
0306デフォルトの名無しさん
2010/10/08(金) 02:53:06HRESULT: 0x8876086c (2289436780)
Name: D3DERR_INVALIDCALL
Description: Invalid call
Severity code: Failed
Facility Code: FACILITY_D3D (2166)
Error Code: 0x086c (2156)
呼び出しが無効
引数が不正か
IDirect3DDevice9::Presentの場合
BeginScene 〜 EndScene のペア間で呼び出されると、失敗し、D3DERR_INVALIDCALL を返す
参考までに教えとくと
SDKインストール時に一緒に入ってくる
DirectX Utilitiesのなかに
DirectX Error Lookupというツールが入ってる
16進ならHex、今回のように10進ならDecimalにチェックいれてLookUpでエラーコードを確認できる
0307デフォルトの名無しさん
2010/10/08(金) 03:03:54http://msdn.microsoft.com/ja-jp/library/bb173034(v=VS.85).aspx
失敗したときに原因がすぐ分かるようにしといたほうがいいよ
0308デフォルトの名無しさん
2010/10/08(金) 03:17:31>>307
ありがとうございます。BeginScene〜EndScene間で呼んじゃってました。
エラー処理って大事ですね、今度から使うようにします
0309デフォルトの名無しさん
2010/10/08(金) 08:18:21こんな便利なのあったのか
半年間知らずにdirectXやってた
0310261
2010/10/08(金) 16:46:48>>303と>>304のソースを、そのまま使わせていただきましたが、
SetVolume命令を使うとSleepを何ミリ秒にしようが、
ノイズが乗る仕様だと諦めました。
『fadetime = 0.3f; //フェード時間(秒)』にて実装しました。
>>303
ソースを動く状態で載せていただき、大変感謝しております。
>>304
ご指摘ありがとうございます。
>>303の方法とマージさせていただきました。
0311デフォルトの名無しさん
2010/10/08(金) 18:40:060312デフォルトの名無しさん
2010/10/08(金) 19:25:260313デフォルトの名無しさん
2010/10/08(金) 20:21:24ダイアログベースのアプリのこと?
CLIで作ったWindowsフォームアプリケーションのこと?
0314デフォルトの名無しさん
2010/10/08(金) 20:31:35すいません、説明不足でした。
Windowsフォームアプリケーションのことです。
普通にcppファイルに書き込めば良いのでしょうか?
0315デフォルトの名無しさん
2010/10/08(金) 21:34:52ぐぐれ
0316261
2010/10/08(金) 23:47:56CPU:atom330 OS:Win7で試してみたところ、ノイズはまったく乗りませんでした。
Win7ってリアルタイム処理が強化されているのかなって思いました。
当初の目的は
�@リソースの状態になったwavファイルをストリーミングで再生する。
�A停止する。
だけだったのですが、曲を変えるときにノイズが乗るため、
�Bフェードアウトする
という処理を付け加えました。
後になって思ったのですが、�@�A�Bの機能は、DirectMusicでも、できたのではないかと思います。
しかも、DirectMusicだったら、フェードアウトを意識せずに曲を変更してもノイズは乗らなかった
かも知れません。
DirectX9関係の本を何冊か読んだのですが、DirectMusicについては紹介されていない本もあり、
DirectSoundによるストリーミング再生が紹介されているものがほとんどでした。
DirectMusicの命令を知らないのですが、DirectSoundの上で動いてそうなので、
やはり、音量をいじってフェードアウトする場合は、同様にノイズが乗ったのかも知れません。
また、質問で申し訳ないのですが、DirectMusicで�@�Aを実装されている人はいますでしょうか。
もし、DirectMusicでフェードアウト時にノイズが乗らなかったら、DirectMusicで作り直すことも、
考えています。なお、DirectMusicを使った場合、OSの互換性の問題など発生しませんでしょうか。
よろしくお願いします。
0317デフォルトの名無しさん
2010/10/09(土) 00:13:150318デフォルトの名無しさん
2010/10/09(土) 02:09:27ただどういう実装でどの程度の精度があるのかは知らない。
ただDirectMusic自体が廃止される方向なのは周知の通り。
DirectSoundの話に戻ると、
Sleepでタイミングを作ってSetVolumeする方法は運任せすぎる。
せめてIDirectSoundBuffer8::GetCurrentPositionとかIDirectSoundNotify8でタイミングを作るべき。
ただDirectSound自体もVista以降はWASAPI上で動いてるから、期待した精度が出る保証はない。
確実にフェードを作るには、既に出ているように、バッファ内のサンプル値を直接いじるしかない。
なんつって
0319デフォルトの名無しさん
2010/10/09(土) 07:17:17リアルタイム処理云々は無関係。
いい加減な間違った情報を書き込む前に、WindowsVista以降でDirectSoundのデバイスドライバがどういう扱いになったのか調べろ。
0320デフォルトの名無しさん
2010/10/09(土) 08:21:05最近のOSのサウンド事情っぽい記事読んできたけど混乱してるなぁw
エミュレーション機能があるならこのままDirectSoundがいいんじゃねぇかと思ったけど
使っただけでエラーでたって報告あるのかよ
でも、それだと以前のゲームが動かないからそれは修正するハメになると思うけどね
俺等はとりあえずエミュにまかせてこのまま様子見か?
なんかいま色々動くのは損な気がする
0321デフォルトの名無しさん
2010/10/09(土) 13:10:03CreateTextureとかで作ったリソースについて
デバイス解放前に全て開放されているかどうかチェックしたいのですが
そういう機能ってSDK側では用意されてますか?
0322デフォルトの名無しさん
2010/10/09(土) 13:58:480323デフォルトの名無しさん
2010/10/09(土) 14:42:10なぜ存在するのでしょうか
0324デフォルトの名無しさん
2010/10/09(土) 14:45:420325デフォルトの名無しさん
2010/10/09(土) 14:45:46固定シェーダの名残みたいなもんじゃねーの?
0326デフォルトの名無しさん
2010/10/09(土) 14:48:410327デフォルトの名無しさん
2010/10/09(土) 15:06:520328デフォルトの名無しさん
2010/10/09(土) 15:51:28http://www.google.co.jp/search?num=100&hl=ja&q=%22%8C%C5%92%E8%83V%83F%81[%83_%22
0329デフォルトの名無しさん
2010/10/09(土) 16:02:06シェーダー側に記述するんじゃなくて
デバイスに対して設定するとかそんな感じなの?
0330デフォルトの名無しさん
2010/10/09(土) 16:34:30いったい何を言ってるんだ?
0331デフォルトの名無しさん
2010/10/09(土) 21:21:06バカですね
0332デフォルトの名無しさん
2010/10/09(土) 21:50:100333デフォルトの名無しさん
2010/10/09(土) 23:28:18どうもです
うーん独自レイヤー作るのだるいな・・・
0334デフォルトの名無しさん
2010/10/09(土) 23:39:46それとも何か特殊なタイミングでチェックしたいわけ?
0335デフォルトの名無しさん
2010/10/10(日) 02:53:14Direct3Dで読み込んだ256色bmpの
パレットの操作はどうすればいいんでしょうか?
現状
D3DXCreateTextureFromFileExでテクスチャを読み込み、
PALETTEENTRYの配列にパレットの値の取得及び、画面へ描画も出来ています。
※パレットの値も正確に取れています
0336335
2010/10/10(日) 03:00:37Direct3Dのバージョンは9です。
0337デフォルトの名無しさん
2010/10/10(日) 03:07:59無理
実際に作られたテクスチャのフォーマットを見ればわかると思うけど
現在普及してるビデオチップじゃ256色以下のパレットテクスチャを作ることはできない
PALETTEENTRYには読み取った時の色情報が書き込まれるだけで
それをどうこうしてパレットアニメーションとかはできない
シェーダーで似たようなことはできるかもしれないけど
素直に画像で用意した方が早いと思われ
0338デフォルトの名無しさん
2010/10/10(日) 10:28:05簡単に表示できない・・
0339デフォルトの名無しさん
2010/10/10(日) 11:34:42検索しても見つからないし困ってるんだよ
0340デフォルトの名無しさん
2010/10/10(日) 12:42:51どういう意図でアルファ値と画像を分離したいわけ?
単に抜きがやりたいだけなら最初からアルファチャンネル付の画像フォーマットを使えばいい
アルファ部分を動的に変化させたいとかなら
シェーダーを使うかテクスチャブレンドで対応できる
0341デフォルトの名無しさん
2010/10/10(日) 13:37:28回答ありがとうございます。
素直に画像用意します。
ただ、1つ疑問なのはギルティギアイスカ(PC/PS2版共に)はゲーム中に
カラーエディットが出来る仕様になっていますが、
あれは337の言うようにシェーダーで行っているんでしょうか?
0342デフォルトの名無しさん
2010/10/10(日) 13:44:11スマソorz
0343261
2010/10/10(日) 15:22:34使用する関数を教えていただきありがとうございます。
なんとかフェードアウトを実装することができました。
�@GetCurrentPositionにて再生カーソルを取得する
�A再生カーソル+60ミリ秒の位置からバッファをロックする
�B100ミリ秒のフェードアウトをさせる
(バッファの中のサンプル値をフェードアウトした値に書き直す)
�Cフェードアウト後の100ミリ秒のバッファを0(無音)に書き直す
�Dバッファのアンロック
�ESleep(60 + 100) ⇒ �A+�Bの時間
�F再生のStop命令
手順は上記の通りとなります。、
�Aは強引なような気がしますが、こういう方法をとるのが
一般的なのだろうかと思いました。
�Bは、音楽ソフトで波形をフェードアウトさせたとき視覚的に、
直線でサンプル値が0に向かっていたのでlogを使いませんでした。
とりあえず、問題はなさそうに動いています。
どうもありがとうございました。
0344デフォルトの名無しさん
2010/10/10(日) 16:07:12画像ファイルから直接テクスチャを作ってるんじゃなくて
インデックスデータとパレットデータを使って
生成した空テクスチャに色情報を書き込んでるんじゃないの?
動的に変化とかじゃなくて.palの上書きとかでしょ?
0345デフォルトの名無しさん
2010/10/10(日) 18:10:46そこまでして何故パレットが必要なのか理由がさっぱり分からない。
0346デフォルトの名無しさん
2010/10/10(日) 18:20:330347デフォルトの名無しさん
2010/10/10(日) 18:35:32>>動的に変化とかじゃなくて.palの上書き
俺がやりたいのはそれです。
PC版のGGイスカやGGXX#REには外部コンフィグには
「パレットエフェクト」って設定項目があるのでD3Dで出来るのかと
思ったんです。
>>345
カラーエディット的なことをやりたいんです。
それこそゲーム中にガンガンいじる気はないんですが、
プレイヤーが設定したカラーを反映したいんです。
0348デフォルトの名無しさん
2010/10/10(日) 18:39:40何故パレット云々が出てくるんだ?
0349デフォルトの名無しさん
2010/10/10(日) 19:15:04普通にテクスチャをロックして書き込んでるだけでしょ
0350デフォルトの名無しさん
2010/10/11(月) 03:07:22デバイスを作成した後 IDirect3DDevice9::GetBackBuffer() でバックバッファを一度だけ取得して
そのインターフェイスをずっと保持して使いまわすのは変?
デバイスロストとかはちゃんと処理するとして
0351デフォルトの名無しさん
2010/10/11(月) 08:47:30いちいち聞くことじゃない。
0352デフォルトの名無しさん
2010/10/11(月) 11:50:00毎フレームインデックス0のバックバッファを取得する方が
自然を思うな。
つーか、普通レンダーターゲットを使うよな。
バックバッファ直接描画ならD3D使う意味無いし。
0353デフォルトの名無しさん
2010/10/11(月) 19:44:23シェーダーの時は変換済み座標って使えるのしょうか?
初心者なのでお手柔らかにお願いします。
今まで固定機能パイプラインでやってきました。
そのときは変換済み座標を使ってました。
それをそっくりそのままシェーダーでの描画に変えたいのです。
すいません。
0354デフォルトの名無しさん
2010/10/11(月) 19:48:350355デフォルトの名無しさん
2010/10/11(月) 20:10:27頂点変換済み座標ってシェーダーでは使えないんですか?
0356デフォルトの名無しさん
2010/10/11(月) 20:13:240357デフォルトの名無しさん
2010/10/11(月) 20:26:07頂点シェーダで出力する頂点は
-1 < x < 1
-1 < y < 1
0 < z < 1
で、たとえば(-1,1,-)の頂点が画面左上にくる
同様に(1,-1,-)が右下にくる
この考え方でとりあえず3角形を描画してみたらどうだろう
0358デフォルトの名無しさん
2010/10/11(月) 20:30:31やってみます。
0359デフォルトの名無しさん
2010/10/11(月) 20:54:47移動行列や回転、拡大行列等の行列の計算についてお伺いしたいです。
これらの計算もCPU側で行わずにシェーダー側で行っていますか?
そのほうがはやいですか?
0360デフォルトの名無しさん
2010/10/11(月) 21:03:41その結果に疑問があるのならそれを聞けばいい。
0361デフォルトの名無しさん
2010/10/11(月) 21:06:420362デフォルトの名無しさん
2010/10/11(月) 21:17:430363デフォルトの名無しさん
2010/10/11(月) 22:50:34行列を作るのはCPU
適用するのはGPU
頂点トランスフォームは、GPUがその能力を発揮出来る
数少ない機会だからな、やらせなきゃ損
0364デフォルトの名無しさん
2010/10/11(月) 22:57:16CPU時間は余りまくりなんだからどっちにやらせてもトータルは変わらんよ
0365デフォルトの名無しさん
2010/10/11(月) 22:59:44まず頂点シェーダをGPUでやらないビデオカードがあるのが一点。
GPUとCPUの性能バランスが悪ければ、CPUにやらせた方がパフォーマンスが高いことがあるのが二点。
つまり速いかどうかは環境依存。
0366デフォルトの名無しさん
2010/10/11(月) 23:15:49で、レアケース持ち出して
「いろんなパターンがあるからわかりません」が
正しい認識だって?
笑える
0367デフォルトの名無しさん
2010/10/11(月) 23:17:310368デフォルトの名無しさん
2010/10/11(月) 23:31:490369デフォルトの名無しさん
2010/10/12(火) 06:39:41いま、色々考えてみるのははっきりいって無駄
信じられるのは実測値のみ
この考え方は徹底しておかないといつまでも無駄なことをしたり
おかしな発言を繰り返したりと現場を混乱させるばかりでちっとも開発は進まないとかいう状況になる
0370デフォルトの名無しさん
2010/10/12(火) 08:54:44内部で60ぐらいに制御するようにコード組まれてるの?
本当にbeginsceneとendsceneぐらいしかしてないんだが。
0371デフォルトの名無しさん
2010/10/12(火) 08:56:480372デフォルトの名無しさん
2010/10/12(火) 09:03:19D3DPRESENT_INTERVAL_IMMEDIATE
0373デフォルトの名無しさん
2010/10/12(火) 09:18:54oneにすると自動的にリフレッシュレートを超えないように制限されてしまうんですね!
環境に依存しないで、FPSを制御するにはIMMEDIATEを指定して、
自分でFPS制御を行わないとぴったり60FPSにはならないんですね!
めんどくさかったらONEに設定すれば、勝手にリフレッシュレートぐらいの
FPSに制御してくれるというわけですね。
でも環境によって、FPSが変わるとゲームにならないので、前者の方法が良いですね!
知らなかったら、環境によってFPSが変化してしまうところでした。
本当にありがとうございました!
0374デフォルトの名無しさん
2010/10/12(火) 10:50:04画面に描画されるときの最小単位はピクセルなんですよね?
0375デフォルトの名無しさん
2010/10/12(火) 10:59:130376デフォルトの名無しさん
2010/10/12(火) 11:17:070377デフォルトの名無しさん
2010/10/12(火) 11:24:54>DIRECTXってなんで座標指定するときにFLOAT型なんでしょう?
そもそもそんな規則はない
0378デフォルトの名無しさん
2010/10/12(火) 12:00:42(1,1)のところに描画されるんですよね?
考え方自体破綻してますか?
0379デフォルトの名無しさん
2010/10/12(火) 12:01:400380デフォルトの名無しさん
2010/10/12(火) 12:11:59>DIRECTXってなんで座標指定するときにFLOAT型なんでしょう?
は意味不明。
Direct3Dのことだったとしても整数型の入力はサポートされているし、
Direct3D10以降なら整数値のハードウエアサポートもある。
またラスター化されるときにどうなるかも設定次第。
0381デフォルトの名無しさん
2010/10/12(火) 15:01:36beginPass,Endpassの間でセットしても反映されない?
0382デフォルトの名無しさん
2010/10/12(火) 15:19:41>ID3DXEffect::BeginPass/ID3DXEffect::EndPass 対応ペア内部にある Effect::Setx メソッドのいずれかを使用して、
>アプリケーションがエフェクト ステートを変化させる場合、アプリケーションは ID3DXEffect::CommitChanges を呼び出して、
>ステート変化のあるデバイスに更新を設定する必要があります。
>ステート変化が ID3DXEffect::BeginPass および ID3DXEffect::EndPass 対応ペア内で発生していない場合、
>ID3DXEffect::CommitChanges を呼び出す必要はありません。
0383デフォルトの名無しさん
2010/10/12(火) 15:21:03ありがとう!
0384デフォルトの名無しさん
2010/10/12(火) 17:58:27シェーダーを使ったときの範囲指定描画の方法がわかりません。
頂点バッファを毎回いじればできそうですが、いじりたくないです。
いじらずにやる方法ないですか。
0385デフォルトの名無しさん
2010/10/12(火) 18:23:01ちょっとずつ分割して描画したいってことです。
0386デフォルトの名無しさん
2010/10/12(火) 18:27:190387デフォルトの名無しさん
2010/10/12(火) 18:29:37サイズが一定ならシェーダーにどれだけずらすか送るだけ
0388デフォルトの名無しさん
2010/10/12(火) 18:42:070389デフォルトの名無しさん
2010/10/12(火) 21:31:59描画される位置は一緒でも、参照されるテクスチャ座標が変わる。
0390デフォルトの名無しさん
2010/10/12(火) 22:17:30なんか有るぞこれは
0391デフォルトの名無しさん
2010/10/12(火) 22:23:100392デフォルトの名無しさん
2010/10/12(火) 22:28:25頂点バッファに全て書き込んどく方法はやめます。
サイズは等間隔の画像になります。
どれだけずらすかを送ってその後どうするんですか?
そもそも、頂点シェーダは書けるんですけど、どういった順序で計算されてるのかわからないんです。
例えば頂点が4つあったとしたら、頂点シェーダの関数は4回実行されてるんですか?
一回ごとに渡される頂点が違うってことですか。
その辺が詳しく解説されてるサイトがあれば教えていただきたいです><
0393デフォルトの名無しさん
2010/10/12(火) 23:09:17四隅が等しくずれるんだから順番なんて関係ない
頂点バッファには1つ分のuvを書き込んでおく
プログラム側からuvをどれくらいずらすかシェーダーに送る
シェーダーでずらす
OK?
.cpp
ID3DXEffect::SetVector ( "tex_offset", &D3DXVECTOR4(0.5f, 0.5f, 0.0f, 0.0f) ) ;
.fx
float2 tex_offset
void VertexShader(
in float4 inPos : POSITION,
in float4 inTexture : TEXCOORD0,
out float4 outPos : POSITION,
out float4 outTexture : TEXCOORD0)
outPos = mul(inPos, WorldViewProj);
outTexture = inTexture+tex_offset;// ←ずらす
}
0394デフォルトの名無しさん
2010/10/12(火) 23:17:23その認識で正しい
0395デフォルトの名無しさん
2010/10/12(火) 23:37:100396デフォルトの名無しさん
2010/10/12(火) 23:38:450397デフォルトの名無しさん
2010/10/12(火) 23:47:040398デフォルトの名無しさん
2010/10/12(火) 23:49:16http://ja.wikipedia.org/wiki/%E3%82%B7%E3%82%A7%E3%83%BC%E3%83%80
0399デフォルトの名無しさん
2010/10/13(水) 00:06:43どうもありがとう
0400デフォルトの名無しさん
2010/10/13(水) 00:10:41要するに描写の前にフィルタをかませてなんかいろいろ効果を出すってことか
まるで目の前にフィルムがあるかのような
0401デフォルトの名無しさん
2010/10/13(水) 02:48:550402デフォルトの名無しさん
2010/10/13(水) 03:00:40なるほど!
その手がありましたか!
すごい嬉しいです!ありがとうございました!
0403デフォルトの名無しさん
2010/10/13(水) 06:40:18物理的にはDrawPrimitiveUPなんかと似たようなもんだよねw
って思うんだけど違うの?
0404デフォルトの名無しさん
2010/10/13(水) 08:25:04は?じゃあ具体的に説明してみろ
0405デフォルトの名無しさん
2010/10/13(水) 16:32:360406デフォルトの名無しさん
2010/10/13(水) 16:39:46テストコードかけばいっぱつじゃない?
まあ環境依存のことを考えれば未初期化で使うなんてことは考えないはず。
0407デフォルトの名無しさん
2010/10/13(水) 16:56:08簡単なテストでしてみました。レジスタには同じ値が入っているみたいです。
0408デフォルトの名無しさん
2010/10/13(水) 17:55:211フレ当たりにグラボに送る情報量がさほど変わらないじゃん
例えばこんな風にまるで意味がない感じにしても頂点バッファに触らないってのはそれだけでメリットあるんかな?
ってことが言いたいわけよ
.cpp
ID3DXEffect::SetArray的な何か(名前忘れたw) ( "pos", pos4) ;//頂点4つ分
ID3DXEffect::SetVector ( "tex_offset", &D3DXVECTOR4(0.5f, 0.5f, 0.0f, 0.0f) ) ;
.fx
float4 pos[4];
float2 tex_offset;
void VertexShader(
in float4 inTexture : TEXCOORD0,
in int inIndex
out float4 outPos : POSITION,
out float4 outTexture : TEXCOORD0)
outPos = pos[inIndex];
outTexture = inTexture+tex_offset;
}
0409デフォルトの名無しさん
2010/10/13(水) 18:23:270410デフォルトの名無しさん
2010/10/13(水) 18:47:13だから>>408の例って頂点バッファ自体が無意味じゃん
0411デフォルトの名無しさん
2010/10/13(水) 18:57:250412デフォルトの名無しさん
2010/10/13(水) 19:02:26いや、SetVectorなどの関数から描画に必要なデータをすべて渡している状態(でも頂点バッファにはアクセスせず)
DrawPrimitiveUPで描画するのとどっちが速いの?的な話
この2つとも1フレ当たりにグラボに渡すデータ量はほとんど変わらないよね?
大して変わらないことしてるのか、大きな差があるのか?ってとこ
0413デフォルトの名無しさん
2010/10/13(水) 19:17:11頂点バッファは一度のDrawprimitiveで数千ポリを同時に描画するときに真価を発揮する
そもそも1矩形を1回のDrawprimitiveで描くような仕様ならUP系とコスト的には大差ない
UP系は使ってもいいけど使うときは
1000〜2000ポリくらいをバッファに溜め込んで一度のDrawprimitiveUPで描画したほうが効率は良い
それ以上になるとシステムメモリからの頂点情報の転送がボトルネックになって
頂点バッファを使った時ほどのパフォーマンスが出せなくなる
0414デフォルトの名無しさん
2010/10/13(水) 19:41:01DrawPrimitiveで数千ポリを一気に描画する方法があるんですか!?
メッシュとかの話じゃなくて?
0415デフォルトの名無しさん
2010/10/13(水) 19:55:54まちがえました。。。
0416デフォルトの名無しさん
2010/10/13(水) 20:19:160417デフォルトの名無しさん
2010/10/13(水) 20:31:160418デフォルトの名無しさん
2010/10/13(水) 21:02:080419デフォルトの名無しさん
2010/10/13(水) 21:05:120420デフォルトの名無しさん
2010/10/13(水) 21:21:24そもそもバカというのは基準が決まっていないじゃないですか
何が出来なかったらバカなんですか?それじゃあまだ何も出来ない幼児赤子はバカなんですか?
0421デフォルトの名無しさん
2010/10/13(水) 21:21:43お前みたいなクズこそ死ね
0422デフォルトの名無しさん
2010/10/13(水) 21:29:220423デフォルトの名無しさん
2010/10/13(水) 21:33:370424デフォルトの名無しさん
2010/10/13(水) 21:33:450425デフォルトの名無しさん
2010/10/13(水) 21:46:28メッシュは頂点データのかたまり。
これぐらしかわかりません。ごめんなさい。
0426デフォルトの名無しさん
2010/10/13(水) 21:47:36まずはポリゴンがなんなのかを調べるところから始めろ。
0427デフォルトの名無しさん
2010/10/13(水) 21:54:26独学っすか?学校の授業とかですか?
0428デフォルトの名無しさん
2010/10/13(水) 21:56:490429デフォルトの名無しさん
2010/10/13(水) 22:17:54そんなことだからバカとか言われるんじゃね
0430デフォルトの名無しさん
2010/10/13(水) 22:34:38仕方ないよ
0431デフォルトの名無しさん
2010/10/13(水) 22:40:213Dが全く分からなくて手を着けられない。
シェーダの仕組みもさっぱり分からない。
次に進む為のお勧めの書籍はありませんか?
0432デフォルトの名無しさん
2010/10/13(水) 22:41:370433デフォルトの名無しさん
2010/10/13(水) 22:48:410434431
2010/10/13(水) 23:13:580435デフォルトの名無しさん
2010/10/13(水) 23:19:22入門書買って1からやりなおせ。
0436デフォルトの名無しさん
2010/10/14(木) 00:39:09俺も分からないから知りたいんだけど何を信じていいのか分からん。
0437デフォルトの名無しさん
2010/10/14(木) 00:43:440438デフォルトの名無しさん
2010/10/14(木) 00:44:14お願いですので、やさしくしてくださいよ。
0439デフォルトの名無しさん
2010/10/14(木) 00:45:46バージョンはvs,psとも3_0でお願いします。
0440デフォルトの名無しさん
2010/10/14(木) 01:02:47前スレにあったぞ
0441デフォルトの名無しさん
2010/10/14(木) 01:18:17ドキュメントとか全然読んでないのか?
0442デフォルトの名無しさん
2010/10/14(木) 04:12:39初心者以前の問題
0443デフォルトの名無しさん
2010/10/14(木) 07:47:46結果から言うとだいたいヘルプに書いてあるのと同じ感じ
DrawIndexedPrimitive、DrawIndexedPrimitiveUPで
それぞれ20000ポリを1〜10000回に分けて描画
DrawIndexedPrimitiveの方は
静的頂点バッファ(Lock無し)
動的頂点バッファ(描画と同じ回数だけLock)の両方計測
静的頂点バッファをロックするのはお話にならないのでやってません
以下結果
20000ポリ(40000頂点)×1回
静的VB:890fps
動的VB:790fps
DrawUP:710fps
2000ポリ(4000頂点)×10回
静的VB:880fps
動的VB:780fps
DrawUP:700fps
1000ポリ(2000頂点)×20回
静的VB:870fps
動的VB:760fps
DrawUP:690fps
このあたりはほとんど変化なし
やはり1000〜2000ポリを1回で描画するのが効率がよさげ
0444デフォルトの名無しさん
2010/10/14(木) 07:51:56200ポリ(400頂点)×100回
静的VB:830fps
動的VB:680fps
DrawUP:650fps
100ポリ(200頂点)×200回
静的VB:760fps
動的VB:590fps
DrawUP:590fps
20ポリ(40頂点)×1000回
静的VB:470fps
動的VB:300fps
DrawUP:340fps
4ポリ(8頂点)×5000回
静的VB:165fps
動的VB: 85fps
DrawUP:120fps
2ポリ(4頂点)×10000回
静的VB: 90fps
動的VB: 45fps
DrawUP: 65fps
動的頂点バッファを200回LockしたあたりでUP系と並び、それ以上で逆転
1000回ほど描画命令を発行すると最高速の半分以下までパフォーマンスが落ちる
それ以上はお察し
0445デフォルトの名無しさん
2010/10/14(木) 08:00:03計測に使ったチップはGeForce 9600M GT(モバイル用チップ)なので
ちゃんとしたビデオカードでやればもうちょい差は開くかも?
暇な人は試して見てね
計測に使用したソース
ttp://www5b.biglobe.ne.jp/~mya_a/dx/SimpleSample2.zip
0446デフォルトの名無しさん
2010/10/14(木) 08:01:15Draw[Indexed]Primitiveじゃねえかよ。
ありがとう。
0447デフォルトの名無しさん
2010/10/14(木) 08:18:43何をどう勘違いしたのか分からんが
頂点数が増えるだけでDrawPrimitiveでも当然出来るぞ
0448デフォルトの名無しさん
2010/10/14(木) 08:33:23見捨てないでください。お願いします。
0449デフォルトの名無しさん
2010/10/14(木) 08:58:27DrawPrimitiveを連投してポリゴンをたくさん描画するより、
一回のDrawPrimitiveでたくさんのポリゴンを描画したほうが断然速いんですね。
今まで2ポリをオブジェクトの数だけDrawPrimitiveを連投してたわ。
勉強になった。ありがとう。
0450デフォルトの名無しさん
2010/10/14(木) 09:27:42API呼び出し回数は少ない方が速い。
おっぱいは小さく方が美しい。
基本です。
0451デフォルトの名無しさん
2010/10/14(木) 09:41:28>>445をプリプロセッサで
DrawPrimitiveとDrawIndexPrimitiveを切り替えられるようにしたものと差し替えた
後、補足して置くとこの計測値は低CPU負荷の状態で
D3DPRESENT_INTERVAL_IMMEDIATEでぶん回してるだけなので
一見、描画命令1回と10000回の間に10倍のパフォーマンスの違いが有るように見えるけど
例えば当たり判定やAI処理などでCPUに高負荷をかけると
1回の方はその分がガッツリFPSに影響が出るのに対し
10000回の方はGPUのブロック時間の間にCPUが仕事できるのであまりFPSに影響は出ません
つまり、パフォーマンスは差は縮まります
上の方で描画命令が多い場合はCPUで計算させてもかわらねーよ、と言われてるのはこのせいです
それでもなるべくまとめて描画した方が圧倒的に速いですが
その辺の詳しい理屈はこのあたりを読むとわかるかも?
ttp://www.atmarkit.co.jp/fdotnet/directxworld/directxworld01/directxworld01_03.html
0452デフォルトの名無しさん
2010/10/14(木) 09:47:110453デフォルトの名無しさん
2010/10/14(木) 09:49:09心から感謝いたします。
さっき生意気なこといってすみませんでした。
本気で勉強いたします。
0454デフォルトの名無しさん
2010/10/14(木) 17:04:110455デフォルトの名無しさん
2010/10/14(木) 17:05:510456デフォルトの名無しさん
2010/10/14(木) 17:27:44>ステート変更をできるだけ減らし、残ったステート変更をグループ化する。
とMSDNにはある
0457デフォルトの名無しさん
2010/10/14(木) 17:53:55変なことやったシェーダとUPとの比較の話だったんでしょ?
0458デフォルトの名無しさん
2010/10/14(木) 17:55:15お前はちゃんと勉強した方が良い
0459デフォルトの名無しさん
2010/10/14(木) 18:10:36お前は日本語の文章を読む練習からしろ
0460デフォルトの名無しさん
2010/10/14(木) 18:18:08じゃあ、変なことやったシェーダーとUPで実際に動かして比較して見ろよ
絶対にお前が思った通りにはならないから
何を、もって違いがないって言ってるわけ?
0461デフォルトの名無しさん
2010/10/14(木) 18:28:240462デフォルトの名無しさん
2010/10/14(木) 19:10:05そんなこといってねぇだろ
日本語大丈夫か?
いきなり誰も聞いてないような比較データが貼られるから
話わかってるの?って言っただけ
今の話題と違うデータ出してない?
ってことな
0463デフォルトの名無しさん
2010/10/14(木) 19:12:57データ出してくれる奴のほうがよっぽどマシ
0464デフォルトの名無しさん
2010/10/14(木) 19:15:02お前さんがまるで見当違いの問題提起してることに気づけよ
0465デフォルトの名無しさん
2010/10/14(木) 19:17:590466デフォルトの名無しさん
2010/10/14(木) 19:32:04皆さんはDIRECTXをどうやって勉強したんですか?
独学ですか?
ある壁を境になかなか進まないのです。
それはシェーダです。
おそらく座標変換がちゃんとわかってないのです。
皆さんの学習法をお教えください。
真剣ですので、バカとか死ねとか言わないでください。
0467デフォルトの名無しさん
2010/10/14(木) 19:34:45とりあえず死ね。
入門本買え。
0468デフォルトの名無しさん
2010/10/14(木) 19:37:12本気で呪っときます。
0469デフォルトの名無しさん
2010/10/14(木) 19:44:39は?
誰もそんな話してなかったじゃん
お前馬鹿?
もう一度言うよ
誰 も そ ん な 話 し て な い よ ね ?
もう一度言うよ
誰 も そ ん な 話 し て な い よ ね ?
0470デフォルトの名無しさん
2010/10/14(木) 19:54:490471デフォルトの名無しさん
2010/10/14(木) 19:58:28まったく関係ないデータでも?
はぁ?プログラマ辞めちまえよクズ
0472デフォルトの名無しさん
2010/10/14(木) 20:00:04そうやって誤魔化してるけど
君、自分がまったく関係ない話をしてること理解できてないでしょ?
新卒によくいるんだ君みたいなの
会話にちょろっと出てきた単語だけつまんで発言する人w
0473デフォルトの名無しさん
2010/10/14(木) 20:04:490474デフォルトの名無しさん
2010/10/14(木) 20:06:100475デフォルトの名無しさん
2010/10/14(木) 20:07:44>>466おまえ>>431だろ、入門書買えっつってるだろカス
0476デフォルトの名無しさん
2010/10/14(木) 20:08:11毎回人をけなすようなアドバイスしかできないカスがいるからな。
0477デフォルトの名無しさん
2010/10/14(木) 20:08:460478デフォルトの名無しさん
2010/10/14(木) 20:10:08毎日どんな時間帯にもいるし、おそらくニートだろうねw
0479デフォルトの名無しさん
2010/10/14(木) 20:15:470480デフォルトの名無しさん
2010/10/14(木) 20:18:29入門書は買えたのかい?
0481デフォルトの名無しさん
2010/10/14(木) 20:24:410482デフォルトの名無しさん
2010/10/14(木) 20:28:33ただ漠然とどうしたら良い?とか聞かれても困るな
シェーダーが分からないにしても
どの段階で分からないのかも伝わってこないし
とりあえず手を動かして具体的に躓いたら質問に来ればいいよ
とりあえずサンプルのチュートリアルをシェーダーで表示するところから始めたら?
0483デフォルトの名無しさん
2010/10/14(木) 20:30:300484デフォルトの名無しさん
2010/10/14(木) 20:32:470485デフォルトの名無しさん
2010/10/14(木) 20:34:29>おそらく座標変換がちゃんとわかってないのです。
答えは出ているじゃないか。
0486デフォルトの名無しさん
2010/10/14(木) 20:37:410487デフォルトの名無しさん
2010/10/14(木) 20:41:39本当にありがとうございます。
単純に画像を表示するまでならできます。
その後の応用が効かない感じです。
エフェクトファイルもパスをわけて、新しい関数定義すべきなのか、
新たにファイル作るべきなのかとか、その辺もです。
>>483
こんなツールあったんですね・・・!これかなり良さそうです!
本当にありがとうございます。
0488487
2010/10/14(木) 20:42:52どうか見捨てないで下さい。お願いします。
0489デフォルトの名無しさん
2010/10/14(木) 21:06:45ググればいいと思う
0490デフォルトの名無しさん
2010/10/14(木) 21:15:020491デフォルトの名無しさん
2010/10/14(木) 21:22:060492デフォルトの名無しさん
2010/10/14(木) 21:26:250493デフォルトの名無しさん
2010/10/14(木) 21:49:24それだけで質問内容が的を射るかどうかが決まる。
0494デフォルトの名無しさん
2010/10/14(木) 22:36:31ボケとかカスとか教えるの下手糞なサイトばっかり当たる
基本、物理とか数学まわりってはじめからよく知ってないといいサイト見つけるの難しいな
0495デフォルトの名無しさん
2010/10/14(木) 22:51:51DirextXSDKドキュメントだろ。
とりあえずD3D9の日本語版ドキュメント全ページ嫁
0496デフォルトの名無しさん
2010/10/15(金) 11:55:360497デフォルトの名無しさん
2010/10/15(金) 15:21:090498デフォルトの名無しさん
2010/10/15(金) 15:44:11ある程度まともなゲームを作りたいなら多少は求められるがそれならミドルウェアでも変わらない
それに数学が必要といっても公式覚えたり難しい方程式が解ける必要はない
計算はプログラムがやってくれるんだから
要は自分が求めたいことを何を使えば求められるか、ということを知ってれば良いだけ
例えば「2本のベクトルの内積や外積が一体何になるのか」ということさえ知ってれば
内積・外積を求める計算自体は別に知らんでもいい事だ
0499デフォルトの名無しさん
2010/10/15(金) 15:51:03だから線形代数はちゃんとやろう
0500デフォルトの名無しさん
2010/10/15(金) 15:51:540501デフォルトの名無しさん
2010/10/15(金) 15:58:23まぁ、だいたい線形代数の範囲内なんだが。
ライブラリ作成に命をかけてる人たちはその限りではないが
0502デフォルトの名無しさん
2010/10/15(金) 16:02:080503デフォルトの名無しさん
2010/10/15(金) 17:08:39知らなければならない知識はそれほどない
難しく感じるとしたら単に慣れが足りないのだろう
0504デフォルトの名無しさん
2010/10/15(金) 17:12:00普通にゲーム作れるようになりましたか?
0505デフォルトの名無しさん
2010/10/15(金) 17:13:040506デフォルトの名無しさん
2010/10/15(金) 17:21:250507デフォルトの名無しさん
2010/10/15(金) 17:36:14勉強と思わなくなるのにどれぐらいかかりましたか?
0508デフォルトの名無しさん
2010/10/15(金) 17:38:3610年
0509デフォルトの名無しさん
2010/10/15(金) 17:40:24しかしDirectXを理解してきたなぁと実感できるようになるまでには5年かかった
0510デフォルトの名無しさん
2010/10/15(金) 17:41:26数ヶ月でマスターなんて無理なんですかね・・・・
0511デフォルトの名無しさん
2010/10/15(金) 17:42:57俺みたいな馬鹿だと20年掛かるかもしれない
0512デフォルトの名無しさん
2010/10/15(金) 17:44:540513デフォルトの名無しさん
2010/10/15(金) 17:49:08とにかく手を動かして何度も失敗して試行錯誤していくうちに身につくもの
最初はどんなにショボくても何か形になるものを仕上げた方がいいよ
やりたい事が明確になれば自分に何が足りないのかが見えてくる
そうなれば「どんな本を読めばいいですか?」なんてアホな質問しなくても自分で選べるようになるし
ただ漠然と「覚えなきゃいけない事がたくさんある」なんて考えて立ち止まるのはむしろ時間の無駄
0514デフォルトの名無しさん
2010/10/15(金) 17:52:17すばらしいご意見ありがとうございます。
本当にその通りだと思います。
何事もたくさん経験して、失敗して覚えていくものですね。
これからはアホな質問はしないように頑張ります。
0515デフォルトの名無しさん
2010/10/16(土) 16:30:05あの画像って何のソフトで作ったんですか?
GIMPで同じようなもの作れますか?
0516デフォルトの名無しさん
2010/10/16(土) 17:09:28http://macototo.cool.ne.jp/junics/index.html
こんなんどうよ?
0517デフォルトの名無しさん
2010/10/16(土) 17:12:51おお!すごいです!
photoshopのようですが、参考にさせていただきます!
ありがとうございます!
0518デフォルトの名無しさん
2010/10/16(土) 18:08:32こうやったらクオータニオンうまくいった
mQuaはXファイルのアニメーションキーの回転から取得した値
D3DXQUATERNION q1,q2;
q1.x =-mQua[key.index[1]].x;
q1.y =-mQua[key.index[1]].y;
q1.z =-mQua[key.index[1]].z;
q1.w =mQua[key.index[1]].w;
q2.x =-mQua[key.index[2]].x;
q2.y =-mQua[key.index[2]].y;
q2.z =-mQua[key.index[2]].z;
q2.w =mQua[key.index[2]].w;
D3DXQuaternionSlerp(&q,&q1,&q2,time);
0519デフォルトの名無しさん
2010/10/17(日) 02:16:41あれ、やっぱ気にしてる人まだいたか
描き方説明しようかと思ったけど微妙に言葉で説明するのが面倒で
どうしようかと思ってるうちに忘れてた
そんなたいしたことしてる訳じゃないんよ
>>516みたいにちゃんと描けるのが一番なんだろうけどもっと手抜きです
ネットに転がってるフョトショ用のブラシを落としてきて
描画モードを「スクリーン」にして何回か連打するだけ
ちょっとやってみたけどGIMPはフォトショのブラシファイルをそのままフォルダに突っ込めば使えるので
シェイプ機能とかはないけど大体同じようなことはできた
一発撮り未編集なのでぐだぐだだけど参考
http://www5b.biglobe.ne.jp/~mya_a/dx/light_effect.html
ブラシはこことか。後はググって
ttp://www.chethstudios.net/2010/05/1000-beautiful-abstract-light-photoshop.html
0520デフォルトの名無しさん
2010/10/17(日) 02:16:50やっぱりいろいろ整理されててわかりやすい印象
移行すべきだろうなあ・・
0521デフォルトの名無しさん
2010/10/17(日) 02:22:26おもしれー
0522デフォルトの名無しさん
2010/10/17(日) 04:04:26魔方陣色々使えそうで良いな
0523デフォルトの名無しさん
2010/10/17(日) 09:36:15どうやって書いてるのかと思ったら専用のブラシがあったんですね。
本当に助かりました。ありがとうございます。
0524デフォルトの名無しさん
2010/10/17(日) 14:36:55知らなければ手も足も出ないなんて良くあること
0525デフォルトの名無しさん
2010/10/17(日) 15:28:22とか疑問もたないところが初心者だよねw
0526デフォルトの名無しさん
2010/10/17(日) 15:37:05何いっちゃってるの?
0527デフォルトの名無しさん
2010/10/17(日) 15:38:12この話題はここでおしまい
0528デフォルトの名無しさん
2010/10/17(日) 15:38:44そっとしといてやれよ
0529デフォルトの名無しさん
2010/10/17(日) 15:42:030530デフォルトの名無しさん
2010/10/17(日) 16:11:190531デフォルトの名無しさん
2010/10/17(日) 16:25:07自分じゃロクな情報出さないくせにやけに他人に絡む奴
0532デフォルトの名無しさん
2010/10/17(日) 16:46:490533デフォルトの名無しさん
2010/10/17(日) 16:57:59こちとらどんな情報でもありがたいのに
0534デフォルトの名無しさん
2010/10/17(日) 17:03:07どこにそんなレスがあるんだ?
0535デフォルトの名無しさん
2010/10/17(日) 17:04:19大事なのはどういう絵が実際の画面上でどう見えるかを知っておくことだと思う
プログラマ側からグラフィッカに指示を出す事だって結構あるしこんな感じって具体的に言えるだけでも大分違うと思われ
0536デフォルトの名無しさん
2010/10/17(日) 17:05:10>>525
0537デフォルトの名無しさん
2010/10/17(日) 17:07:03いいじゃん
必要ないんだから
0538デフォルトの名無しさん
2010/10/17(日) 17:09:350539デフォルトの名無しさん
2010/10/17(日) 17:11:25フリー素材のサイト教えてください
0540デフォルトの名無しさん
2010/10/17(日) 17:13:170541デフォルトの名無しさん
2010/10/17(日) 17:13:26まぁ、Photoshop限定だろうが
0542デフォルトの名無しさん
2010/10/17(日) 17:15:130543デフォルトの名無しさん
2010/10/17(日) 17:37:570544デフォルトの名無しさん
2010/10/17(日) 17:46:44ムービーっていうかテクスチャにもZやややこしいαが入ってたりしてわけわからん
http://www.cri-mw.co.jp/product/lineup/movie/crisofdec/demo.html
こんなん多いこんなん
上のじゃないんだけど・・・ちょっと仕組みは近いかも
0545デフォルトの名無しさん
2010/10/17(日) 17:48:560546デフォルトの名無しさん
2010/10/18(月) 09:37:380547デフォルトの名無しさん
2010/10/18(月) 09:53:290548デフォルトの名無しさん
2010/10/18(月) 10:55:14分かる範囲でなら教えるよー
0549デフォルトの名無しさん
2010/10/18(月) 10:56:290550デフォルトの名無しさん
2010/10/18(月) 15:50:460551デフォルトの名無しさん
2010/10/18(月) 16:00:070552デフォルトの名無しさん
2010/10/18(月) 16:51:51最近ム板全般で、質問人を騙って話ひっかきまわす奴が目立っててな
前からID入れてくれって話はでてるんだが、運営はとりあえず入れる気ないみたいだし
0553デフォルトの名無しさん
2010/10/18(月) 17:11:450554デフォルトの名無しさん
2010/10/18(月) 17:12:470555デフォルトの名無しさん
2010/10/18(月) 17:27:130556デフォルトの名無しさん
2010/10/18(月) 17:30:41つくってもあらされておわるでしょ。
あとジェムズのX巻にのってるから読めでおわったりとかね。
個人的にはTrueTypeFontのファイルフォーマット。
それをポリゴンで表示する為のメッシュ化アルゴリズムをしりたいな。
0557デフォルトの名無しさん
2010/10/18(月) 17:31:10紹介が無いと入れないので一般人は無理だぜ
0558デフォルトの名無しさん
2010/10/18(月) 17:32:510559デフォルトの名無しさん
2010/10/18(月) 17:36:30成功した例しか聞いたことないだろ?
0560デフォルトの名無しさん
2010/10/18(月) 18:31:58あそこで駄目ならここでも駄目だろ
0561デフォルトの名無しさん
2010/10/18(月) 18:38:220562デフォルトの名無しさん
2010/10/18(月) 18:40:49具体的になにが駄目だったの?
あそこで答えてもらえないならみんな知らないか
くだらないこと質問して相手にしてもらえないかのどっちかじゃね?
いまレスしてる面子みても結構できる人いるよ
0563デフォルトの名無しさん
2010/10/18(月) 19:19:450564デフォルトの名無しさん
2010/10/18(月) 20:23:10Windows限定でよければ、GetGlyphOutlineでフォントの輪郭線とれるよ。
TrueTypeのフォーマットまでは知る必要ない。
最近はGGO_BITMAPの方の機能ばかり有名になってしまって、
曲線データの方の解説は見つけるのが大変だけど。
0565デフォルトの名無しさん
2010/10/19(火) 00:08:38テッセレート化したメッシュデータまで取得できたなぁ
0566デフォルトの名無しさん
2010/10/19(火) 00:33:390567デフォルトの名無しさん
2010/10/19(火) 09:10:18BBX昔はよく利用したけど今はなぁ
0568デフォルトの名無しさん
2010/10/19(火) 13:34:430569デフォルトの名無しさん
2010/10/19(火) 13:50:09その一つ一つに対して、別々のアルファ値を持たせる場合は、
頂点デクラレーションの作成の時にアルファ値用の値を設定しといて、
描画するときになったら、一気に頂点バッファをロックして、
個別に設定するしか方法ないですよね?
当然このオブジェクトはそれぞれ別々の方向に動くので、座標も一気に変える
つもりなんですが。
0570デフォルトの名無しさん
2010/10/19(火) 14:13:14ある程度規則的な動きなら書き換えずに済むかも知れない
どうしても書き換えなくてはいけない時でも
1000回Lockするのではなく1回で済むような仕組みを考えるべき
0571デフォルトの名無しさん
2010/10/19(火) 14:21:35ありがとうございます。
シューティングを作っているので、規則的な動きにはならないですね。
その座標は当たり判定とかの計算にも利用するつもりなので。
>1000回Lockするのではなく1回で済むような仕組みを考えるべき
5種類の弾があって、それぞれ100発ずつ撃たれている状況だとしたら、
テクスチャはそれぞれ変えなきゃならないので、
一種類ごとにテクスチャをセットして、100発まとめてlockして描画。
というのを5回繰り返すイメージですよね?
0572デフォルトの名無しさん
2010/10/19(火) 14:24:130573デフォルトの名無しさん
2010/10/19(火) 14:25:50なるほど!そういえばそうですね。助かりました。
ありがとうございました。
0574デフォルトの名無しさん
2010/10/19(火) 14:28:160575デフォルトの名無しさん
2010/10/19(火) 14:41:28D3DUSAGE_DYNAMICとD3DPOOL_DEFAULTにしておけば大丈夫ですよね?
0576デフォルトの名無しさん
2010/10/19(火) 14:52:59動的頂点バッファにしたほうが、D3DPOOL_MANAGEDで確保した静的頂点バッファより遅かったんだが・・・
1・俺のテストコードが悪い
2・ループが速すぎて、動的頂点バッファのロック待ちよりも、MANAGEDが確保しているシステムメモリーに書き込んだ(そしてMANAGEDがいっきにVRAMにUPDATEした)ほうが速かった
どっちだ!
0577デフォルトの名無しさん
2010/10/19(火) 14:57:38ちなみに静的頂点バッファっていうのは、頂点バッファの内容はいじらないってことですよね?
いじれないんだったら、それぞれのオブジェクトを好きな位置に移動するときに、
DrawIndexedPrimitiveで一気に描画することはできないですよね?
一つ一つ、DrawPrimitiveを連投する方法だったら、個々に移動行列を与えて移動できそうですけど。
0578デフォルトの名無しさん
2010/10/19(火) 15:01:57>ちなみに静的頂点バッファっていうのは、頂点バッファの内容はいじらないってことですよね?
「いじらない=いじれない」のではなく「いじらないつもりなので、そのつもりでバッファ確保してね」というのが静的頂点バッファ。
MSDN読めば書いてあるが、静的はVRAM上に。動的はAGPメモリー上に配置する傾向にあるとかなんとか。
俺も詳しくは知らん。
静的だからといって書き換え不可能ってわけではない。
0579デフォルトの名無しさん
2010/10/19(火) 15:03:12IDirect3DVertexBuffer9::Lockの実行するロックのタイプの指定フラグが正しくないんじゃない?
どういうLockの仕方してるのか分からんから何とも言えんが
0580デフォルトの名無しさん
2010/10/19(火) 15:05:47わかりました。詳しくありがとうございます。
0581デフォルトの名無しさん
2010/10/19(火) 15:07:151回ですむならやや動的頂点バッファの方が上だがほぼ大差ない
2回以上Lockするなら動的頂点バッファの方が上になるが
Lockの仕方を間違うとめちゃくちゃなパフォーマンスダウンを起こす
0582デフォルトの名無しさん
2010/10/19(火) 15:19:25テキストに買ってきた書籍が少し古くて 2005 基準で書かれたものなのですが
ここに書かれているソースコードが使えないということなのでしょうか
それともVisualC++2010 に DirectX SDK の最新版を入れて 同じ環境とみなせるでしょうか
サポートが打ち切られるというのがどういうことか分りません
0583デフォルトの名無しさん
2010/10/19(火) 15:19:270584デフォルトの名無しさん
2010/10/19(火) 15:27:18ソースコードが使えなくなるということではない
2010で動かすなら問題なく使える
とりあえず目立つところではたぶんサンプルから2005用のソリューションが消えたんじゃない?
あとは今後.libの互換性がなくなって
2005+2010Oct以降だとリンクができなくなる(かもしれない)
0585デフォルトの名無しさん
2010/10/19(火) 15:34:31MSDN探しても見当たらないぞ。
0586デフォルトの名無しさん
2010/10/19(火) 15:39:580587デフォルトの名無しさん
2010/10/19(火) 15:41:250588デフォルトの名無しさん
2010/10/19(火) 15:44:34ありがとうございます とりあえず同じ環境とみなして進めていきます
.lib の互換性がなくなるというのは文法も変わってしまうということ?
サポートの打ち切りとはどういった背景(理由)で行われたかわかりますか
何か変えなくてはいけないことがあったんだと思うのですが
0589デフォルトの名無しさん
2010/10/19(火) 15:47:580590デフォルトの名無しさん
2010/10/19(火) 15:48:48DirectX SDK は3,4か月に一度更新されているようですので 今後更新されるであろう
バージョンをさしてOct 2010(以降)と言ったのだと思います
0591デフォルトの名無しさん
2010/10/19(火) 15:51:12D3DLOCK_DISCARD使ってるから、使い方間違えてはいないと思うんだけどなぁ・・・
>>581の言う通り、1ループで1回しかLockしないから誤差の範囲内なのかもしれん。
>>583
GF9600だから、動的のほうが速いのを期待したんだけどなー
0592デフォルトの名無しさん
2010/10/19(火) 16:00:05そもそも1つのループで複数回ロックは論外。
0593デフォルトの名無しさん
2010/10/19(火) 16:04:17D3DLOCK_NOOVERWRITEでロックして追記や部分書き換えすればそれほどコストは掛からないんだぜ
これをD3DLOCK_DISCARDでロックするとアホみたいなことになる
0594デフォルトの名無しさん
2010/10/19(火) 16:06:51考えられる問題点
読み込みを伴うアクセスを行っている
全体を書き換えるのにDiscardを指定していない
Lockを複数回行っている
0595デフォルトの名無しさん
2010/10/19(火) 16:08:41そもそも何度もロックを繰り返すようなプログラムを組まなければならない時点で、
処理に無駄が多すぎる。
0596デフォルトの名無しさん
2010/10/19(火) 16:17:41んー、どれにも当てはまらないなぁ…。
とはいっても、さすがに俺のコードに問題があるんだろうし、ちょっと今再度計測してみるわ
0597デフォルトの名無しさん
2010/10/19(火) 16:18:190598デフォルトの名無しさん
2010/10/19(火) 16:19:50どーすりゃいいんだ。
0599デフォルトの名無しさん
2010/10/19(火) 16:26:501フレーム複数回のDrawPrimitiveに対し複数回Lockは当然あり得る
複数Lockする必要が無いなんていってる奴は単純な描画しかしたことがないんじゃね?
0600デフォルトの名無しさん
2010/10/19(火) 16:29:35やっぱりそうですよね。
0601デフォルトの名無しさん
2010/10/19(火) 18:11:14D3DPOOL_DEFAULT版
dev->CreateVertexBuffer(
desc.Size,
D3DUSAGE_WRITEONLY | D3DUSAGE_DYNAMIC,
desc.FVF,
D3DPOOL_DEFAULT
&buffer,
NULL
);
buffer->Lock(0, 0, &to, D3DLOCK_DISCARD);
::memcpy(to, from, desc.Size);
buffer->Unlock();
D3DPOOL_MANAGED版
dev->CreateVertexBuffer(
desc.Size,
0,
desc.FVF,
D3DPOOL_MANAGED
&buffer,
NULL
);
buffer->Lock(0, 0, &to, 0);
::memcpy(to, from, desc.Size);
buffer->Unlock();
こんな感じ。
もちろんCreateVertexBufferは最初の1回だけね。
モーフィングをやろうとして色々研究してたんだけど、D3DLOCK_DISCARDを使っても早くならねーなーと思ってたとこ。
後者のほうが微妙に速い上、D3DLOCK_DISCARDしないでモーフィング差分だけ書き変えればいい(memcpyいらね)から、ますます後者が速くなるんだ
0602デフォルトの名無しさん
2010/10/19(火) 20:35:360603デフォルトの名無しさん
2010/10/20(水) 10:51:33・・・いや、もしかしてMANAGEDの野郎、1度でも動的な使い方したら、内部で動的として確保しなおすとかしやがるのか・・・?
0604デフォルトの名無しさん
2010/10/20(水) 12:22:51すべての悩みから開放されます
0605デフォルトの名無しさん
2010/10/20(水) 12:36:580606デフォルトの名無しさん
2010/10/20(水) 13:19:02ロック呼び出しは古いデータへのポインターを返します。これにより、アプリケーションは
頂点バッファーまたはインデックス バッファー内の未使用領域に新しいデータを追加できます。
この古いデータへのポインターっていうところなんですが、
1000KBの頂点バッファがあったとして、200KB分しか使用してなかったとしたら、
その200KBの先頭のポインタを取得できるってことでしょうか?
もしそうだとしたら、未使用領域に新しいデータを追加できるっていうのは、
この先頭ポインタから200KB分のポインタを進めたところから追加しろってことでしょうか?
0607デフォルトの名無しさん
2010/10/20(水) 13:25:590608デフォルトの名無しさん
2010/10/20(水) 13:30:00座標をいじらずに、行列とかで移動できるやつはDrawPrimitive系でいいかもしれませんが、
それ以外の直接座標をいじるやつに関しては、DrawPrimitiveUP系を使ったほうが、管理とか速度面においても、
良いきがするんです。
0609デフォルトの名無しさん
2010/10/20(水) 13:30:120-199までLock
0-199までをDrawPrimitive
200-399を(使用中かもしれない0-199の中身が変わらないことを保証して)Lock
200-399までをDrawPrimitive
みたいな時に使う
0610デフォルトの名無しさん
2010/10/20(水) 13:34:14ありがとうございます!
ですが200-399までをDrawPrimitiveするときの、引数の指定がよく分からないです。
MSDNには、第二、第三引数は下記のように設定しろと載ってました。
StartVertex
[in] ロードする最初の頂点のインデックス。StartVertex を先頭に、正しい頂点数が頂点バッファから読み取られる。
PrimitiveCount
[in] レンダリングするプリミティブの数。プリミティブの許容最大数は、D3DCAPS9 構造体の MaxPrimitiveCount メンバをチェックして決定される。
PrimitiveCount は、プリミティブ タイプで指定されたプリミティブの数である。ライン リストの場合、各プリミティブは 2 つの頂点を持つ。三角形リストの場合、各プリミティブは 3 つの頂点を持つ。
これのプリミティブの数は分かりますが、頂点のインデックスって言う値が良くわからないです。
インデックスって何のことですか?
0611デフォルトの名無しさん
2010/10/20(水) 13:51:16頂点何個分ずらした位置から読むか
0-199で200プリミティブ(600頂点)だとしたら
200-399での先頭頂点は600、から200プリミティブ
400-599での先頭頂点は1200、から200プリミティブ
0612デフォルトの名無しさん
2010/10/20(水) 14:24:18なるほど!ありがとうございました!
0613デフォルトの名無しさん
2010/10/20(水) 14:27:100614デフォルトの名無しさん
2010/10/20(水) 14:32:50邪道ではないけど、いろいろ融通が利かなくなるから結局普通にやった方がよくなりそうな
0615デフォルトの名無しさん
2010/10/20(水) 14:35:30うう。そうですか。
どうにかして通常の座標変換で左上を0,0として、スクリーン座標で指定できる
方法があればいいんですが。
0616デフォルトの名無しさん
2010/10/20(水) 14:44:04http://hibari.2ch.net/test/read.cgi/tech/1278214135/781
0617デフォルトの名無しさん
2010/10/20(水) 15:15:560618デフォルトの名無しさん
2010/10/20(水) 15:25:52>>>780
>2Dスプライトを直感的にスクリーン座標と一致させたいってことだよね?
>パースペクティブ射影(D3DXMatrixPerspectiveFovLH)じゃなくて
>正射影(D3DXMatrixOrthoOffCenterLH)で射影行列作ればいいと思うよ
>スクリーンサイズが800x600なら
>
>D3DXMatrixOrthoOffCenterLH( D3DXMATRIX *pOut, 0, 800, 600, 0, FLOAT zn, FLOAT zf);
>
>で左上(0.0)になって分かりやすいんじゃないかな
>
0619デフォルトの名無しさん
2010/10/20(水) 15:30:050620デフォルトの名無しさん
2010/10/20(水) 16:51:30みたいな解説をしてくれてるページってないですかね?
0621デフォルトの名無しさん
2010/10/20(水) 16:59:07http://msdn.microsoft.com/ja-jp/library/ee422511(v=VS.85).aspx
0622デフォルトの名無しさん
2010/10/20(水) 17:03:18ありがとうございます。
0623デフォルトの名無しさん
2010/10/20(水) 17:11:32UP系の最大の欠点は頂点ストリームが1つしか使えないこと
それでまかなえる程度の単純なスプライト描画しかしないなら十分な速度は確保できると思われ
0624デフォルトの名無しさん
2010/10/20(水) 17:38:18ああ・・そういえばそうでしたね。
検討してみます。ありがとうございました。
0625デフォルトの名無しさん
2010/10/20(水) 20:15:18DrawPrimitiveUPとDrawIndexedPrimitiveUPではどちらの方が効率が良いのでしょう?
DrawPrimitiveUPでもD3DPT_TRIANGLESTRIPで描画すればそんなに変わらないでしょうか?
0626デフォルトの名無しさん
2010/10/20(水) 20:45:420627デフォルトの名無しさん
2010/10/20(水) 22:32:31DrawIndexedPrimitiveUPよりDrawPrimitiveUPの方が速かった
0628デフォルトの名無しさん
2010/10/21(木) 03:52:44実際は、各グラボのドライバの処理による環境依存だからね
その時点までの他の頂点を含む状況、今描画しようとしている頂点内容や数、
これらの組み合わせで、どれが効率良いかなんて言えない
だから、これが効率的だ(自分のPCだけの話ってなら別だが)、
なんて物を求めないで、これは大多数のケースで非効率だって実装を避ければ良いだけだと思うが
0629デフォルトの名無しさん
2010/10/21(木) 09:12:34色々やってみたんですが、DrawPrimitive系(UP含む)では、
四角形のポリゴンを一気に描くことはできないですよね?
ここで言う一気とは「一回の」DrawPrimitiveで描画という意味です。
何度やっても、思い通りの頂点と頂点がつながってくれなかったので、
最終確認したいんです。
これを可能にするにはDrawIndexedPrimitive系(UP含む)で、好きな頂点を指定してあげて
自分の思ったとおりに描画させるしかないってことでよいでしょうか?
0630629
2010/10/21(木) 09:13:58バラバラにある一定の距離を保って、大量にあるものとします。
0631デフォルトの名無しさん
2010/10/21(木) 09:41:060632629
2010/10/21(木) 09:56:480633デフォルトの名無しさん
2010/10/21(木) 10:00:360635デフォルトの名無しさん
2010/10/21(木) 22:30:01PlayMusic命令でMIDIファイルが再生できません
0x4b7e2bd8 で初回の例外が発生しました: 0xC0000005: 場所 0x4b7e2bd8 を読み込み中にアクセス違反が発生しました。
というエラーで出力が埋め尽くされています…
0636デフォルトの名無しさん
2010/10/21(木) 22:31:44知らんがな
http://hibari.2ch.net/test/read.cgi/gamedev/1286180687/
0637デフォルトの名無しさん
2010/10/21(木) 22:32:56素早いご指摘ありがとうございました
0638デフォルトの名無しさん
2010/10/22(金) 00:27:340639デフォルトの名無しさん
2010/10/22(金) 00:45:440640デフォルトの名無しさん
2010/10/22(金) 02:42:290641デフォルトの名無しさん
2010/10/22(金) 03:15:300642デフォルトの名無しさん
2010/10/22(金) 07:14:420643デフォルトの名無しさん
2010/10/22(金) 07:24:050644デフォルトの名無しさん
2010/10/22(金) 15:49:020645デフォルトの名無しさん
2010/10/22(金) 16:17:28まともなモデリングソフトを触って研究しようとしないんだろう?
どれだけ馬鹿なの?
0646デフォルトの名無しさん
2010/10/22(金) 16:20:290647デフォルトの名無しさん
2010/10/22(金) 17:54:58弾は動的確保にしたほうがいいですか?
0648デフォルトの名無しさん
2010/10/22(金) 18:07:23一度に画面に出る最大数を決めておいて配列で用意したらいいじゃん
0649デフォルトの名無しさん
2010/10/22(金) 18:08:13やっぱりそのほうがいいですか?
動的確保はやっぱり重いでしょうか?
0650デフォルトの名無しさん
2010/10/22(金) 18:15:01馬鹿の考え休むに似たりということにしかならない。
余計なことは考えずにやりたいようにどんどん作れ。
0651デフォルトの名無しさん
2010/10/22(金) 18:15:21やりたきゃ好きにしろよ
あんまり意味はなさそうだけど
なんだ?
弾一発めちゃくちゃ場所とるのか?
0652デフォルトの名無しさん
2010/10/22(金) 18:42:37とりあえずn発までがMAXって定義しといて、先に領域確保しといて弾ブッパするのと
1発ずつ確保してブッパするプログラム組んで、速度見てみるといいと思うの。
0653デフォルトの名無しさん
2010/10/22(金) 18:52:26処理オチする位に弾出してみればいいじゃん。そこから逆算してみたら?
むかーし、セレロン600Mhz位とGPU不明でやったときでも100位は出てたぞ。
現実的に300位出ちゃうとよけるの不可能じゃね?
0654デフォルトの名無しさん
2010/10/22(金) 19:15:02とりあえず好きにやってみて、処理落ちしたらまた考えます。
ありがとうございました。
0655デフォルトの名無しさん
2010/10/22(金) 19:15:59いい言葉だな
0656デフォルトの名無しさん
2010/10/22(金) 19:19:240657デフォルトの名無しさん
2010/10/22(金) 19:30:060658デフォルトの名無しさん
2010/10/22(金) 20:33:53何億発打てばメモリ不足になるんだよ?
というか馬鹿?
0659デフォルトの名無しさん
2010/10/22(金) 20:37:41動的確保にしても予め確保しといたヒープ内からとかにしたい所だ
0660デフォルトの名無しさん
2010/10/22(金) 20:39:32馬鹿の考え休むに似たり
>メモリ不足より分断化の方が気になる
馬鹿の考え休むに似たり
0661デフォルトの名無しさん
2010/10/22(金) 20:48:250662デフォルトの名無しさん
2010/10/22(金) 21:01:53しらないけど、動的に取るならテスト項目に上がるでしょ?
0663デフォルトの名無しさん
2010/10/22(金) 21:07:500664デフォルトの名無しさん
2010/10/22(金) 21:14:44じゃ何発打てばメモリー不足になるんですか?
0665デフォルトの名無しさん
2010/10/22(金) 21:43:26解放とか忘れちゃうだろ
0666デフォルトの名無しさん
2010/10/22(金) 21:52:340667デフォルトの名無しさん
2010/10/22(金) 21:55:41最初にある程度大きく確保しておいてその範囲内の内はそこから確保されるので
結局配列で確保したのと一緒になる
0668デフォルトの名無しさん
2010/10/22(金) 22:22:32重い仮想関数とか使わずとも多態化できますし。
嘘です。上のようなこと書くとスレがと荒れるらしいです。
0669デフォルトの名無しさん
2010/10/22(金) 22:36:44特定のアルゴリズムの限定的な話を突然始める>>667みたいな馬鹿って何なの?
0670デフォルトの名無しさん
2010/10/22(金) 22:58:38デメリットは穴ぼこメモリもたしかに気になるけど
それも極小すぎてデメリットといえるかどうかっつーとよくわからないな
ガベコレ動き出したコレ!とかいうjavaみたいな環境ならデメリットありまくりだけどw
まあ、でもかっちょよく(?)動的にしたいなら
「意味はないけど好きやりたいなら好きにしたらいーんじゃないですか?
それであなたが気持ちよくゲームを作れるならそれもいーんじゃないですか」でFA
0671デフォルトの名無しさん
2010/10/23(土) 04:03:240672デフォルトの名無しさん
2010/10/23(土) 04:53:320673デフォルトの名無しさん
2010/10/23(土) 05:02:26メモリ管理とかどうなってるの?
0674デフォルトの名無しさん
2010/10/23(土) 05:15:30なんか語りたい話題があるならどうぞ
0675デフォルトの名無しさん
2010/10/23(土) 07:02:57COMはインタフェイスの実装手法であって、ドライバ云々との関連は通常のAPIと同じでしかない。
0676デフォルトの名無しさん
2010/10/23(土) 10:44:07収まっているかどうかわかる方法はありますか?
0677デフォルトの名無しさん
2010/10/23(土) 11:12:560678デフォルトの名無しさん
2010/10/23(土) 11:16:33点を座標変換して射影空間内に収まってるかどうかをチェックする
D3DXMATRIXA16 matWorld,matView,matProj;//各変換行列
D3DXVECTOR3 v ;// 空間上の点
D3DXVec3TransformCoord ( &v, &v, &(matWorld*matView*matProj) ) ;//既に移動済みの点ならmatView*matProj
-1.0 <= v.x <= 1.0
-1.0 <= v.y <= 1.0
0.0 <= v.z <= 1.0
でどうだろう?
0679デフォルトの名無しさん
2010/10/23(土) 14:26:290680デフォルトの名無しさん
2010/10/23(土) 18:36:230681デフォルトの名無しさん
2010/10/23(土) 20:55:22どうしたら起動出来ますか?
0682デフォルトの名無しさん
2010/10/23(土) 20:58:56エンドユーザーの方はご遠慮下さい
0683デフォルトの名無しさん
2010/10/23(土) 21:42:360684デフォルトの名無しさん
2010/10/23(土) 22:54:35Machine name: EPSON112157501
Operating System: Windows XP Home Edition (5.1, Build 2600) Service Pack 3 (2600.xpsp_sp3_gdr.100427-1636)
Language: Japanese (Regional Setting: Japanese)
System Manufacturer: EPSON DIRECT CORP.
System Model: P4BGV-ED
BIOS: Award Modular BIOS v6.0
Processor: Intel(R) Celeron(R) CPU 2.40GHz
Memory: 1016MB RAM
Page File: 487MB used, 1131MB available
Windows Dir: C:\WINDOWS
DirectX Version: DirectX 9.0c (4.09.0000.0904)
DX Setup Parameters: Not found
DxDiag Version: 5.03.2600.5512 32bit Unicode
これがスペックです。
0685デフォルトの名無しさん
2010/10/23(土) 23:08:350686デフォルトの名無しさん
2010/10/23(土) 23:10:000687デフォルトの名無しさん
2010/10/23(土) 23:25:40もっと噛み砕いた文章にしないと伝わらんと思う
>>681
このスレは作り方の質問スレなので、使い方の質問は他所でやってくれ
0688デフォルトの名無しさん
2010/10/24(日) 00:12:320689デフォルトの名無しさん
2010/10/24(日) 02:06:15これに紐づいた文字列データとか無いかな。
キーコンフィグで今登録されてるキーが何かって表示したいんだけど、
自分で文字列登録していくしかないかな。
0690デフォルトの名無しさん
2010/10/24(日) 02:14:310691デフォルトの名無しさん
2010/10/24(日) 02:22:23ありがとう、安心して作れるよ
0692デフォルトの名無しさん
2010/10/24(日) 03:00:580693デフォルトの名無しさん
2010/10/24(日) 03:55:100694デフォルトの名無しさん
2010/10/24(日) 04:19:390695デフォルトの名無しさん
2010/10/24(日) 04:35:41DirectX SDK 日本語
で検索して出てきたのがこれだったので
英語出来ないからこれ使おうとおもったんですが他にありますか?
0696デフォルトの名無しさん
2010/10/24(日) 04:40:10ヘルプとSDKは別物ですけどそのへんわかってますか
0697デフォルトの名無しさん
2010/10/24(日) 04:52:37ヘルプだけ翻訳されてるってことでしょうか?
で、よく見てみたら2009版のヘルプもあったのでそれと2009sdkをインストしてみます
0698デフォルトの名無しさん
2010/10/24(日) 04:56:22ドキュメントには日本語版がありますが最新の情報は基本的に英語です、慣れて下さい。
0699デフォルトの名無しさん
2010/10/24(日) 05:06:58辞書片手に何とかやってみます
深夜にあほな質問してすみません 有難うございました
0700デフォルトの名無しさん
2010/10/24(日) 12:07:160701デフォルトの名無しさん
2010/10/24(日) 12:32:120702デフォルトの名無しさん
2010/10/24(日) 12:34:39SlimDX
0703デフォルトの名無しさん
2010/10/24(日) 13:28:010704デフォルトの名無しさん
2010/10/24(日) 16:23:27箱とマルチしたいならXNAでいいけど、そうでないならSlimDXオヌヌメ
0705デフォルトの名無しさん
2010/10/24(日) 16:41:330706デフォルトの名無しさん
2010/10/24(日) 19:44:51”初心者”質問してる人らに冷たすぎないか?
もちろんちゃんと答えてあげてる人もいるし、ひどい質問してる人らもいる。
でも見てると初心者脱却したてのやつらが”初心者”いじめて気持ちよくなるスレに思えて来るんだが。
0707デフォルトの名無しさん
2010/10/24(日) 19:46:590708デフォルトの名無しさん
2010/10/24(日) 19:47:500709デフォルトの名無しさん
2010/10/24(日) 20:06:37普段はスルーしてるんだけど、
このスレの存在意義とかあり方についてどうなのかなって思って
0710デフォルトの名無しさん
2010/10/24(日) 20:08:38具体的にどのレスにどう答えてほしいのか言え
抽象的過ぎてさっぱりわからない
0711デフォルトの名無しさん
2010/10/24(日) 20:09:090712デフォルトの名無しさん
2010/10/24(日) 20:31:09あくまで具体的な質疑応答のみがスレを形作ります。
自分の好みのスレにしたいなら一晩中張り付いて全ての質問に対応するぐらいの気概が必要です。
0713デフォルトの名無しさん
2010/10/24(日) 20:34:060714デフォルトの名無しさん
2010/10/24(日) 21:02:25DrawIndexedPrimitiveUPを使って描画しようとしています。
これを使って描画する場合、頂点デクラレーションを自分で定義したものを
セットして使用することはできるのでしょうか?
それともSetFVFしか使えないのでしょうか?
0715デフォルトの名無しさん
2010/10/24(日) 21:14:08自分で定義したものを使える
ただしストリームは0番しか使えないので頂点情報は1つに纏める必要がある
0716デフォルトの名無しさん
2010/10/24(日) 21:29:30ありがとうございます!
追加で質問させてください。
VERTEX v[400]//頂点バッファ
WORD iv[600]//インデックスバッファ
上記の配列にそれぞれ、値が格納されているとします。
VERTEXは頂点データの構造体です。
その状態で、下記のように実行するとします。
DrawIndexedPrimitiveUP(D3DPT_TRIANGLELIST,0,8,4,iv,D3DFMT_INDEX16,v,sizeof(VERTEX));
この場合頂点バッファとインデックスバッファの配列にデータが全部埋まっていたとしても、
上記で指定した通りに四角形が二つ(三角形が4つ)描画されるのでしょうか?
ちょっとやってみたら、上手く描画できなかったものでして^^;
0717デフォルトの名無しさん
2010/10/24(日) 21:30:59三角形が4つ「だけ」描画されると思ってていいのでしょうか?
配列に入っている他のデータは無視されるのかが聞きたいです。
0718デフォルトの名無しさん
2010/10/24(日) 21:42:08その認識で合ってるよ
頂点の指定の順番が逆周りになってて裏面が表を向いてるとかってオチはない?
カリングモードをNONEにして試して見るとか
0719デフォルトの名無しさん
2010/10/24(日) 21:51:38カリングモードをNONEにしても駄目でした。
でも認識は合ってるとのことですので、もう一回色んなところ見直してみます。
ありがとうございました。
0720デフォルトの名無しさん
2010/10/24(日) 23:03:18(1)ある軸まわりにベクトルを回転した時の、回転前のベクトルr1と回転後のベクトルr2の間の関係
を表す回転変換行列E (r2 =E * r1) を生成している (座標系は基本的にWorld座標系O-xyzの一つだけ)。
(2) あるベクトルを、モデルに固定されたローカル座標系O-ξηζで成分表示した時の成分
(ξ, η,ζ)と、World座標系O-xyzで成分表示した時の成分(x,y,z)との間の関係を表す座標変換行列R
(x, y, z)T = R * (ξ, η,ζ)T、
Tは転置記号で(x,y,z)T、(ξ, η,ζ)Tは列ベクトル
を生成している。複数個のローカル座標系とworld座標系が存在する。
のどちらなのかわからない。
自分としては、(1)の方が理解し易い。最初、O-ξηζ座標系はworld座標系0-xyzと一致していて、
ξ、η、ζ軸の単位ベクトルi',j',k'に回転変換行列Eをかけることによってξ、η、ζ軸と
O-ξηζ座標系で成分表示されたベクトルを回転させる。
が、DirectXの参考書をみると座標変換行列という言葉を使っている本もある。
(1)(2)のどちらで解釈してもいいかもしれないが(EとRの要素は一致する)、(1)(2)のどちらの立場で
話をしているか明確にしておかないと話がかみ合わないと思う。
皆さんは(1)(2)のどちらで解釈してますか? それとも、私が勘違いしてるんでしょうか?
0721デフォルトの名無しさん
2010/10/24(日) 23:09:15http://sequoia-web.hp.infoseek.co.jp/tsudoi/tsudoi06.shtml
0722デフォルトの名無しさん
2010/10/24(日) 23:11:55その話はおいといて
0723デフォルトの名無しさん
2010/10/24(日) 23:17:110724デフォルトの名無しさん
2010/10/24(日) 23:27:25反転してるんだ。
post-vertex-shaderの方では思ってる通りの頂点順になってるんだ。
これってどういう原因が考えられますか?
preの方は半時計まわり。
postの方は時計周り。
になってます。
カリングモードは左周りをカリングするように設定してます。
頂点データを作ったときは、時計周りに定義してるんですけどね。
0725デフォルトの名無しさん
2010/10/24(日) 23:28:08すみません。で、どちらの立場なんですか?
0726デフォルトの名無しさん
2010/10/24(日) 23:28:080727デフォルトの名無しさん
2010/10/24(日) 23:29:450728724
2010/10/24(日) 23:30:510729デフォルトの名無しさん
2010/10/24(日) 23:32:350730724
2010/10/24(日) 23:33:200731デフォルトの名無しさん
2010/10/24(日) 23:36:340732デフォルトの名無しさん
2010/10/24(日) 23:36:460733724
2010/10/24(日) 23:55:080734デフォルトの名無しさん
2010/10/24(日) 23:55:46> D3DXMatrixRotationX(&matWorld, cta);
> pDevice->SetTransform(D3DTS_WORLD, &matWorld);
>
> におけるマトリックスmatWorldの解釈は次のどれが正しいでしょうか?
>
> (1)World座標系XYZにおいて、3Dモデル(の頂点ベクトル)をX軸まわりに
> θradだけ回転させるためのベクトル回転変換行列。
>
> (2)3Dモデルの各頂点座標(ξ,η,ζ)を記述しているξηζ座標系が
> ワールド座標系XYZに対してX軸回りにθradだけ回転している(3Dモ
> デルもX軸回りにθradだけ回転している)。matworldは3Dモデルの
> 各頂点座標(ξ,η,ζ)を(X,Y,Z)座標に変換する座標変換行列。
>
> (3)どちらの解釈でもいい。
>
> (4)どちらの解釈も正しくない。
>
> ベクトルの回転変換行列であろうと座標変換行列であろうと両者の要素の中身
> は一致するから(3)でいい気がしますが、回転、移動操作に対応した行列
> 乗算の順序が右側にかけていくか、左側にかけていくかの違いが生じるのでは
> ないか? という気もします。
> 403 名前:デフォルトの名無しさん[] 投稿日:2010/02/13(土) 20:32:15
> はあ
0735デフォルトの名無しさん
2010/10/24(日) 23:57:25> >>415
>
> 回答ありがとう。
> directXは(行列*列ベクトル)の演算と違って(行ベクトル*行列)の演算
> だから行列を転置にしなければならない。したがって、行列の積ではかける
> 順序が逆になる、というのはあなたの指摘どおりだ。
>
> ところがベクトルを回転させる回転変換行列か、座標軸(もの指し)を
> 回転させた座標系間の座標変換行列かによっても乗算の順序は違う。
>
> >>412 >> 414 >> 428
> わかりもしないくせに偉そうなこと言うな雑魚! ひっこんでろ
>
> >>416
> お前も黙ってろ。
>
> (1)の解釈で納得していたんだが、(2)の解釈でないと説明できない
> 問題が発生したんで(と、その時は思ってた)。
>
> DirectXでは回転、移動の操作順ごとに行列を右側にかけていくよう
> だから(そして転置行列の積だから)、(1)の解釈でいいようだ。
>
> ただ、DirectXの関数が(1)(2)のどちらの考えにたって実装されているのか
> 確認したかったから聞いたのに >>410 の馬鹿が仕様を調べれば、とアホな
> 回答をしているのには閉口した。そんな事しか言えないなら黙ってろや。
>
>
> わかっている人からのアドバイスには感謝するが、アホ相手するのも
> 面倒だからもう書かない。
>
> アホはまた何か書くだろが、相手しない。
0736デフォルトの名無しさん
2010/10/25(月) 00:34:44(1)でも(2)でもない場合はどうやって理解しようとしてるわけ?
0737デフォルトの名無しさん
2010/10/25(月) 00:36:570738デフォルトの名無しさん
2010/10/25(月) 00:43:29どちらですか?って聞いてもどっちでもねぇときはどうやって受けとる気なんだろねw
0739デフォルトの名無しさん
2010/10/25(月) 01:52:00ほらっ、お前の嫌いな初心者イビリが始まったぞ
助けてやれや
0740デフォルトの名無しさん
2010/10/25(月) 06:47:16いや、違うって
どういう脳みそしてんだよ
つまり、こういう状況だろ↓
このパンはなんのパンですか?
(1)あんパン
(2)クリームパン
(1)か(2)のどっちですか?
正解はジャムパンなのに回答が(1)か(2)に固定されてて答えようがないよw
0741デフォルトの名無しさん
2010/10/25(月) 09:28:37過去ログからわざわざ挙げる奴もひまと言うか、何と言うか。
ひょっとしたら、わかる人がいるかもしれないと期待したんだが。
0742デフォルトの名無しさん
2010/10/25(月) 12:27:20数学それほど詳しくはないが、そういう関数で生成できる行列って、
変換元座標系からみた変換先座標系への差分を表してる。
どっちでもあってるんじゃない?回転だけ考えれば(1)もあってるし、行列全体の動作として見たら(2)でもあってる
つか釣りだろ?
0743デフォルトの名無しさん
2010/10/25(月) 13:45:27最終的にDirectXを使いたいんだったら最初からDirectX使った方が良いのかな
0744デフォルトの名無しさん
2010/10/25(月) 13:45:570745デフォルトの名無しさん
2010/10/25(月) 13:48:46そっか、俺の知能だとかなり厳しいががんばってみる 即レスありがとう
0746デフォルトの名無しさん
2010/10/25(月) 13:54:300747デフォルトの名無しさん
2010/10/25(月) 14:00:17う…む…?
無意味になるの前提でもdxライブラリから入るのは有りって事?
0748デフォルトの名無しさん
2010/10/25(月) 14:18:320749デフォルトの名無しさん
2010/10/25(月) 14:19:32それよりマクロ定義の意味とかDLL回り固めて
意味不明なメソッドやクラスの詳細を片っぱしからコメントアウトした方が早いかとおも
0750デフォルトの名無しさん
2010/10/25(月) 14:25:19根気があるならいきなりいってもいいけど
0751デフォルトの名無しさん
2010/10/25(月) 14:35:010752デフォルトの名無しさん
2010/10/25(月) 14:48:31「あぁ、あれはコレを内部でやってたのね」と思い当たる的な役立ちかたはするかもしれんが
DXライブラリを事前にやっておくことで
DirectXが理解しやすくなるような役立ち方はあまりしない気がする
0753デフォルトの名無しさん
2010/10/25(月) 14:56:29それで駄目だったらライブラリ使う事にするよ 皆さんどうもありがとう
0754デフォルトの名無しさん
2010/10/25(月) 15:05:580755デフォルトの名無しさん
2010/10/25(月) 15:49:51ttp://homepage2.nifty.com/natupaji/DxLib/function/dxfunc_3d.htm
カメラとか行列とか3D独特なものには触れれるから3Dの感触を確かめる意味ではいいんじゃないかな。
0756デフォルトの名無しさん
2010/10/25(月) 15:53:02俺もそれで3Dをマスターした。
0757デフォルトの名無しさん
2010/10/25(月) 15:53:44DXライブラリからDirectX直たたきにいこうするなら、
このライブラリのソースを読むのが一番はやいんじゃないかな?
DXライブラリでXXを行うには・・・からはいっていって、
中身の実装でDirectXの勉強とかね。
で、ソースって公開されてるの?w
0758デフォルトの名無しさん
2010/10/25(月) 15:56:000759デフォルトの名無しさん
2010/10/25(月) 16:02:15うわあしらんかった
すぐ使ってみよう。今すぐ使おう
0760デフォルトの名無しさん
2010/10/25(月) 16:02:500761デフォルトの名無しさん
2010/10/25(月) 16:41:060762デフォルトの名無しさん
2010/10/25(月) 16:56:38一応、薄いラッパだし直に触るのに近い。
0763デフォルトの名無しさん
2010/10/25(月) 16:57:520764デフォルトの名無しさん
2010/10/25(月) 16:59:210765デフォルトの名無しさん
2010/10/25(月) 17:02:340766デフォルトの名無しさん
2010/10/25(月) 17:20:110767デフォルトの名無しさん
2010/10/25(月) 17:27:210768デフォルトの名無しさん
2010/10/25(月) 17:27:530769デフォルトの名無しさん
2010/10/25(月) 17:36:06thx!
0770デフォルトの名無しさん
2010/10/25(月) 17:56:54floatで計算させたら一定ごとに誤差がでることあるんですか?
0771デフォルトの名無しさん
2010/10/25(月) 18:11:57移動処理はfloatでやってるのに
座標管理をintとか整数でやってたら誤差はでるかもね
でも、なんとなくだけど
垂直同期を取らずに精度の悪いタイマーでPresentしてるせいな予感
0772デフォルトの名無しさん
2010/10/25(月) 18:18:26ちなみに壁に思いっきりキーを押しっぱなしでぶつかってる時は、
ガタンガタンにならないんですよね。
移動するときだけガタンガタンってなるんですよ。
0773デフォルトの名無しさん
2010/10/25(月) 18:28:36垂直同期待ちして描画してごらんよ
0774デフォルトの名無しさん
2010/10/25(月) 18:32:54ってことは私のFPS制御がおかしいってことでしょうか?
0775デフォルトの名無しさん
2010/10/25(月) 18:42:57毎フレーム、タイマーの値を吐き出してみるとか・・・
0776デフォルトの名無しさん
2010/10/25(月) 18:52:18static DWORD oldtime=0;
float wt=1000.0f/FPS;
wt=(cnt%60+1)*wt;//待つべき時間
//分解能の精度を変更(制度をあげる)
timeBeginPeriod(1);
waittime+=timeGetTime()-oldtime;
if(waittime<wt)
Sleep(wt-waittime);
oldtime = timeGetTime();
if(waittime<wt){
waittime=wt;
}
//分解能の設定を戻す
timeEndPeriod(1);
++cnt;
}
こんな感じなんですがダメですかね?
FPSには60.0fが入っています。
0777デフォルトの名無しさん
2010/10/25(月) 19:04:43毎フレーム描画のタイミングのタイマの数値をアウトプット画面にでも出して
エクセルにでも貼り付けてちゃんと正しいタイミングで機能してるか見てみたらいいんじゃね?
と、その前にSleep(0)にしてみたかったりして・・・
俺も理詰めでプログラム組めないw
0778デフォルトの名無しさん
2010/10/25(月) 19:11:05垂直同期を待たずにタイマーでフリップさせると
画面の更新途中で表示されてしまうのでティアリング線がでてしまう
そしてズレがどんどん大きくなって1画面文に達すると
まったく更新されてない画面(2フレーム前)が表示されてしまいガタッっとなってみえる
0779デフォルトの名無しさん
2010/10/25(月) 19:18:01自分でFPS制御してないんですか?
0780デフォルトの名無しさん
2010/10/25(月) 19:24:09これをどうやって制御をあげればいいのでしょうか?
0781デフォルトの名無しさん
2010/10/25(月) 19:32:47変に省略されてるので分かりにくいけど、cntが59から60になるときに破綻してない?
>>779
場合によりけりでは。
垂直同期させてゲーム進行が問題ないのであれば、それが一番綺麗で楽だと思う。
ゲームの性質上自分でFPS制御する必要があるのであれば、自前でできるだけやるしかない。
0782デフォルトの名無しさん
2010/10/25(月) 19:36:55待たずにやるにしてもそもそもFPS制御をしない
移動量を前フレームからの経過時間から算出すれば問題ないでしょ?
ターマーでやったら
60FPS以上を60に固定することはできるかもしれないけど
20FPSしかでないようなPCで動かさなきゃいけないときどうするの?
0783デフォルトの名無しさん
2010/10/25(月) 19:45:34FPSで制御しようと思ったのはどんなマシンでも一定のスピードで動かしたかったからです。
FPSが低いマシンだったら、当然ガクンガクン動くことにはなるんですが、逆に60以上のマシンは
制御できると思ったので。
いくつかのフリーゲームではFPSを自分で選択して、設定できるようにしてあるのをいくつか見たことがありました。
そういうのはやっぱり自分で計算してるんですよね。
う〜ん。悩むところですが、垂直同期待ちでやることにします。
ありがとうございました。
0784デフォルトの名無しさん
2010/10/25(月) 20:07:36ってディスプレイがサポートしてるリフレッシュレート列挙して
選んだ値に強制的に変更してるだけんじゃないの?
0785デフォルトの名無しさん
2010/10/25(月) 20:25:06そんなもんなんですかね。
結局は自分でFPS制御してる人って少ないんんですかね。。
0786デフォルトの名無しさん
2010/10/25(月) 20:27:58自分が何かいてるか理解できてねえだろw
0787デフォルトの名無しさん
2010/10/25(月) 20:32:090788デフォルトの名無しさん
2010/10/25(月) 20:38:440789デフォルトの名無しさん
2010/10/25(月) 20:40:480790デフォルトの名無しさん
2010/10/25(月) 20:52:56MMO以外に何がある?
0791デフォルトの名無しさん
2010/10/25(月) 20:59:26ウィンドウモードの場合は垂直同期でタイミングとろうとすると
使ってるモニタが変わるとタイミング変わるけど大丈夫?
0792デフォルトの名無しさん
2010/10/25(月) 21:40:09なんかDirectXの初期化時にテキトーに値入れるとよろしくやってくれね?
0793デフォルトの名無しさん
2010/10/25(月) 21:54:36その辺はどう扱ってるのだろ。
0794デフォルトの名無しさん
2010/10/25(月) 22:00:22描画は出来るときにすればいい。
日本伝統の2Dシュー見たいのだとフレームスキップはきらわれるから、
垂直同期で特定ゲーム内時間分の更新じゃないとだねだけどな。
0795デフォルトの名無しさん
2010/10/25(月) 22:01:00下の設定の事だと思って話を進めるけど。
FullScreen_refreshRateInHz = 60;
PresentationInterval = D3DPRESENT_INTERVAL_ONE;
この場合フルスクリーン時は60で更新するように設定できるけど
ウィンドウモード時は、そのモニタが設定してる垂直同期になるから
"垂直同期だけ"を使用してると環境でタイミングがずれる。
そもそもウィンドウモード時に FullScreen_refreshRateInHz 設定すると
エラーでちゃうけどね。
間違っていたら指摘おねがい。
0796デフォルトの名無しさん
2010/10/25(月) 22:02:56そうだとは思ったんですが、どうしてもきっちりFPS制御できそうにないものでして。。。
このゲームは大体60FPSで動きますので、モニタのリフレッシュレートが60ヘルツぐらいじゃないと
うまく遊べないかもしれません。という断りをいれとこうかと。。。
あと思ったんですが、皆さんって、移動量を計算するときに、前回の時間から現在の時間までの経過時間を元に
計算してる人が多いんですか?
私は1フレーム当たりの移動量をあらかじめ決めといて、足してるだけなんですが。。
0797デフォルトの名無しさん
2010/10/25(月) 22:06:50>あと思ったんですが、皆さんって、移動量を計算するときに、前回の時間から現在の時間までの経過時間を元に
>計算してる人が多いんですか?
しねーよそんなこと
バグりまくってゲーム完成するどころじゃねぇぞ
0798デフォルトの名無しさん
2010/10/25(月) 22:08:050799デフォルトの名無しさん
2010/10/25(月) 22:14:080800デフォルトの名無しさん
2010/10/25(月) 22:15:410801デフォルトの名無しさん
2010/10/25(月) 22:17:401フレームの時間が変わったら
格ゲーのコマンド入力の難易度が変わったり
スペックの低いPCでやったらすり抜けが起きたり
0802デフォルトの名無しさん
2010/10/25(月) 22:19:19処理用と描画用のコールバックは
トータルフレーム時間と前フレームからの経過時間が受け取れるようになってるね
0803デフォルトの名無しさん
2010/10/25(月) 22:31:50SEとBGMで大きくわけて音量を調整したいです。
この場合プライマリバッファを2個作ったほうがいいですか?
0804デフォルトの名無しさん
2010/10/25(月) 22:36:070805デフォルトの名無しさん
2010/10/25(月) 22:38:07すんづれいしました
0806デフォルトの名無しさん
2010/10/25(月) 22:41:07ttp://www.t-pot.com/program/103_FPSFixing/index.html
こんなんがあった
0807デフォルトの名無しさん
2010/10/25(月) 22:41:39内部の処理だけ回して描画しなけりゃいいじゃない
0808デフォルトの名無しさん
2010/10/25(月) 23:06:34本当にありがとうございます。助かりました!
0809デフォルトの名無しさん
2010/10/25(月) 23:15:41D3DPRESENT_INTERVAL_DEFAULTの挙動って、
確定じゃなかったような気がするんだが違ったかな
0810デフォルトの名無しさん
2010/10/25(月) 23:23:45>D3DPRESENT_INTERVAL_DEFAULT では、既定のシステム タイマーの分解能が使用されます。
>一方、D3DPRESENT_INTERVAL_ONE では timeBeginPeriod を呼び出し、システム タイマーの分解能を拡張します。
>これにより、垂直同期の品質が改善されますが、処理に時間が少し多くかかります。
>いずれのパラメーターの場合も、垂直同期が試行されます。
0811デフォルトの名無しさん
2010/10/25(月) 23:27:09固定動作で垂直同期した場合、
プレイ環境によりリフレッシュレートが60fpsだったり75fpsだったりして困るでしょ?って話じゃ
どうしても固定じゃないと処理が難しいって言うなら
Win32APIでもうゲーム中だけ60fpsに変更しちゃえよと思ってしまうが
0812デフォルトの名無しさん
2010/10/25(月) 23:32:41→望みのリフレッシュレートになる
ウィンドウモード
→垂直同期なんて気にする必要ない
って感じだった気がするけどそんなことない?
0813デフォルトの名無しさん
2010/10/25(月) 23:35:58頑張ってWINAPIで60FPSにしようとしたんですが、
ガタン、ガタンってなってしまうんです。
私の制御に問題があるんでしょうが。
0814デフォルトの名無しさん
2010/10/25(月) 23:35:59それだと、60Hzに対応してないモニタだと映らなくなったりチラついたりしないかね?
多くのウィンドウズゲームでティアリング発生が放置されているのは
結局モニタの垂直同期がバラバラだからって事だと思ってるけど。
因みに、俺の場合は高分解能パフォーマンスカウンタでFPS固定してる。
必要がないからコマ落ちは、一切みてない。
0815デフォルトの名無しさん
2010/10/25(月) 23:37:24>>806によりPresentがリフレッシュレートに同期し回避されますねって話では
0816デフォルトの名無しさん
2010/10/25(月) 23:45:04「ガタンガタン」って表現は、本当にティアリングの事なのか?
俺は、移動量が一定じゃなくて、たまに移動が変になるって読み取ったけど。
0817デフォルトの名無しさん
2010/10/25(月) 23:46:430818デフォルトの名無しさん
2010/10/25(月) 23:51:210819770
2010/10/25(月) 23:55:53垂直同期待ちにしたら解消したので、ティアリングが原因かと思われます。
0820デフォルトの名無しさん
2010/10/25(月) 23:58:160821デフォルトの名無しさん
2010/10/25(月) 23:58:55ウィンドウモードの話?
0823デフォルトの名無しさん
2010/10/26(火) 00:28:42ティアリング現象によるチラつきが問題だったのかは闇の中だな・・・。
0824デフォルトの名無しさん
2010/10/26(火) 00:39:09でおk? >>770 w
0825デフォルトの名無しさん
2010/10/26(火) 01:09:57俺も綺麗にスクロールとかしたらなった気がする
でもそんときは同期またずに更新するようにしたらなんか直った記憶あるんだけどな
タイマでやってたときってD3DPRESENT_INTERVAL_IMMEDIATEだよね?
0826デフォルトの名無しさん
2010/10/26(火) 01:42:570と1のダブルバッファとして
ズレが蓄積して1画面分に達すると
010101001010
↑
ガタンとなる
0827デフォルトの名無しさん
2010/10/26(火) 02:46:04マルチパスレンダリングで描画しようとしてるんだけど
バックバッファにレンダリング済みのテクスチャの描画が
特定の状況のみできなくて困ってる
描画できない設定は以下
バックバッファのサイズが 800x450
レンダリング先テクスチャのサイズが 1280x720
描画できる設定は以下
バックバッファのサイズが 1280x720
レンダリング先テクスチャのサイズが 1280x720
レンダリングターゲットってバックバッファのサイズよりでかいと
ダメなのかな?
0828デフォルトの名無しさん
2010/10/26(火) 03:05:30デプスバッファはどうしてる?
0829デフォルトの名無しさん
2010/10/26(火) 03:07:36http://msdn.microsoft.com/ja-jp/library/bb147221(v=VS.85).aspx
>複数のレンダー ターゲットのすべてのサーフェスは、幅と高さが同じでなければなりません。
0830デフォルトの名無しさん
2010/10/26(火) 03:15:32深度も作ったけどダメだった。
>>829
まじかよ!困ります。
0831770
2010/10/26(火) 03:23:42私にもはっきり原因がわかりません。
直ったときにやったことと言えば、
D3DPRESENT_INTERVAL_IMMEDIATEを0に変更。
FPS制御用の関数をメインループから外す。
この2点だけです。
ガタンガタンの表現が悪くて申し訳ないんですが、
縦でも横でも移動するときに発生します。
それは一定の間隔です。
通常ならスーッっと行くものが、一瞬ブルッと震える感じになります。
ただしこれは、壁にぶつかってるときはこの現象は起こりません。
その現象を具体的に説明すると、
if(x<LEFT_MAX)
x=LEFT_MAX;
上記のように上下左右に移動制限をかけてます。
このようなコードだと、左を押し続けてても、座標は変わりません。
ですが、キーは押し続けてるので移動している際のアニメーションは動きます。
この時はガタンガタンとはなりません。
壁にぶつからないときの移動の時に、ガタンガタンとなってしまうわけです。
個人的には自分でFPSを制御したいと思っています。
こんな感じです。
0832デフォルトの名無しさん
2010/10/26(火) 03:51:59タイマの待ち時間を
16 17 17 16 17 17 16 17 17
みたいに1秒間に確実に60回になるようにやってみな
0833770
2010/10/26(火) 03:57:39やってみます
0834デフォルトの名無しさん
2010/10/26(火) 04:17:37いや、それ複数のレンダーターゲットに同時に描画する機能の説明だから。
駄目な設定のときって、デバッグランタイムにしてデバッグメッセージ見たら、
何かメッセージ出てない?
0835デフォルトの名無しさん
2010/10/26(火) 04:29:32MRTのことをマルチパスレンダリングって言ってるだとおもうけど
0836デフォルトの名無しさん
2010/10/26(火) 13:41:26同じものがあればそれを使う方法って無いですかね?
0837デフォルトの名無しさん
2010/10/26(火) 13:53:330838デフォルトの名無しさん
2010/10/26(火) 13:57:27どこか判ったw
0839デフォルトの名無しさん
2010/10/26(火) 14:06:330840デフォルトの名無しさん
2010/10/26(火) 14:08:02頂点バッファ作るたびに頂点宣言オブジェクトを作るってことですか?
0841デフォルトの名無しさん
2010/10/26(火) 14:16:39説明してみな
0842デフォルトの名無しさん
2010/10/26(火) 14:31:43コンストラクタとか言わないよね
0843デフォルトの名無しさん
2010/10/26(火) 14:33:380844デフォルトの名無しさん
2010/10/26(火) 14:34:230845デフォルトの名無しさん
2010/10/26(火) 15:16:300846デフォルトの名無しさん
2010/10/26(火) 15:25:000847デフォルトの名無しさん
2010/10/26(火) 15:52:04PRIMITIVETYPEではどれを使って描画してるのですか?
0848デフォルトの名無しさん
2010/10/26(火) 16:13:430849デフォルトの名無しさん
2010/10/26(火) 16:15:16D3DPT_TRIANGLELIST
0850デフォルトの名無しさん
2010/10/26(火) 16:47:04おまえ消えろや
0851デフォルトの名無しさん
2010/10/26(火) 17:00:050852デフォルトの名無しさん
2010/10/26(火) 17:01:150853デフォルトの名無しさん
2010/10/26(火) 17:01:570854デフォルトの名無しさん
2010/10/26(火) 17:04:550855デフォルトの名無しさん
2010/10/26(火) 17:10:26>The subset that is specified by AttribId will be rendered by the IDirect3DDevice9::DrawIndexedPrimitive method,
>using the D3DPT_TRIANGLELIST primitive type, so an index buffer must be properly initialized.
PIXでみると中で何をどう呼んでるか全部見れるよ
0856デフォルトの名無しさん
2010/10/26(火) 17:14:54おまえ消えろや
0857デフォルトの名無しさん
2010/10/26(火) 17:17:200858デフォルトの名無しさん
2010/10/26(火) 17:19:230859デフォルトの名無しさん
2010/10/26(火) 17:22:530860デフォルトの名無しさん
2010/10/26(火) 17:23:540861デフォルトの名無しさん
2010/10/26(火) 17:30:180862デフォルトの名無しさん
2010/10/26(火) 17:36:290863デフォルトの名無しさん
2010/10/26(火) 17:58:53著作権者でもなくむしろ普段は著作権侵害側の癖に、
特定可能な個人が著作権侵害行為を行うと狂った様に集団で攻撃したりとかな
0864デフォルトの名無しさん
2010/10/26(火) 18:02:28まあ、それぐらいで調度いいんじゃね?
みんながおおっぴらにやるようになったらそれこそ最期だと思われ
0865デフォルトの名無しさん
2010/10/26(火) 18:21:210866デフォルトの名無しさん
2010/10/26(火) 18:28:04これでよくわかっただろ
いつも上から目線のクズさんよ
0867デフォルトの名無しさん
2010/10/26(火) 18:40:54お前も上から・・・いやなんでもない
0868デフォルトの名無しさん
2010/10/26(火) 18:58:41初心者攻撃と著作権侵害の関係性がまったく分かりません
0869デフォルトの名無しさん
2010/10/26(火) 19:27:40俺はそいつとは別人だ
0870デフォルトの名無しさん
2010/10/26(火) 21:32:18同意
このタイミングで言うからさっぱりわからないw
「これでよくわかったろ?」とかwわからねーよw
0871デフォルトの名無しさん
2010/10/26(火) 21:39:230872デフォルトの名無しさん
2010/10/26(火) 23:06:200873デフォルトの名無しさん
2010/10/26(火) 23:06:530874デフォルトの名無しさん
2010/10/26(火) 23:12:240875デフォルトの名無しさん
2010/10/26(火) 23:36:300876デフォルトの名無しさん
2010/10/26(火) 23:47:13DirectXから話それるけど。
0877デフォルトの名無しさん
2010/10/26(火) 23:48:420878デフォルトの名無しさん
2010/10/26(火) 23:49:500879デフォルトの名無しさん
2010/10/26(火) 23:50:32設計とか全然関係ないことだと叩かれる可能性大
0880デフォルトの名無しさん
2010/10/26(火) 23:53:040881デフォルトの名無しさん
2010/10/27(水) 00:36:43そいつを戻り値にした場合、そのポインタって消滅するんですか?
それとも使えますか?
0882デフォルトの名無しさん
2010/10/27(水) 00:55:28Direct3D9よりかはDirect3D10のサンプルを見ながらやっているのですが、
Direct3D9でデバイスにSetTextureStageState関数でD3DTSS_TCI_CAMERASPACEPOSITIONのフラグを
使っているプログラムがあり、これをDirect3D10で書くにはどうしたらいいのでしょうか。
全部シェーダー側でやると思うのいですが、どのような計算をしているのかが分かりません。
よろしければ教えていただけないでしょうか。
0883デフォルトの名無しさん
2010/10/27(水) 00:58:320884デフォルトの名無しさん
2010/10/27(水) 00:59:56つかえるとおもいます
0885デフォルトの名無しさん
2010/10/27(水) 01:03:220886827
2010/10/27(水) 01:13:13レンダリングできるようになったので報告。
原因不明、なぜかできるようになった。
たぶん、ポインタ指定ミスとかそんなショボイミスだと思う。
てか、普通にダウンサンプリングっていう技法?で存在するから
できなきゃおかしいって話だった。
0887デフォルトの名無しさん
2010/10/27(水) 01:16:15頂点座標をカメラ空間まで変換した座標をそのままテクスチャ座標に入れる。
頂点座標にWorld*View行列をかけるだけ。
プロジェクション行列はかけないのが、普通の座標変換とは違うとこ。
しかし、TexGenを使っているプログラムでは、間違いなくテクスチャ座標変換も同時に
使われているから、D3DTSS_TEXTURETRANSFORMFLAGSやD3DTS_TEXTUREnも要確認。
0888デフォルトの名無しさん
2010/10/27(水) 13:44:15hlslでビューポートを変更できますか?
ビューポートが固定機能パイプラインってのは判ったのですが、
ではプログラマブルパイプラインではどうやるのか判らないのです…
0889デフォルトの名無しさん
2010/10/27(水) 13:46:330890デフォルトの名無しさん
2010/10/27(水) 13:47:459以前は無理
10からは可能
0891デフォルトの名無しさん
2010/10/27(水) 14:13:01>>890
ありがとうございます!
0892デフォルトの名無しさん
2010/10/27(水) 17:54:110893デフォルトの名無しさん
2010/10/27(水) 18:05:530894デフォルトの名無しさん
2010/10/27(水) 18:25:01>D3DVIEWPORT9 構造体の X、Y、Width、Height メンバに指定する値は、
>レンダリング ターゲット サーフェイスの左上角からのスクリーン座標である。
http://msdn.microsoft.com/ja-jp/library/cc324602.aspx
0895デフォルトの名無しさん
2010/10/27(水) 18:26:520896デフォルトの名無しさん
2010/10/27(水) 19:56:45a=b;
みたいに代入したあとに、
b->Release()って、リリースしたら
どうなるの?
aにはポインタは入ったままだけど、テクスチャの実体は消えてる状態と思っていいですか?
それとも代入した時点で、内部参照カウンタが増えちゃってるんですかね?
0897デフォルトの名無しさん
2010/10/27(水) 20:14:17自分でAddRefするかスマートポインタにブチ込むかしない限り消えちゃうよ。
0898デフォルトの名無しさん
2010/10/27(水) 20:25:43ありがとう。
0899デフォルトの名無しさん
2010/10/27(水) 22:46:28いえいえ
0900デフォルトの名無しさん
2010/10/28(木) 00:51:45>>887
ありがとうございます!!
ところでTexGenとはなんでしょうか?
すこし調べてみましたがこれといったものが引っかからなくてよく分かりません。
TexGen?
Texture Generation?
Texture Generation Plane?
行列かPLANEかなにかでしょうか?
OpenGLでは何かに(glGetTexGen?)使われていそうです。
0901デフォルトの名無しさん
2010/10/28(木) 00:53:380902デフォルトの名無しさん
2010/10/28(木) 01:37:45Texture Coordinate Generationが妥当な言葉かな?
ttp://developer.nvidia.com/object/texgen_texmatrix.html
DX7の解説なんでフラグとか微妙に違うかもしれないが、これで一通り説明されてる。
ちなみに、883は間違ってるよ。
0903デフォルトの名無しさん
2010/10/28(木) 03:36:02Spriteで表示させたい2つの画像があって
それぞれの画像を別々の角度で回転させらい場合
Spriteオブジェクトを2つ作らないとできませんか?
0904デフォルトの名無しさん
2010/10/28(木) 04:34:580905デフォルトの名無しさん
2010/10/28(木) 08:54:03初心者なんだから、ID3DXSPRITEインターフェースを使った
描画に決まってるだろ。
そんぐらいわかってやれ。
0906デフォルトの名無しさん
2010/10/28(木) 10:05:300907デフォルトの名無しさん
2010/10/28(木) 10:14:080908デフォルトの名無しさん
2010/10/28(木) 11:11:02Spriteなんか使うな。以上。あれは邪道。
0909デフォルトの名無しさん
2010/10/28(木) 11:44:41使い方さえ間違えなければ下手な初心者が自分で組んだシステムよりよほど高速に動作する
まぁ、ある程度理解してないと使いこなすのは地味に難しいんだけど
0910デフォルトの名無しさん
2010/10/28(木) 12:11:56100万もの粒子表現とかに使えます?
0911デフォルトの名無しさん
2010/10/28(木) 12:24:49遅いし、自由がきかない
0912デフォルトの名無しさん
2010/10/28(木) 12:35:150913デフォルトの名無しさん
2010/10/28(木) 12:37:16普通に描いてもフィルレートで死ぬんじゃね?
0914デフォルトの名無しさん
2010/10/28(木) 12:56:15まともに使ったことない奴多そうだな
0915デフォルトの名無しさん
2010/10/28(木) 12:59:340916デフォルトの名無しさん
2010/10/28(木) 13:16:15http://www.google.co.jp/search?q=ID3DXSprites
0917デフォルトの名無しさん
2010/10/28(木) 13:18:090918デフォルトの名無しさん
2010/10/28(木) 13:20:280919デフォルトの名無しさん
2010/10/28(木) 13:29:340920デフォルトの名無しさん
2010/10/28(木) 13:37:220921デフォルトの名無しさん
2010/10/28(木) 13:49:420922デフォルトの名無しさん
2010/10/28(木) 13:52:210923デフォルトの名無しさん
2010/10/28(木) 15:21:24これを見る限り1つで十分だ
http://msdn.microsoft.com/ja-jp/library/cc372355.aspx
0924デフォルトの名無しさん
2010/10/28(木) 16:55:340925デフォルトの名無しさん
2010/10/28(木) 17:51:55どんなけおまえバカなんだよ消えろカス。
0926デフォルトの名無しさん
2010/10/28(木) 18:11:51float4に展開されるけど
値は0〜255ではなく0.0〜1.0にマッピングされることに注意
0927デフォルトの名無しさん
2010/10/28(木) 18:16:55すいませんでした。
923さんありがとうございます。
引数が5個のdrawを使ってたみたいです。
0928デフォルトの名無しさん
2010/10/28(木) 18:17:53なるほど、つまりboolを4つ使いたい場合はfloat4で格納したほうが節約になるんですね
0929デフォルトの名無しさん
2010/10/28(木) 18:39:10やってみたのですが
error C2660: 'ID3DXSprite::Draw' : 関数に 7 個の引数を指定できません。
のエラーが出ました。
調べたところDX9.0aでは引数7個で
DX9.0b以降は引数5個で回転角度が指定できなくなってました
私が使っているのはDX11(2010_JUNE)です。
やっぱりテクスチャーを個別に回転させる場合は
スプライト2個用意しないとだめなのかな?
0930デフォルトの名無しさん
2010/10/28(木) 18:48:270931デフォルトの名無しさん
2010/10/28(木) 21:00:37おお、まじか申し訳ない
SetTransformで回転させたらどうだろう
0932デフォルトの名無しさん
2010/10/28(木) 22:19:27スプライトで出来ることは単純なことしかできないから。
普通の描画を覚えなさい。
0933デフォルトの名無しさん
2010/10/28(木) 22:24:350934デフォルトの名無しさん
2010/10/28(木) 22:26:54期間限定だし
0935デフォルトの名無しさん
2010/10/28(木) 22:43:29あそこで単純な三角形を描画したよな?
だったら、四角形だって余裕だろ
ってならないところに希望がまったく見えない
てか、これができないレベルのままゲーム作ろうってのが正直ホントすげぇと思う
0936デフォルトの名無しさん
2010/10/28(木) 22:46:12ID3DXSpriteを真面目に使ったことなかったのでちょっと試して見た
GeForce 9600M GT(モバイル用チップ)にて
Debugコンパイルだと妙に重いけど
Releaseコンパイルならまぁ実用範囲内か?
遅いはともかく自由度が効かないという印象はなかった
頂点のローカル軸がスクリーン座標に合わせてy軸が下向きな以外は後はどうとでもなりそう
(計算でひっくり返してもいいけど計算量削減のため今回は元画像を反転で対応。だれか対応策知ってたら教えてください)
テクスチャ1枚だと面白くないので2枚を使ってランダムで描画した場合を想定して計測
100 スプライト( 200ポリ) :630FPS
1000 スプライト( 2000ポリ):490FPS
5000 スプライト(10000ポリ):230FPS
10000スプライト(20000ポリ):140FPS
20000スプライト(40000ポリ): 75FPS
半透明スプライトの整合性を保つために
D3DXSPRITE_SORT_DEPTH_BACKTOFRONTフラグを立ててソートした場合
100 スプライト( 200ポリ) :590FPS
1000 スプライト( 2000ポリ):240FPS
5000 スプライト(10000ポリ): 50FPS
10000スプライト(20000ポリ): 25FPS
20000スプライト(40000ポリ): 14FPS
0937デフォルトの名無しさん
2010/10/28(木) 22:50:05カルシウム足りてねぇよ・・・な?
0938936
2010/10/28(木) 22:50:16ttp://www5b.biglobe.ne.jp/~mya_a/dx/SimpleSample3.zip
ソートした場合スプライト数が増えるとかなりしんどい感じだけど
半透明オブジェクトは分離して最後に描画するようにすればまぁ、普通につかえるんじゃない?
0939デフォルトの名無しさん
2010/10/28(木) 23:07:21もうスプライトなんか使わなくなってるよ。
0940デフォルトの名無しさん
2010/10/28(木) 23:09:44こんな糞クラスについて悩んでる時間がすでに無駄
なんでチュートリアルもやらないの?って怒りはさすがにわく
とりあえず虎を表示しろと
なぜ虎を表示できないのか?と
DirectX SDK チュートリアル
http://msdn.microsoft.com/ja-jp/library/bb219685%28v=VS.85%29.aspx
テンプレにぶち込んでいいレベルだろこれ
0941デフォルトの名無しさん
2010/10/28(木) 23:13:12もういいよ
勝手に一人でイライラしてろよ・・・
0942デフォルトの名無しさん
2010/10/28(木) 23:16:43その応用ができないだけだと思う。
0943デフォルトの名無しさん
2010/10/28(木) 23:33:38したらモデリングソフトで4頂点の三角形2枚を設定するだけじゃね?
努力の方向がまちがってんねん
メタセコに金入れてXファイル出力できるようにすりゃそれで終りだろ
0944デフォルトの名無しさん
2010/10/28(木) 23:35:310945デフォルトの名無しさん
2010/10/28(木) 23:36:31表示は出来ても、理解してないから応用ができない。
つまり、自分のイメージしたとおりに描画ができないってことだろ。
まあ、そういう初心者を救ってあげるのがこのスレの役目だ。
0946デフォルトの名無しさん
2010/10/28(木) 23:36:38関係ないが、金入れなくてもxファイル出力できるぞ
0947デフォルトの名無しさん
2010/10/28(木) 23:39:12金入れたほうがいいと思うな
keynoteがないから階層出力できないし
0948デフォルトの名無しさん
2010/10/28(木) 23:39:400949デフォルトの名無しさん
2010/10/28(木) 23:39:54どうせまたすぐ躓く。
0950デフォルトの名無しさん
2010/10/28(木) 23:41:02一度見てみたいよ。
0951デフォルトの名無しさん
2010/10/28(木) 23:41:57なんで?
なにか不具合ある?
俺からしたら手動でUV設定してるお前のがありえねーよ
0952デフォルトの名無しさん
2010/10/28(木) 23:43:170953デフォルトの名無しさん
2010/10/28(木) 23:43:241スプライトごとに1回DrawSubsetするの?
0954デフォルトの名無しさん
2010/10/28(木) 23:43:43それぐらい普通にやれ
0955デフォルトの名無しさん
2010/10/28(木) 23:44:17パーティクルがやりたいとかそういう例の話はいまはしてないからね?
0956デフォルトの名無しさん
2010/10/28(木) 23:45:38なんで?
あってもいいじゃん
0957デフォルトの名無しさん
2010/10/28(木) 23:45:460958デフォルトの名無しさん
2010/10/28(木) 23:46:090959デフォルトの名無しさん
2010/10/28(木) 23:47:34パーティクルなんて関係ねぇーよ
普通に2Dゲーム作るのだってスプライトごとにDrawPrimitiveなんてしねーよ
0960デフォルトの名無しさん
2010/10/28(木) 23:49:01別にDrawPrimitiveをやるやらないはお前がタイミング決めろよ
XファイルをMSの関数にまかせたら1枚ごとになるけど
読み込んだXファイルを自分のフォーマットに変換して
好きにすればいいだろ
0961デフォルトの名無しさん
2010/10/28(木) 23:49:02>>970たのむ
0962デフォルトの名無しさん
2010/10/28(木) 23:51:340963デフォルトの名無しさん
2010/10/28(木) 23:54:26>読み込んだXファイルを自分のフォーマットに変換して
ができるくらならもうそれは初心者じゃない
Xファイルで読んだら簡単じゃんって言っておいてハードルを上げる矛盾
0964デフォルトの名無しさん
2010/10/28(木) 23:57:480965デフォルトの名無しさん
2010/10/28(木) 23:59:210966デフォルトの名無しさん
2010/10/29(金) 00:06:26なんで速度出そうとする話になってるの?
Xファイルは遅いの?
0967デフォルトの名無しさん
2010/10/29(金) 00:09:140968デフォルトの名無しさん
2010/10/29(金) 00:10:050969デフォルトの名無しさん
2010/10/29(金) 00:10:20速度だけがネックなんだっけ?
0970デフォルトの名無しさん
2010/10/29(金) 00:13:230971デフォルトの名無しさん
2010/10/29(金) 00:18:140972デフォルトの名無しさん
2010/10/29(金) 00:21:03一番はじめはスプライトなんてゴミを使うなだし
どこも間違ってないじゃん
現時点でメリットないんだからw
仕様もよくわからんし、扱いづらいし
やってることは板ポリの表示だろ
何が魅力あるのかねwこのクラスw
この初心者ホイホイ力はすさまじいな
本当に役に立つチュートリアルのほうは手を出さないんだな
0973デフォルトの名無しさん
2010/10/29(金) 00:23:580974デフォルトの名無しさん
2010/10/29(金) 00:28:36細かいところでたしか罠があったな
忘れちまったけど
0975デフォルトの名無しさん
2010/10/29(金) 00:32:090976デフォルトの名無しさん
2010/10/29(金) 00:33:550977デフォルトの名無しさん
2010/10/29(金) 00:43:170978デフォルトの名無しさん
2010/10/29(金) 01:09:18http://hibari.2ch.net/test/read.cgi/tech/1288282082/
0979デフォルトの名無しさん
2010/10/29(金) 02:52:51>>902
すいません。どうにも用語が分からなくて。片っ端から調べたつもりでした。
早速そのPDFを読んでみます。ありがとうございました。
0980デフォルトの名無しさん
2010/10/29(金) 15:40:560981デフォルトの名無しさん
2010/10/29(金) 18:28:570982デフォルトの名無しさん
2010/10/29(金) 18:30:110983デフォルトの名無しさん
2010/10/29(金) 20:30:390984デフォルトの名無しさん
2010/10/29(金) 21:26:20そのラップするクラスの中で使えば解k(ry
0985デフォルトの名無しさん
2010/10/29(金) 22:45:090986デフォルトの名無しさん
2010/10/29(金) 23:51:560987デフォルトの名無しさん
2010/10/29(金) 23:57:070988デフォルトの名無しさん
2010/10/30(土) 00:55:000989デフォルトの名無しさん
2010/10/30(土) 01:47:530990デフォルトの名無しさん
2010/10/30(土) 01:52:520991デフォルトの名無しさん
2010/10/30(土) 02:04:320992デフォルトの名無しさん
2010/10/30(土) 02:45:330993デフォルトの名無しさん
2010/10/30(土) 04:35:150994デフォルトの名無しさん
2010/10/30(土) 09:31:320995デフォルトの名無しさん
2010/10/30(土) 10:27:350996デフォルトの名無しさん
2010/10/30(土) 11:16:590997デフォルトの名無しさん
2010/10/30(土) 12:37:520998デフォルトの名無しさん
2010/10/30(土) 15:15:060999デフォルトの名無しさん
2010/10/30(土) 15:15:471000小倉優子 ◆YUKOH0W58Q
2010/10/30(土) 15:15:57( ・∀・) 1000ならジュースでも飲むか
( )
し─J
10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。