これってバグなんでしょうか。( HSP3.6, HSP3.7 で同様の動作確認済み)
hgimg4でマテリアルにGPOBJ_MATOPT_NOMIPMAPを設定してもMIPMAPが無効になりません。
#include "hgimg4.as" chdir dir_exe+"\\sample\\hgimg4":gpreset //サンプルリソースを使用 shader="res/shaders/textured" //使用シェーダー名 texture="res/shadow.png" //使用テクスチャ名 //ユーザーマテリアルを定義 gpusermat mat_c, shader+".vert",shader+".frag",,,GPOBJ_MATOPT_NOMIPMAP //MIPMAP無効? gpmatprmt mat_c, "u_diffuseTexture", texture //テクスチャを割り当て gpfloor mdl_c,50,50,,mat_c //パネルを生成 setpos mdl_c,,-10 //位置調整 *main redraw 0 pos ginfo_winx/3,ginfo_winy/2:color ,,255:mes "MIPMAP 無効(高解像度のまま表示)" gpdraw redraw 1 await 16 goto *main
もう一例あります。
次のコードではmat_2のMIPMAPが無効になりません。
原因は上のとも違うような気が…?
ビジュアルに関わるパラメータなので結構不便しております。
#include "hgimg4.as" chdir dir_exe+"\\sample\\hgimg4":gpreset //サンプルリソースを使用 texture="res/shadow.png" //使用テクスチャ名 gptexmat mat_1,texture //MIPMAP有効 gpfloor mdl_1,30,30,,mat_1 //パネルを生成 setpos mdl_1,-20,-10 //位置調整 //★この3行を上の3行より先に実行すると今度はMIPMAPが全て無効になる? gptexmat mat_2,texture,GPOBJ_MATOPT_NOMIPMAP //MIPMAP無効? gpfloor mdl_2,30,30,,mat_2 //パネルを生成 setpos mdl_2,20,-10 //位置調整 *main redraw 0 pos ginfo_winx/5,ginfo_winy/3:color:mes "MIPMAP 有効(低解像度表示)" pos ginfo_winx/2,ginfo_winy/3:color ,,255:mes "MIPMAP 無効(高解像度のまま表示)" gpdraw redraw 1 await 16 goto *main
またこれはMIPMAPとは関係なくHSP3.7でのみ確認している問題なのですが、クローンされたモデルの動作がおかしいです。
HSP3.7 に付属のサンプル、hgimg4フォルダ内の uvscroll.hsp の 22行目 あたりに次の行があります。
この行の下に次の1行を追加します。
gpbox id_model, 1 , , id_texmat ; 箱ノードを追加
これでクローンされたid_modelはUVスクロールができなくなるのですが、これはバグなのでしょうか。
gpclone id_model,id_model ; 箱ノードのクローンを追加
GPOBJ_MATOPT_UVOFFSET が効いていないだけ?とも思いましたが GPOBJ_MATOPT_SPECULAR は効いてる様子。
ということはgpmatprm系の命令に失敗している?ちょっとよくわかりません。

