HSP3.7beta6leプレビュー版を試しました。
●gpmatprmf命令のエラーについて
filter設定をlinearにするとエラーとして表示されます。
ただし、返されるstatは-1になりませんし、実際には正常にフィルターが切り替わっているようです。
エラーメッセージが表示される「だけ」のような感じです。
エラーメッセージは以下のように出ます。
error
filter[liner]
ちなみに.materialのsamplerの設定は、
(独自シェーダーの.materialファイルの一部)
sampler u_matcapTexture
{
mipmap = false
wrapS = REPEAT
wrapT = REPEAT
minFilter = LINEAR
magFilter = LINEAR
}
sampler u_colormapTexture
{
mipmap = false
wrapS = CLAMP
wrapT = CLAMP
minFilter = NEAREST
magFilter = NEAREST
}
というsamplerの設定にしてあるマテリアルに対して行いました。対象のsamplerの名前はu_colormapTextureです。
独自のシェーダーで行っているのでその関係かもしれませんが、エラーの原因はよく分かりませんでした。
●gpmatprmf命令そのものについて
gpmatprmf命令そのものについてですが、この命令はつまり.materialのsamplerのプロパティを
変更する命令だと思うのですが、それならば設定できる項目は、以下のように
(HGIMG4プログラミングガイドから抜粋)
sampler設定部分で、マテリアルごとのテクスチャ設定を定義しています。
設定名 内容
-------------------------------------------------
path 画像ファイルのパス
wrapS 横方向のラップ設定(REPEAT/CLAMP)
wrapT 縦方向のラップ設定(REPEAT/CLAMP)
mipmap ミップマップ設定(true/false)
minFilter 縮小フィルター設定(*1)
magFilter 拡大フィルター設定(*1)
(*1) 以下から選択
NEAREST / LINEAR / NEAREST_MIPMAP_NEAREST /
LINEAR_MIPMAP_NEAREST / NEAREST_MIPMAP_LINEAR /
LINEAR_MIPMAP_LINEAR
.materialと同じように出来たほうがいいと思います。
gpmatprmfを使用者が使いたいケースというのはつまり、sampler設定等が重要なケースなわけですから、
これらを変更できないとそもそもgpmatprmfの命令としての意味があまりないかもしれません。
もちろん、この命令は無いよりは有ったほうがずっと良いです。
もし処理系の関係でgpmatprmfがpathの変更ができないならば、せめてそれ以外は.materialのsampler設定と同等のものが変更できる機能をgpmatprmfに欲しいと思います。
●新しいhgimg4dxについて
今回もOpenGL版の方では正常に動作する独自シェーダーが、新しいhgimg4dxでは動作しませんでした。
理由はよく分かりませんでした。
hgimg4dxは元々は機種依存不具合対策用のものだと思うのですが、OpenGLの機種依存互換性対策については、GLSLのバージョンをできるだけ下げて、低スペックPC用にシェーダーを新しく組んでみたほうがいいのかなと思います。
おそらく、その方がhgimg4dxよりも低スペックPCでは動作する可能性が高いかもしれません。