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


HSPTV!掲示板


未解決 解決 停止 削除要請

2016
0330
hgimg4のテクスチャマテリアルについて4解決


リンク

2016/3/30(Wed) 23:15:10|NO.75135

以下を実行した場合、テクスチャ無しの場合白い四角が複数表示されます。
ですが、テクスチャ有りにした場合はテクスチャありで表示は1個だけになります。
マテリアルは複数のオブジェクトに使いまわしできないという事でしょうか?
マニュアルからは判断ができませんでしたのでソースの誤り等含めて、ご指摘お願いいたします。

#include "hgimg4.as" #define MAX 100 randomize setreq SYSREQ_MAXOBJ,4096 setcls CLSMODE_SOLID, 0 gpreset setpos GPOBJ_CAMERA,0,0,700 gptexmat id_tex,"res/qbox.png" dim id_model,MAX repeat MAX gpplate id_model.cnt,32,32,, ;テクスチャ無し //gpplate id_model.cnt,32,32,,id_tex ;テクスチャあり setpos id_model.cnt,rnd(200)-100,rnd(200)-100,rnd(500) loop repeat redraw 0 gpdraw getreq fps,SYSREQ_FPS color 255,255,255:pos 0,0:color 255,255,255:mes"fps"+fps redraw 1 await 16 loop



この記事に返信する


法貴優雅

リンク

2016/3/31(Thu) 19:44:16|NO.75139

仕様がどうなっているか、わかりませんが
実験したかぎり、マテリアルは、最後に設定した
オブジェクトに、ひも付されるっぽいですね。

ただ単にオブジェクトを複数出したいだけならば
クローンでどうでしょうか?

#include "hgimg4.as" #define MAX 100 randomize setreq SYSREQ_MAXOBJ,4096 setcls CLSMODE_SOLID, 0 gpreset setpos GPOBJ_CAMERA,0,0,700 gptexmat id_tex,"res/qbox.png" gpplate id_model,32,32,,id_tex repeat MAX gpclone i, id_model setpos i,rnd(200)-100,rnd(200)-100,rnd(500) loop repeat redraw 0 gpdraw getreq fps,SYSREQ_FPS color 255,255,255:pos 0,0:color 255,255,255:mes"fps"+fps redraw 1 await 16 loop



リンク

2016/3/31(Thu) 22:00:21|NO.75140

>最後に設定したオブジェクトに、ひも付されるっぽいですね。
やはりそのような感じでしたか。
テクスチャにもモデルに1個ずつ新規に対応させていけば60枚前後まではいけましたが
それ以上は無理でした。

>クローン
実際やりたい事は各オブジェクトに任意にテクスチャの一部を張って表示させたい
(hgimg3のaddplateのような)なのでクローンではまずいかなと考えています。



zakki

リンク

2016/3/31(Thu) 23:36:13|NO.75142

GamePlay3Dの作りがTextureやEffectは共有してもMaterialは共有しないという設計なので
gpplateで必要なたびにgptexmatを呼ぶしかないはずです。

> テクスチャにもモデルに1個ずつ新規に対応させていけば60枚前後まではいけましたが
> それ以上は無理でした。
これは SYSREQ_MAXMATERIAL 依存なので SYSREQ_MAXOBJ と同じようしてに増やすと対応できます。
ヘルプではデフォルト128となってますが、実際のソースコード上は64がデフォルトのようです。


setreq SYSREQ_MAXMATERIAL,128 としておいて、 gptexmatをgpplateの直前に移動すると手元では動きます。



リンク

2016/4/2(Sat) 10:49:26|NO.75153

情報ありがとうございました。おっしゃる方法で表示は可能でした。
想定されていない使用法であるという事で、無理がいろいろ出てきそうです。
拡大表示するとぼやけたりする問題もありますし、uvを設定して表示する手段も
無さそうですので、この方面の追求は終わろうと思います。



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