HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2015
1205
774[HSP3Dish] RGB値を操作できるコピーが欲しいです21解決


774

リンク

2015/12/5(Sat) 18:44:20|NO.73444

具体的な名称はわからないのですが、
 (255, 255, 255) = そのままの色でコピー
 (255, 128, 128) = 赤っぽくコピー
 ( 0, 0, 0) = 真っ黒でコピー
みたいなコピー命令、或いはコピーモードが欲しいです。
(画像のRGB値を乗算してコピーみたいな感じでしょうか


HSPであれば、バッファで減算・カラーマスクやgmode7でできるのですが
現状のDishで行うとなると

・必要な色の分だけ画像を用意しておく
 モノによってはバッファ量の制限が非常に厳しいです

・R,G,B各成分に分解した画像を加算合成
 画像3倍、描画処理は3倍以上

・背景を単色にしαチャンネル反転
 せっかくαチャンネルまで扱えるのに背景単色なのは…

といった感じです。


限られた素材の活用の幅も広がると思いますので
何卒ご検討頂けないでしょうか。



この記事に返信する


窓月らら

リンク

2015/12/5(Sat) 18:56:40|NO.73446

うちもコレ欲しいです。
Android(NDK)で減算ができるようになれば結構いけると思うんですけどねぇ…
うちが使いたいと思う用途は、夜や洞窟などの暗いシーンとか。
加算だと明るくなっちゃうから色々と不都合。



kanamaru

リンク

2015/12/5(Sat) 19:05:55|NO.73447

mrefでvram取得すればいけるのではないかと思ったらサポート外…
よし、pgetでvram生成してやる!と思ったらpgetもサポート外…
こうなったら画像のフォーマットを調べればと思ったけど、
そしたらわざわざ画像を用意しなきゃ行けなくなる。
どうやら対応命令で自作しようとしたのが間違いのようです。



774

リンク

2015/12/6(Sun) 00:45:24|NO.73469

>窓月らら様
賛同ありがとうございます。
私の場合は、文字画像によるテキスト表示ですね。
こういう機能があれば、白文字1つで何色にでもできるのに…と。
文字画像単体でバッファ1つ食い潰してるので、RGB分解すると全て使い切ります(w

>kanamaru様
私も自作派なので色々試したのですが、どうにも良い手が無い感じでした。
(memfileはpicloadの段階でダメ、paletteもサポート外です
仕方無いので、何かに負けたような気がしつつも提案してみた次第です。
バッファ書き込みや日本語完全対応よりは実現可能な気がするんですけど…



zakki

リンク

2015/12/6(Sun) 16:43:48|NO.73474

OpenGL/DirectXにマッピングされる関係で、
・テクスチャに対してのpget/psetは重い
・gmode7の実装は多分無理
・減算合成は(iOS版のように)OpenGL拡張が必要
って感じでwin32gui版と同じ仕様は辛いんじゃないかと思います。

hgio_copy()あたりでGLSL使うようにしてテクスチャから表示色の計算をカスタマイズしてみるのはどうでしょう?



kanamaru

リンク

2015/12/6(Sun) 16:43:58|NO.73475

いろいろコマンドリストを見たところ、現状考えられるのは、
#undef応用して、標準描画命令を置き換えして、内部でvram作って、
画像関連の命令も置き換えて、画像フォーマットを自前で解析して、vramに書き込んで、
全て自前でやる方法ぐらいしか思いつかない。
はー。mrefが参照してるアドレスが固定ならいいけど、多分固定じゃないだろうし。
固定なら正攻法ができるのに。



774

リンク

2015/12/6(Sun) 21:39:04|NO.73479

>zakki様
公式で対応して頂けるならそれがベストですので、改造は最後の最後にしたいですね。
…と言いつつ覗いて見たのですが
hgio_setBlendMode()のglColorPointer()に渡すpanelColorsTexに
RGB値の方を弄る処理加えたら出来ちゃえませんかね、コレ?
実機もOpenGLも全く触った事無いですし、win32gui版の方は解りませんけど…

>kanamaru様
>#undef応用して、標準描画命令を置き換えして、内部でvram作って
自作VRAMの内容をpsetで置いてくのでしょうか、さすがに実用無理っぽいです^^;



zakki

リンク

2015/12/6(Sun) 22:44:32|NO.73480

>> 774さん
そうですね、シェーダーではなくて固定パイプライン使うままならglTexEnviのモードとpanelColorsTexのポリゴン色をを適当に変更出来るようにすれば
コピー範囲全体の色合いを変更することは出来そうですね。

改造版をおにたまさんに送りつけて公式にしてもらっちゃうっていう仲間が増えるといいなーと。



窓月らら

リンク

2015/12/7(Mon) 18:20:05|NO.73488

楽しみに待ってます♪



774

リンク

2015/12/7(Mon) 19:16:01|NO.73491

RGB値は現在の色から引用で良いでしょうし、Dish用のgmodeを1つ追加という形なら
変更も少なくコピー系全般で使えて便利そうですねぇ。

おにたま様かzakki様(勿論他の方でも)、実装して頂けないでしょうか。m(_ _)m

…すみません、動作確認できる環境無いのでお仲間にはなれそうに無いです。



おにたま(管理人)

リンク

2015/12/7(Mon) 23:25:58|NO.73503

HSP3Dishについてのご意見ありがとうございます。
画像に乗算を行なってコピーする命令、同感です。私も欲しいですね(^^;
gmodeに新たなモードを追加して、color命令で指定した色を反映させるような拡張を行なっていきたいと思います。
減算合成やGLSLによる細かいピクセル操作は、HGIMG4をandroid,iOSでも動かす前提で、拡張していけたらと考えています。



窓月らら

リンク

2015/12/8(Tue) 00:13:16|NO.73505

キター!!
超楽しみに待ってます♪



774

リンク

2015/12/8(Tue) 18:58:34|NO.73515

採用ありがとうございます。m(_ _)m
色々と夢が広がりそうです。

後は作品を完成できるかが最大の課題ですね……



おにたま(管理人)

リンク

2015/12/17(Thu) 21:56:12|NO.73640

HSP3Dishに、画像のRGB値を乗算してコピーする機能を実装しました。
gmulcolor命令を新たに追加して、「gmulcolor 128,0,255」のような形で乗算するRGBを指定できます。
gmode(コピーモード)2以上の画像コピー時に適用されます。
HSP3.5β3として公開する予定ですが、先行してOneDriveで最新のテスト版を公開しておきますので、時間のある方はテストして頂けると助かります。(「ダウンロード」から全体のアーカイブを取得可能です)
http://1drv.ms/1QjSlJ4

gmulcolorは、HSP3Dish(windows,ios,android,js),HGIMG4を使用したスクリプトで有効になります。

今後は、OneDriveの共有フォルダに随時最新版を更新していく予定です。
ただし、まだ不具合がある可能性がありますので了解の上お試しください。
インストール方法など詳細は、readmeファイルを参照してください。
https://onedrive.live.com/embed?cid=EC425522ED849DA7&resid=ec425522ed849da7%211233&authkey=AIKUTTyES3tD9iM



空気

リンク

2015/12/18(Fri) 00:11:10|NO.73642

不具合報告をさせて頂きます。
手持ちのAndroid2.3.4の端末では
アプリを起動した瞬間にアプリが強制終了してしまいます。

gmulcolor命令を記述しない場合は正常に実機上で動作致します。

ビルド環境 jdk1.8.0_45 android-ndk-r10e apache-ant-1.9.6

動作環境 Androidバージョン:2.3.4 Android機種    :Xperia Arc

;テストに用いたスクリプトは下記です。 #include "hsp3dish.as" x2=ginfo_winx:y2=ginfo_winy randomize gmode 2 repeat redraw 0 gfilter 2 pos rnd(x2),rnd(y2) celload "tama.png",1 gmulcolor rnd(255),rnd(255),rnd(255) gzoom int(76.0/3),int(73.0/3),1,0,0,76,73 await 1000/7 redraw 1 loop



窓月らら

リンク

2015/12/18(Fri) 00:11:36|NO.73643

> おにたまさん

わぁい♪ 素早い対応ありがとうございます。
試してから結果などを報告させて頂きますね。
今日はスターウォーズ祭なので、その後に色々試してみます!



窓月らら

リンク

2015/12/18(Fri) 00:41:36|NO.73644

> 空気さん

celload "tama.png",1 の実行は repeat より前に1回だけでいいと思います。
試していないのですが、Androidで落ちるのはこれのせいかもしれません。



窓月らら

リンク

2015/12/18(Fri) 10:34:22|NO.73649

うちも試してみました。Windowsでは動作OKです。
しかし Android では空気さんと同じで、gmulcolor があると落ちちゃいます。
celload の位置は関係なかったです。

テスト機種:Nexus7(2012) Android 5.1.1

jdk1.6.0_23
ndk-r10e
apache-ant-1.9.6



774

リンク

2015/12/18(Fri) 19:24:24|NO.73664

Windows版のみの確認ですが、やりかたった事が見事に実現できました。
ありがとうございます。(XP機でも問題無さそうです


本件とは関係ない上に非常に細かい事なのですが
HDLのmmstatページ内の関連項目、「dmmplay」ではなく「mmplay」のような気がします。



しまくろねこ

リンク

2015/12/18(Fri) 19:34:21|NO.73665

こんにちは。

いつの間にかこんな便利なものが追加されていたのですね。
すいませんWindowsでしか動作確認してないです。
大変ありがたいです。



おにたま(管理人)

リンク

2015/12/18(Fri) 20:13:56|NO.73671

>空気 さん
>窓月らら さん

ご報告ありがとうございます。
OpenHSPなどからHSP3.5β3をすでに入れてある場合は、
「プロジェクト」で指定されたフォルダ以下にある「hsplib35b3」フォルダを削除してから、再度新規プロジェクトを作成して試して頂けますでしょうか。
これでも動作しないようであれば、LogCatの出力をお知らせ下さい。

HSP3.5β3のhsp3dhでは、ランタイムのライブラリを一旦「hsplib35b3」フォルダにコピーして、その内容を使用する形になりました。
すでに「hsplib35b3」フォルダがある場合は、内容を更新しません。このあたりは、今後厳密にバージョンのチェックを行なった方がいいですね…。



窓月らら

リンク

2015/12/18(Fri) 23:49:52|NO.73676

> おにたまさん

プロジェクトフォルダ内のhsplib35b3フォルダを削除し、プロジェクトを作り直して
ビルドしたところ、Androidでも無事動作しました! ありがとうございます。

これで色違いのグラフィックを用意する必要がなくなりました、最高です。
これから色々いじってみますので、何か問題を見つけたらお知らせします。
正式リリースを楽しみに待ってます♪



ONION software Copyright 1997-2021(c) All rights reserved.