トップページ > 記事閲覧
float4でスクリーンを初期化したい
名前:初期状態 日時: 2016/05/30 21:58

お世話になっています スクリーンを初期化するときに、SetBackGroundColor→ClearDrawScreenだと、rgbは0〜255の指定した値、aは0で初期化されますが、 この方法だと浮動小数点付き画像ハンドルに負の値や1.0f以上の値を書き込むことや、a値を1以外の値で初期化することができませんよね? 何か方法はありますか?
メンテ

Page: 1 |

Re: float4でスクリーンを初期化したい ( No.1 )
名前:管理人 日時:2016/05/31 01:28

今のところは浮動小数点フォーマットの画像をプログラム中で作成して描画に使用するか、 オリジナルのシェーダーを作成して描画に使用するしかありません 前者の浮動小数点型の画像を使用する方法は以下の通りです // 1x1 サイズの浮動小数点フォーマットのソフトウェア画像を作成 int SoftImgHandle = MakeARGBF32ColorSoftImage( 1, 1 ) ; // クリアで使用したい値を座標( 0, 0 )に書き込む DrawPixelSoftImageF( SoftImgHandle, 0, 0, 2.0f, 3.0f, 4.0f, 555.0f ) ; // 浮動小数点フォーマットのグラフィックハンドルを浮動小数点フォーマットのソフトウェア画像から作成する int FloatGraphHandle = CreateGraphFromSoftImage( SoftImgHandle ) ; // ソフトウェア画像の用は済んだので削除 DeleteSoftImage( SoftImgHandle ) ; // 描画する色をそのまま描画先に書き込むブレンドモードに変更 SetDrawBlendMode( DX_BLENDMODE_SRCCOLOR, 255 ) ; // 画面いっぱいに 1x1 サイズの画像を拡大して描画 DrawExtendGraph( 0, 0, 640, 480, FloatGraphHandle, TRUE ) ; // グラフィックハンドルの用は済んだので削除 DeleteGraph( FloatGraphHandle ) ; // ブレンドモードを元に戻す SetDrawBlendMode( DX_BLENDMODE_NOBLEND, 255 ) ; 因みに↑のプログラムでは SoftImgHandle と FloatGraphHandle を不要になった時点で 削除していますが、作成と削除は負荷の高い処理なので、もし頻繁にクリアをするのでしたら 一度 MakeARGBF32ColorSoftImage と CreateGraphFromSoftImage で作成したハンドルを削除せずに 使い続けたほうが良いです
メンテ
Re: float4でスクリーンを初期化したい ( No.2 )
名前:初期状態(解決) 日時:2016/06/01 18:23

なるほど。。ソフトイメージですか 今まで使ったことのない機能だったのですが、これを使って実装してみます
メンテ

Page: 1 |

題名
名前
コメント
パスワード (記事メンテ時に使用)

   クッキー保存