トップページ⇒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階調で処理しちゃった奴でしょ?
■ このスレッドは過去ログ倉庫に格納されています