【ムービー・画像】吸い出そう 2【音声・BGM】

このエントリーをはてなブックマークに追加
902名無しさん@お腹いっぱい。
細かい事だとは思うが
15ビットカラー(RGB555)を24ビットカラー(RGB888)にするとき
よりゲーム画面に近くするには、どう変換するのがいいんだ?


各色要素を左へ3bitシフトさせているコンバータが多いが、
これだと7FFF(白)がF8F8F8になって完全な白にならないし。

例えば
(red << 3) + (red >> 2)
のように右へ2bitシフトしたのを足した方がいいのか?

左端bitが0か1かで、輝度が変わるコンバータもあったが
左端bitはRGBの変換方法に関係があるのか?(α値だと思ってたんだが)



コンバータ作者によって変換方法がバラバラなんで、どれが一番良いかわからない。
ちなみに変換したいのはセガサターンのレイアース。
903名無しさん@お腹いっぱい。:2009/01/25(日) 22:09:30 ID:0WrPIw+8
>>902
ちゃんとフォーマットを調べないとなんとも言えない。

>15ビットカラー(RGB555)を24ビットカラー(RGB888)にするとき
>よりゲーム画面に近くするには、どう変換するのがいいんだ?
輝度値の伸張だけの場合、端的に言うと、浮動小数点演算が必要になる。
5bitの無符号最大値(31)と8bitの無符号最大値(255)の比を求めて、それを掛けるようにする。そして結果の整数値だけを取り出す。
ビットシフトは手抜きなんだが、一番手軽ではある。

ガンマカーブの変換はともかくとして、見栄えまでやるとなると拡縮ルーチンの問題になってくるけど、
そこまでやってるコンバータ作者はさすがにほとんどいない(というか意味が無いとさえ考えている)。

>左端bitが0か1
16bitでR5G5B5A1(PSの場合)とR5G6B5(DCの場合。Windowsの16bitBMPと同じ?)は知ってるけど、SSはよく知らない。

>レイアース
魔法騎士レイアースだっけ?CLAMP作品で、人名・地名にやたらと乗用車の商品名が多いとか、第1部終盤は巨大ロボットもどきに乗ってバトルとか。

・・・それはともかくとして、フォーマットは分かってるんでしょ。だったらあとは試行錯誤しかないと思うけど。
904AZUCO:2009/01/26(月) 00:38:55 ID:Mocexscy
>>902
そのまま<<3でOK
実記のDACにも結局はその値が叩き込まれているはず。
むしろ何もしない方がいい。

>これだと7FFF(白)がF8F8F8になって完全な白にならないし。
これを重視するのであれば、0x7fffの時にエスケープを入れるか
0x0000にエスケープを入れて、|=0x03するのが良いのでは?

まぁ書き込み内容から見て、恐らく自作ゲームにデータをコンバートしたいのだと思うが
その先で使いやすいようにコンバートするのが良いかと思う