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


HSPTV!掲示板


未解決 解決 停止 削除要請

2018
0126
knhgimg4をhtmlに変換すると画像(pngファイル)が描画されない9解決


kn

リンク

2018/1/26(Fri) 09:21:01|NO.82345

グラフィックに関する初歩的な質問をさせて下さい。hgimg4をhtmlに変換して、画像を描画させています。
付属サンプルにあるbtex.pngだと描画されるのですが、自分で作成したg.pngファイルだと描画されません。
どうしてでしょうか。教えて下さい。

#include "hgimg4.as"
gpreset
setcls CLSMODE_SOLID, $004141


//samleに付属ファイル→スクリプト実行やhtmlでも描画される
celload "btex.png",1

//自分で用意したファイル→スクリプト実行では描画されるが、htmlでは描画されない!
celload "g.png" ,2


*main
redraw 0

gmode 2
pos 0,0: celput 1
pos 0,200:celput 2

redraw 1
await 1
goto *main



この記事に返信する


kn

リンク

2018/1/26(Fri) 12:35:39|NO.82347

もしかして、画像サイズは128x128等の固定ですか?



あまら

リンク

2018/1/26(Fri) 14:27:42|NO.82348

HSP側の問題ではなく、PNG側の問題かもしれません。



PNG画像と一口に言っても、中身はかなり色々な形式になっています。

圧縮方式や圧縮率
グレースケールかカラーなのか
透明や半透明の有無
何ビットで色情報を保存しているか
カラー情報にしてもARGBの順で格納されているかRGBAの順で格納されているか

などなど、それに加えてPNG形式のバージョンによっても微妙な違いがあったりして
あまり細かく設定できないソフトでPNGを作った場合はその影響で

こっちの画像は色々なところで読めるけど、あっちの画像は読めたり読めなかったりする

という事もたまにあります。


今回の事がPNGの問題だとすると、
ブラウザの画像読み込み処理がその形式のPNGを読み込めなかったということになります。

一度別のソフトで画像を作成するとか、画像変換ソフトを使ってみるとか
どちらもフリーで色々あるので、それらを試してみると読み込めるようになるかもしれません。



kn

リンク

2018/1/26(Fri) 15:54:12|NO.82349

自分で作った80x80のファイルを 128x128 や64x64 のサイズに拡大、縮小すると、描画出来るようになりました。
でもどうして?
サイズは 2^n 固定でしょうか?



ぜーっと!

リンク

2018/1/26(Fri) 20:37:33|NO.82350

>knさん
>サイズは 2^n 固定でしょうか?
説明書読んでみましたが、とくには記載されていませんね。
もしかするとWeb版hsp3dishはそのような制約があるのかもしれません。(ブラウザによるのかもしれません)

(下記はandroid版hsp3dish説明書内ですが)もともとDirectXやOpenGLなどを
使用する場合、テクスチャに使用する画像には

android版の注意事項、制限 ・画像サイズについて celload、picload命令などで読み込まれる画像の縦・横サイズが、2048を越えるものについては、 正しく扱えない機種もあるので、推奨されません。 縦・横のサイズが2^nのサイズ、 つまり1,2,4,8,16,32,64,128,256,512,1024でない画像を 読み込む時には、内部で変換を行なうため 多少のオーバーヘッドが発生します。
とあり、内部で補正されるので以前ほど気にしなくても良いという表現になってます。
しかし、実は(少し古めの?)機種によっては2048サイズ以下でも、2^nサイズ以外は全く表示できないのもあります。
手持ちのスマホなら大丈夫でしたが、nexus7(late 2012)はダメでした。

なので、画像に関しては極力、2^nサイズで作成しておいた方が無難だと思います。



kn

リンク

2018/1/26(Fri) 21:06:10|NO.82351

詳しい解説、ありがとうございます。
私自身完全に理解は出来ていませんが、動作することを第1にして、
64×64もしくは128x128のサイズで画像ファイルを作成したいと考えています。



kn

リンク

2018/1/28(Sun) 00:03:21|NO.82356

報告です。
無事に、128x128画像ファイルと、3Dモデル(ばねモデル)が描画できました。
windows PC(intel core i5 2.7GHz)ではスムーズに動きました。
しかし、スマホの xperia z3では動きが遅く、カクカクしてしまいました。
hsp3dish-gp.jsはスマホでは現状では少し無理かも知れません。
同じGPU使用率でも(windowsPCでチェック)、hsp3dish.jsは動作がスムーズですが、hsp3dish-gp.jsはぎこちない動きです。

#include "hgimg4.as"
gpreset

wx=ginfo_winx
wy=ginfo_winy
cls 4
celload "res/g.png",4:tex=128.0   //128x128の画像pngファイルの読み込み

gpload id_model,"res/spring07" //3dモデル ばねの読み込み

setcls CLSMODE_SOLID, $004141
setcolor GPOBJ_LIGHT, 1,1,1 //ライトカラーを設定
setdir GPOBJ_LIGHT, 0.5,0.5,0.5 //アンビエントカラーを設定

setpos GPOBJ_CAMERA, 0,1,3 //0,-5,5 ; カメラ位置の設定
gplookat GPOBJ_CAMERA, 0, 0, 0 //< 常に中心を見る

t=0.0
dt=0.5/10
//////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////
*main
redraw 0 //描画開始
//3D
x=1.0*sin(t)
y=1.0*cos(t)

setpos id_model,0,0.1,0 //x y z
setscale id_model, 0.15,0.1,0.1
setang id_model, 0,t,0
gpdraw ; 描画
//////////
///メニュー
color 255,255,255
pos 900,wy-30:mes "v up"
pos 1050,wy-30:mes "v down"
//2d
gmode 2,tex,tex
pos 200+x*100,300-y*100:grotate 4,0,0,0,tex/2,tex/2
line wx/2,0,wx/2,wy/2-30
line wx/2,wy/2-30,wx,wy/2-30
///////////

getkey k,38:if k&1:dt=dt+0.005//ue
getkey k,40:if k&1:dt=dt-0.005:if dt<0:dt=0.0 //sita
getkey k,1:if k&1{
if mousex>900 and mousex<1050 and mousey>wy-30 and mousey<wy{
dt=dt+0.005
}
if mousex>1050 and mousex<1200 and mousey>wy-30 and mousey<wy{
dt=dt-0.005:if dt<0:dt=0.0
}
}
t=t+dt
redraw 1 // 描画終了
await 1 //待ち時間
goto *main
//////////////////////////////////////////////////////////////////
*owari
end



K-s

リンク

2018/1/28(Sun) 23:51:33|NO.82366

自分のPCでも2^nサイズ以外では表示されませんでした。
hgimg4じゃないほう(hsp3dish.js)だと表示されましたが、こちらは2^nサイズに内部で変換されているようです。現在でもこの制限ってあるんですね…



zakki

リンク

2018/1/29(Mon) 15:16:34|NO.82367

動作対象をWebGL 2.0対応のChromeとFirefoxに絞れば-s USE_WEBGL2=1でビルドしなおすだけでOKかもしれません。

https://www.khronos.org/registry/webgl/specs/latest/2.0/#4.1.3
https://caniuse.com/#feat=webgl2



kn

リンク

2018/2/3(Sat) 08:48:23|NO.82392

私にはビルドする能力がありません。よろしくお願いします。

pngファイルのサイズの影響のためか、回転台の木目模様が思いどうりに描けていません。
http://physics1.html.xdomain.jp/test01/test_3d_model.html



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