トップページ⇒tech
1001コメント284KB

【C++】 DirectX初心者質問スレ Part31 【C】

■ このスレッドは過去ログ倉庫に格納されています
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
>>1
乙でござる
0003デフォルトの名無しさん2010/09/30(木) 22:12:53
http://iup.2ch-library.com/i/i0161279-1285852117.jpg
作りますた
同じ感じでやったのに一旦PNGにした方が明らかに綺麗になりますた
合格レベルですか?
0004デフォルトの名無しさん2010/09/30(木) 22:16:25
BMPで上げんな
0005デフォルトの名無しさん2010/09/30(木) 22:21:45
>>3
もうちょっと綺麗にならんのか
つか元の画像はどんななんだ?
0006デフォルトの名無しさん2010/09/30(木) 22:30:23
>>1乙
0007デフォルトの名無しさん2010/09/30(木) 22:41:19
>>5
元の画像は
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:49
TGAはフォトショップで普通に出力できた記憶がががが。ぷらぐいんだったのかねぇ・・・。
PNGってダイレクトによめたっけ?読めればアルファも保存できるんだが。
0009デフォルトの名無しさん2010/09/30(木) 22:57:58
>>8
TGAは出力できます
PNGは、最初JPGで保存してたのを名前を変えてPNGとしたらエラーになったのですが
JPGで開いてPNGでインターレース付きで保存したら透過付きで読み込めました
SDKのサンプルではよくDDSが使われてるのでDDSにしたいのですが
TooLで合成しようがフォトショで出力しようが同じものができますよね?
0010デフォルトの名無しさん2010/09/30(木) 23:02:24
>>9
何がそれを保障するかはわからんけど、
一応どっちも製品なんだから同じかどうかは知らないが、途方も無くおかしな方式は採用しないだろ。

一つの見方だが、
フォトショップの内部形式から他のステップを踏むことなくダイレクトにPNGなりDDSになったほうが品質の面では良くないかい?
0011デフォルトの名無しさん2010/09/30(木) 23:08:01
>>10
なるほど!
ようつべの動画を何回も上げて落とすを繰り返すと劣化するって動画がありましたがそんな感じですね
TGAかDDSのプラグインを探すようにします
0012デフォルトの名無しさん2010/09/30(木) 23:15:15
バッカ
お前、仕組み理解しろよ
「アンチエイリアス」でググレよ

>できたのがこれで2階調補正して白黒反転させてToolでddsにしました
なんで2階調補正するんだよーーーーーーーーーーーーーーーーーーーーーーーー!

ググレって自分が何アフォなことやってるのか一発で理解できるから
0013デフォルトの名無しさん2010/09/30(木) 23:37:37
別にこういうビルボードっぽい草ならαは2階調でいいと思うぞ
変にアンチエイリアス入れると描画順を考えないと半透明部分のZ値がおかしくなる
ソートなしでαテストのみで描画できるから完全に抜きの方が楽

という話は置いといて
元素材をちゃんと作れ、そしてαチャンネルについて勉強しろ
2階調ににした白と黒の部分が何を意味してるのか理解してるのか?
0014デフォルトの名無しさん2010/09/30(木) 23:41:13
えーソートなんてすぐじゃんー
0015デフォルトの名無しさん2010/09/30(木) 23:51:47
>>14
ビルボードならいいけど
よくRPGとかであるように十字に組み合わせて配置したいときに面倒だろ?
0016デフォルトの名無しさん2010/09/30(木) 23:58:46
>>11
フォトショのDDSプラグインはNVIDIAが配布してんぞ
0017デフォルトの名無しさん2010/10/01(金) 00:00:01
>>12
ありがとうございます
アルファチャネルと間違ってググってました
つまり…PNGだと自動的にアンチエイリアスになるってことですか…?
0018デフォルトの名無しさん2010/10/01(金) 00:01:48
そういや昔のSDKはUtilitiesのとこにフョトショDDSプラグイン入入ってたけど最新のだと無くなってるな
0019デフォルトの名無しさん2010/10/01(金) 00:08:20
>>13
すいません
アルファチャンネルについてググったのですが理解できませんでした…
背景をカットしたコピーと同一ではないのですか?
ある色を透過色としてその色をスルーするのが透過の仕組みですよね?
そしてDDSだかは透過色が始めから決まってるからその範囲を黒の部分として合成してDDSを作る…みたいなイメージでした
0020デフォルトの名無しさん2010/10/01(金) 00:14:33
>>17
なんで汚く見えるのか?
ってところから理解できたの?

それとアルファ画像もその仕組みも理解してねーのかよ
いろいろ覚えることあるな
全部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
>>20
ぐぐりました
1.アルファブレンド(αが0のとき、→透明
             128のとき、→半透明
             255のとき→不透明
2.アルファチャンネルの仕組み(2階調?ありえないw)→つまり、2階調にすると灰色の半透明ができないだろ!みたいなことですか…?
3.アンチエイリアスの仕組み→色のさかい目がだんだn混ざっていく?それでPNGだとアンチエイリアスになってJPGだとならないんですか?
4.アルファ画像の作り方→つまり各マスの黒から白の0〜255をα値にするってことですか…?
合ってたら理解が繋がった気がしてきた
0023デフォルトの名無しさん2010/10/01(金) 00:29:16
>>22
質問!RGBAってなんだかわっかるー??
0024デフォルトの名無しさん2010/10/01(金) 00:32:13
>>23
レッドブルーグリーンアルファの値?
アルファ…?ピクセルごとに透明度が決まってるみたいな?
0025デフォルトの名無しさん2010/10/01(金) 00:37:49
>>24
半分丸だね。
ピクセルを構成する要素で、色の3色である、赤、緑、青、に透明度の単位であるアルファチャンネルをつけたもの。
つまり、2ピクセルを合成するときにアルファチャンネルに基づいて、赤と緑と青の合成濃度が変わるということ。
それが結局透けて見えるとかガラスの表現だとかそういうほうに結びつくの。
0026デフォルトの名無しさん2010/10/01(金) 00:41:48
つまり
JPG→RBG
PNG→RBGAってこと?
フォトショで切り抜いたから端のアンチエイリアスが混ざる色が0000とかで
だからJPGだと端のコマがアンチエイリアスされず全部白に置き換わる
PNGだとアンチエイリアスされてだんだんAが0に近づくからアンチエイリアスされて見える。みたいな?
0027デフォルトの名無しさん2010/10/01(金) 00:46:20
>>22
JPEGや24bitBMPはもともとα値を保存してない(RGB)しかない
ここにグレースケール画像(0〜255段階)をα値として合成することで
ARGBのDDSとして保存するのがDirectXTextureToolのやってること
0と255の2階調なら完全な抜き絵になるし
白→黒へ徐々にグラデーションさせればアンチエイリアスになる


PNGはもともとα値を含む画像フォーマットなので
フォトショップ上でどう編集してるかにもよるけど
おそらく回転だの拡大だのしてるときにフィルターがかかって自動で縁にアンチエイリアスがかかってる
だからフォトショでPNGとして保存したものをそのまま読み込むと(DirectXTextureTool)を使わない
アンチエイリアスのかかったテクスチャが出来上がる
0028デフォルトの名無しさん2010/10/01(金) 00:53:05
>>26
半分丸だね。
JPGは別の問題があって、高圧縮の影には非可逆圧縮系の方法がさいようされてて、画像は絶対劣化する。
透明なJPGができたかは忘れた。こういう用途ではあんまり使わない。
PNGは大雑把に言えばZIPと似たような方式をとってて可逆圧縮系の方法が採用されているのと、
アルファチャンネルなどの要素も仕様に含んでいる。

PNGはアルファチャンネルが保存できるから、
そのアルファによって透過させるということは、君の言うアンチエリアスの機能も実現できるんだ。
0029デフォルトの名無しさん2010/10/01(金) 00:53:14
>>27
おおーなるほど。もう完璧にわかりました
下手すればフォトショでPNGで作っといて名前を変えるでDDSにしてもいけるんじゃないかってぐらいに理解できました
ツール要らないんじゃないかとか一瞬思ったけど、ミップマップレベルとかあるからやっぱり要るんでしょうね
0030デフォルトの名無しさん2010/10/01(金) 01:03:32
>>28
ありがとうございます
アルファ値の保存と、アルファチャンネルの保存の違いはまだよくわかりませんが
512×512ピクセルとはいえJPGの圧縮の劣化と言ってもそこまで無いでしょうし
とりあえず今は透過=PNGかGIFと覚えておきます
0031デフォルトの名無しさん2010/10/01(金) 01:06:37
あーアルファとアルファチャンネルはほとんど同意だ。
まー、がんばってくれ。GL&HF!!
0032デフォルトの名無しさん2010/10/01(金) 01:12:47
ありがとうございました!
0033デフォルトの名無しさん2010/10/01(金) 04:48:47
>>32がなんかいろいろ勘違いしたまま去っていった気がするのは俺だけだろうか・・・。
0034デフォルトの名無しさん2010/10/01(金) 07:19:17
なんで自分でプログラミングする以前の問題として、
まともなモデリングソフトを触って研究しようとしないんだろう?
どれだけ馬鹿なの?
0035デフォルトの名無しさん2010/10/01(金) 07:41:49
>>33
こんな短時間で理解するのは無理だよな
まあ、わからなかったら何回でも書き込みを読み直せばいい
そのうちできんだろw
0036デフォルトの名無しさん2010/10/01(金) 07:44:16
どこが違うんだ?
完璧に理解したつもりなんだが
0037デフォルトの名無しさん2010/10/01(金) 07:52:11
>>36
じゃあ、>>3と同じ形で出してみろよ
0038デフォルトの名無しさん2010/10/01(金) 08:40:30
>>37
何をですか?
0039デフォルトの名無しさん2010/10/01(金) 09:33:37
>>38
アルファチャンネルをちゃんと適用したものを
0040デフォルトの名無しさん2010/10/01(金) 09:51:14
>>39
すいません理解できません
どういうことですか?
具体的に何をどうしたやつを出せと言ってるのかゆってください
0041デフォルトの名無しさん2010/10/01(金) 10:20:03
ここまでのやりとりは一体なんだったのだろうか・・・?(笑)
0042デフォルトの名無しさん2010/10/01(金) 10:26:39
すべて無駄だったな
0043デフォルトの名無しさん2010/10/01(金) 10:33:10
そもそも画像ファイル自体にアンチエイリアス目的でアルファ情報を含める必要性がまったく無いんだが、
いったいこいつらは何を言っているんだ?
0044デフォルトの名無しさん2010/10/01(金) 10:43:27
>>43
淵が綺麗にならない問題はあきらめるってこと?
でも今回のレスって綺麗に貼れないか云々じゃなかったっけ?
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:28
明らかに不自然だろ。
0049デフォルトの名無しさん2010/10/01(金) 10:59:18
>>46
白と融合してる部分はアルファで見えないぐらいに消しちまえばいいんじゃね?
アルファチャンネル理解して淵を綺麗にできることが今回の話を理解できたってことだと思うけどな

>>47
そういう話だっただろ
0050デフォルトの名無しさん2010/10/01(金) 11:00:45
そもそもの画像の切り取り方が下手糞とかじゃなくて?
0051デフォルトの名無しさん2010/10/01(金) 11:02:13
>>50
それもある
でも>>3の画像って2階調で処理しちゃった奴でしょ?
0052デフォルトの名無しさん2010/10/01(金) 11:41:35
>>3が汚いのは単にデータの作り方が雑なだけでしょ
2階調でも十分だと思うぞ

やっつけだけど
http://www5b.biglobe.ne.jp/~mya_a/dx/23293.dds
0053デフォルトの名無しさん2010/10/01(金) 11:48:14
2階調にしといてもテクスチャのフィルタ次第でアンチエイリアスになるしな
0054デフォルトの名無しさん2010/10/01(金) 12:04:03
恥を承知で質問します。
あるエフェクトの表現方法について教えていただきたいのです。
よくRPGとかの戦闘シーンで件で切りつけた瞬間に本当に切ったような光が
ランダムに描画されて消えていくエフェクトを見たことあると思いますが、
それを表現したいのです。
具体的に言うとテイルズオブヴェスペリアのユーリの秘奥義である漸毅狼影陣
で切りつける瞬間に出る光のことです。
↓の動画の一番最初の技のやつです。
http://www.nicovideo.jp/watch/sm9545804

何がわからないのかといいますと、どういう画像を使って、どのような描画を行えば
よいのかが分かりません。
三角形の画像を使って、拡大しながら加算ブレンドするとか、ポリゴンの頂点を急激に伸ばしながら描画するとか
そういう表現で説明していただけると助かります。
コード等は必要ありません。
表現方法を教えてください。

最高のRPGを作りたいのです。よろしくお願い致します。
0055デフォルトの名無しさん2010/10/01(金) 12:10:41
>>54
テクスチャに動画貼り付けてEND
0056542010/10/01(金) 12:16:07
>>55
テクスチャに動画なんて貼れません。

DirectXの知識自体はあるのです。
エフェクトを表現するスキルが不足しているんです。
よろしくお願いします。
0057デフォルトの名無しさん2010/10/01(金) 12:30:00
貼れないというのが意味不明。
動画から画像を取りだして、更新が必要なフレームでテクスチャを書き換えればいいだけだよ。
0058542010/10/01(金) 12:34:15
つまり、ある一つの画像を使っては表現できないということでしょうか?
ああいうエフェクトは最初から、一つの画像を色々プログラムで駆使して表現しているのではなく、
何枚もの画像を使って、切り換えているだけなんでしょうか?
0059デフォルトの名無しさん2010/10/01(金) 12:43:06
>>58
なんでレベル低いくせに背伸びするんだw
http://www.shader.jp/xoops/html/masafumi/directx9/DShow/dshow001.htm

動画にZ値をもたせておけば前後関係もちゃんと表現できるぞ
α情報をもたせておけば透過もできる
0060デフォルトの名無しさん2010/10/01(金) 12:50:50
でも、この動画を見る限り1枚絵だな
α値含むエフェクト画像を加算合成
全体の透明度を0.0→1.0→0.0の変化と
αテストの閾値を0→255の変化を同時進行させているように見える
0061デフォルトの名無しさん2010/10/01(金) 12:50:54
>>51
そうです
フォトショでまず自動選択ツールとか消しゴムで切り抜いて、白紙を背景にして保存して、2階調補正して透過のために白黒ファイルを作って、ツールで重ねました
jpgの時の散らばりが無くなったので結構満足してたのですがどうやるのが正解なのでしょうか?
>>52
自分の作ったPNGと違いがわかんねえ…あんまり変わらないような

それと、グラボ買ってきたから今から取り付ける
これからはトゥーンレンダリングしまくってやんよ
0062デフォルトの名無しさん2010/10/01(金) 12:55:48
>>59は前スレにいた動画エフェクト厨だなw
0063デフォルトの名無しさん2010/10/01(金) 12:56:58
本職じゃないから正確なところは知らんけど、
透明な線ポリや板ポリを発光させたり、
板ポリ+アルファ付テクスチャを発光 & フェードイン/アウトさせたりするんじゃないの?
負荷は増えるだろうけどパーティクル使っても可能だろう。

何にせよ応用思考の全く出来ない人っぽいので、ググるか大き目の本屋に行ってみる事をお勧めする。
タイトルは忘れたが、その手のエフェクトについて解説した本がある。
シェーダー関係だったかな?
0064デフォルトの名無しさん2010/10/01(金) 12:59:18
>>62
あいつはテクスチャアニメーションの代わりに使おうとしてたクズだろ
あんなのといっしょにするな
0065デフォルトの名無しさん2010/10/01(金) 13:06:38
2chで聞くだけ無駄
0066542010/10/01(金) 13:09:06
>>59
DirectShowを使えば可能なんですね。まったく知りませんでした。
私の知識不足です。

>>60
なるほど。参考になります。ありがとうございます。

>>63
ありがとうございます。
シェーダーもそこそこ扱えるので、
本の名前思い出したら、また書き込んでいただけると助かります。
0067デフォルトの名無しさん2010/10/01(金) 13:09:18
こんなにも大団円なのになんでそんなレスが
0068デフォルトの名無しさん2010/10/01(金) 13:10:42
http://www.autodesk.co.jp/adsk/servlet/pc/item?siteID=1169823&id=15138561
で体験版を落として30日使い込んで、必要最低限の知識を学べ。
いきなり0からやろうとするから、右も左も分からないんだよ。
0069デフォルトの名無しさん2010/10/01(金) 13:16:26
「本当に切ったような光」に誰か突っ込もうぜ。
台所で料理してるオカンの手元が光りまくってるのを想像してしまった。

っていうか、質問するほどのネタでもないような。
放射状に筋を描いて、ポストエフェクトでライトブルームを加えてるだけじゃない?
中心部分には円形の光を加えていそうだが。
0070542010/10/01(金) 13:19:58
>>63
ありがとうございます。ダウンロードしてやってみます。

>>69
言い方おかしかったですねw。すみません。
なるほど。ありがとうございます。
0071デフォルトの名無しさん2010/10/01(金) 13:21:50
そういう「閃き」や「連想」のスキルがゼロの人間も世の中には少なくないんだよ
0072デフォルトの名無しさん2010/10/01(金) 13:48:02
くそっ
どうやったらDirectXマスターできるんだよ
■ このスレッドは過去ログ倉庫に格納されています