プチコン3号 SmileBASIC コミュニティプレイ日記moh6an moh6an2017/07/01 09:49:52ARYOPで画像配列生成して GLOADに画像配列を流し込みたいとき、αは最大値255でないと表示されないけど数値範囲として 128~255が-127~-1の範囲である必要があって そこだけ24ビットシフト演算前に処理する必要があるのでだいぶ唸って困った。 (他のRGBチャネルは単純にシフトして足すだけ)12そうだね 8返信プレイ済み2017/11/02 22:33:22に取得
プチコン3号 SmileBASIC コミュニティ返信[1]親投稿moh6an moh6an2017/7/1 9:53んでもってGLOADに32bit配列を変換して流し込みたい場合 ARGBの順で格納されてるんだけど、juhsyの内部画像配列は、何を血迷ったのかRGBAにしてしまっていた・・・・orz(保存画像も同じ) すごい・・・・不覚・・・・格納チャネルの紐付けを交換すりゃいいんだけど、ソースコードがちょっと(元からだが)汚くなってしまった・・・0そうだね プレイ済み2017/11/02 22:33:22に取得
プチコン3号 SmileBASIC コミュニティ返信[2]親投稿moh6an moh6an2017/7/1 10:25不透明度を内部的に処理するにしても、表示は255固定にしないと色自体表示されないから、不透明度値はわざわざ計算しないで ARYOP #AOPADD 出力配列,-127*(1<<24),0で固定でいいのだろう0そうだね プレイ済み2017/11/02 22:33:22に取得
プチコン3号 SmileBASIC コミュニティ返信[3]親投稿moh6an moh6an2017/7/1 10:30つまり直値にするとあらかじめ-2130706432を足しておく0そうだね プレイ済み2017/11/02 22:33:22に取得
プチコン3号 SmileBASIC コミュニティ返信[4]親投稿moh6an moh6an2017/7/1 11:03思いっきり、計算間違えてた 255が-1なんだから、-1*(1<<24)であり つまり-16777216でした、orz ARYOP #AOPADD 出力配列,-16777216,0 ARYOP #AOPMAD 出力配列,R値配列,1<<16,出力配列 ARYOP #AOPMAD 出力配列,G値配列,1<<8,出力配列 ARYOP #AOPMAD 出力配列,B値配列,1<<0,出力配列 0そうだね プレイ済み2017/11/02 22:33:22に取得
プチコン3号 SmileBASIC コミュニティ返信[5]親投稿moh6an moh6an2017/7/1 11:25R値計算のときに不透明度値を混ぜられるのだから1処理減らせるな・・・ ついでにビットシフト係数も定数値にすると速くなるらしいから置換 する。となると3行に減らせるね ARYOP #AOPMAD 出力配列,R値配列,65536,-16777216 ARYOP #AOPMAD 出力配列,G値配列,256,出力配列 ARYOP #AOPADD 出力配列,B値配列,出力配列 0そうだね プレイ済み2017/11/02 22:33:22に取得
プチコン3号 SmileBASIC コミュニティ返信[6]親投稿moh6an moh6an2017/7/1 11:28不透明度α値を考慮した計算を考えてみる ベース色として#WHITEにしておく、これに8bitαを考慮した合成を行う 0そうだね プレイ済み2017/11/02 22:33:22に取得
プチコン3号 SmileBASIC コミュニティ返信[7]親投稿moh6an moh6an2017/7/1 11:42ちょうど#AOPLIPが通常タイプの画像合成におあつらえ向きなのでこれを使用すると、まず0-255の整数α値配列を小数点の実数α値配列になおして・・・ ARYOP #AOPDIV 実数α値配列,整数α値配列,255 通常合成の公式は色値*α+地色値*(1-α)、これをAOPLIPにあてはめ ARYOP #AOPLIP 出力赤値配列,入力赤値配列,255,実数α配列 ARYOP #AOPLIP 出力緑値配列,入力緑値配列,255,実数α配列 ARYOP #AOPLIP 出力青値配列,入力青値配列,255,実数α配列 0そうだね プレイ済み2017/11/02 22:33:22に取得
プチコン3号 SmileBASIC コミュニティ返信[8]親投稿moh6an moh6an2017/7/1 15:06クリッピング対応してないけど実装できた 十分早い!!1そうだね プレイ済み2017/11/02 22:33:22に取得