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


HSPTV!掲示板


未解決 解決 停止 削除要請

2022
0411
テクノけいさつhgimg4(dish)deのgsquare7解決


テクノけいさつ

リンク

2022/4/11(Mon) 23:21:53|NO.95971

hgimg4(hsp3dish)での、gsquareの用法について、下記3点、ご存じでしたら
教えていただけないでしょうか。(本当は③だけのつもりでしたが、なぜか芋づる式に…)

①下記サンプルをそのまま実行した場合、正常にgsquareで表示ができますが(dish)、
 1行目のコメントを外して2行目をコメントにした場合、画像が上下反転します(hgimg4)。
 これはhgimg4の不具合でしょうか?

②下記サンプルの※Aの2行のコメントを外すと、画像が三角形に変形されます。
 しかし、元画像が圧縮されて三角形になるのではなく、微妙に欠けた形で変形されます。
 (hgimg4だと逆三角形になって、欠けて変形される)
 通常のhsp3だと圧縮されて三角形になるので、これもhgimg4とdishの不具合でしょうか?

 ※上述①②は、Ver3.6でも3.7でも再現します。

③本当はここが本題だったのですが…
 gsquareで台形等に変形した画像を、celputやgrotate等で回転させてから
 他画像に重ねる方法はあるでしょうか?
 通常のhsp3であれば、下記のような手法になると思います。

  1.画面1に、元画像を表示(celload等)
  2.画面2に、変形画像を表示(gsquare)
  3.画面0に、2で変形した画像を回転させて重ね合わせ(celputやgrotate等)

 しかし、hgimg4(dish)では出力は画面0のみ可で、上記2での画像処理はエラー
 になってしまうと思います。

 大きい画像を変形させたいので、画面0の隅のほうをバッファのように使うのも
 難しいかと考えています。

 そもそも上記①②が解決しないと、この質問も意味がないですが、
 gsquareでは難しい場合、他の命令で画像変形の代替ができるでしょうか?

 hgimg4を使用するのは、透過pngを使用したいためです。
 他のプラグインは使用しない前提で考えています。


;#include "hgimg4.as" //hgimg4でgsquareを実行すると、画像が上下反転する。
#include "hsp3dish.as" //dishだと上下は正しく表示される

//gsquare用の配列宣言
dim fromx,4
dim fromy,4
dim tox,4
dim toy,4

//スクリーン設定
screen 0,511,511,0
gmode 2

//画像読み込み
celload dir_exe+"\\sample\\hsptv\\face1.png",1,0
; celload "face1.png",1,0

redraw 0

//コピー元座標(左上、右上、右下、左下)
fromx(0)=0
fromx(1)=511
fromx(2)=511
fromx(3)=0
fromy(0)=0
fromy(1)=0
fromy(2)=511
fromy(3)=511

//コピー先座標(左上、右上、右下、左下)
tox(0)=0
tox(1)=511
; tox(0)=255 //※A 変形する場合、コメントを消す
; tox(1)=255 //※A 変形する場合、コメントを消す
tox(2)=511
tox(3)=0
toy(0)=0
toy(1)=0
toy(2)=511
toy(3)=511

gsquare 1,tox,toy,fromx,fromy

redraw 1

ご教授いただけると幸いです。



この記事に返信する


テクノけいさつ

リンク

2022/4/11(Mon) 23:34:12|NO.95972

タイトル修正中に送信してしまった…。

「hgimg4(dish)でのgsquare」です。

スクリプトもテキストそのままの状態ですが、コピペで動くと思います。
すみません;;



zrs90(5さい)

リンク

2022/4/12(Tue) 00:28:29|NO.95973

HSP3.7β版の動作報告の、NO.95640 に
偶然、似たような投稿がありました。

まだ載ってない情報等があるかも知れないので
NO.95640を確認の上、補足?と言う形で
動作報告するのをおすすめします。



zrs90(昼飯中)

リンク

2022/4/12(Tue) 11:58:42|NO.95974

このスレッドで、使われている命令 cel〜
gsquare等は、現在、3.6、3.7βでの動作報告で
ほぼ何かで、引っかかっているようです。

(※主にzezenana さんと言う方が
3.7β版のスレッドで、報告されてます。
一応、NO.95420、NO.95877 辺り
等を見て下さい。)

dish で引っかかっている場合、hgimg4 は
その延長線上にあるので、基本、何らかの影響が
ある前提で考えた方が良いかと。

現状、dish/hgimg4 の動作制約にかからない物
で代用するか(※別の処理を追加する等含む)
不具合がある前提で、それを補う形で使う他
無さそうです。

あいにく、私はそう言った代替の命令や
使い方を教える程のスキルはありません。



usagi

リンク

2022/4/13(Wed) 13:45:38|NO.95979

hgimg4やdishはGPUを使った描画になりOpenglのAPIを使っているようなのですが、
これは四角形のポリゴンは扱えないので、内部的には2枚の三角形で四角が表現される為に歪が生じます。
意図した変形をする為には、ポリゴンを都合に合わせ分割する必要が出てきてしまいます。

おにたまさんも「できるだけ同じ見た目になるよう調整はしていきたい」とおっしゃられているので、
要望としてご連絡して更新を待つのがよろしいかもしれません。


■歪む理由が分かるサンプル
※三角ポリゴンとして見ると、結果が正しそうに見えるのが分かると思います。
 挙動としては統一してませんが、原因の理屈の一例として。

;#include "hgimg4.as" #include "hsp3dish.as" screen 0,512,512,0 celload dir_exe+"\\hsptv\\face1.png",1 //コピー元座標(左上、右上、右下、左下) fromx= 0, 511, 511, 0 fromy= 0, 0, 511, 511 //コピー先座標(左上、右上、右下、左下) tox= 0, 511, 511, 0 toy= 0, 0, 511, 511 *MAIN tox(0)+=1 : tox(1)-=1 color 255,255,255 : boxf : color 255 redraw 0 gsquare 1,tox,toy,fromx,fromy /* 0━━1 ┃\ ┃ ┃ \┃ 3━━2 */ ; 三角ポリゴン2 012 pos tox.0, toy.0 : line tox.1, toy.1 : line tox.2, toy.2 : line tox.0, toy.0 ; 三角ポリゴン1 023 pos tox.0, toy.0 : line tox.2, toy.2 : line tox.3, toy.3 : line tox.0, toy.0 redraw 1 wait 10 goto *MAIN



youdai

リンク

2022/4/13(Wed) 15:58:57|NO.95981

>しかし、hgimg4(dish)では出力は画面0のみ可で、上記2での画像処理はエラーになってしまうと思います。
HGIMG4では通常のbufferに直接描写はできませんが、オフスクリーンバッファの設定をすればbufferにも直接描写が可能です。
HGIMG4プログラミングガイド「35.レンダリングバッファ」を参照してください。



テクノけいさつ

リンク

2022/4/13(Wed) 21:46:33|NO.95983

皆様ご返信いただきましてありがとうございます。

>zrs90(5さい)さん

既出スレッドのご連絡ありがとうございます。gsquareでググりはしたのですが、
肝心のこちらの掲示板の検索をしていませんでした。
①②に関しては、そちらで記載いただいている内容の方が詳細に書かれていたので、
追記は不要かと思います。

>usagiさん

サンプルまで作成いただいてありがとうございます。お蔭様で大変よく動作が理解できました。
今後、gsquareの動作(仕様)が変更される可能性があるとすると、この命令を今使うべきかは
難しいところかな…と思いました。

>youdaiさん
仕様のご教授ありがとうございます。マニュアルの見落としでお恥ずかしい限りです。
取り急ぎ、hgimg4のbufferのscreen_offscreen設定で、下記が確認できました。

>1.画面1に、元画像を表示(celload等)
>2.画面2に、変形画像を表示(gsquare) ※オフスクリーンバッファに出力
>3.画面0に、2で変形した画像を表示(gcopy)

画像変形については、gsquareを使わない方法を考えてみようかと思います。
(実用的かはともかく…)


皆様ありがとうございました。



zrs90(5さい)

リンク

2022/4/13(Wed) 22:27:12|NO.95984

usagi さん、youdai さん
ありがとうございました。



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