Graphics

Reply

スプライト描画&バグ報告

某掲示板でスプライトを7800個描画するサンプルがアップロードされてますね。

http://uproda11.2ch-library.com/11346706.zip.shtml

 

↓多少バグってるみたいで修正が必要みたいですが。

vcgの宣言を2次元にして、
float2 in a_Position : POSITION,
掛け算のとこを修正して、
//v_Position = mul( a_Position, wvp);
v_Position = mul( float4(a_Position,0.0,1.0), wvp);
この修正でwin上では絵が出たよ。

 

あとバグ報告上がってます

>SetUniformValue( int index, Vector4[] value, int to, int from, int count );
>で16単位で描画したら3000ぐらいまでになったけど、この関数VITAとエミュで挙動が違う。
>VITAだとfromが0固定っぽいす。バグっす。


>次の最適化はフレームバッファの解像度と色数変更なんですがなんかバグってるっす。
>フォーラムで質問してる人がいるんで次のアプデまで保留っすかね。

Please use plain text.

Re: スプライト描画&バグ報告

[ Edited ]

いわゆるインデクスパレットスキニングが動作しなくて難儀してました…。

 

Vita 側での Graphics.ShaderProgram.SetUniformValue( int index, Vector4[] value, int to, int from, int count ) の動作ですが、
頂点シェーダ側の uniform が float4[16] 以外だと止まってしまうようです。

現状だと
・頂点シェーダの uniform が float4[16] 固定
・to も from も 0
・count も 16
で動作するようです。

float4 が 16 個以上欲しいときは、頂点シェーダ上で 16 個毎の複数の配列に分けてあげると
とりあえずは Vita 上でも動作します。
# マトリクスなら、行や列毎に別配列にするとか…。

Please use plain text.

Re: スプライト描画&バグ報告

7800個表示するサンプルが欲しいんですが、リンク切れで入手できませんでした。

もし持ってたら提供してもらえませんか?DrawArrayでの描画性能が想像以上に悪くて、

改善策をいろいろ考えています。

Please use plain text.

Re: スプライト描画&バグ報告

こんにちは

 

http://kie.nu/_d5

最新のSDKで動かしたら800ぐらいしか出ませんでした。

頂点をインターリーブ形式にし、頂点データをshortにしてサイズを

小さくすると速くなるようです。

Please use plain text.

Re: スプライト描画&バグ報告

こんにちは

http://community.eu.playstation.com/t5/Graphics/Tutorial-Improving-PSM-Rendering-Performance-specifi...
このスレッドを参考にして作ったサンプルです。

http://kie.nu/_gK
インデックスバッファを使うと、かなり速度が改善されようです。
3000スプライトは出てます。(バグってなかったらですが)
ソースはCompactIndexedSprite.csです。

ではでは。

Please use plain text.

Re: スプライト描画&バグ報告

こんにちは

http://kie.nu/_iR
サンプルを修正しました。

○スプライトは 16 x 16

・とりあえず基本的なスプライト(頂点はfloat)
count = 2500 fps = 59.68
count = 6000 fps = 31.68
SimpleIndexedSprite.cs

・頂点データをshortなどにして小さくした
count = 5500 fps = 60
count = 5600 fps = 59.42
count = 6000 fps = 56.73
CompactIndexedSpritecs

・positionとuvを一緒の属性に
count = 5500 fps = 60
count = 5700 fps = 59.2
count = 6000 fps = 57.31
PackedIndexedSprite.cs

・positionとuvを一緒の属性にして色は固定値
count = 6000 fps = 59.95
count = 7000 fps = 59.16
NoColorPackedIndexedSprite.cs

AppMain.csで動作を切り替えてください。


Please use plain text.

Re: スプライト描画&バグ報告

調査と情報ありがとうございます。

 

ファイル名をDLしようとおもったら自動削除されたようで、DLできませんでした…

Please use plain text.

Re: スプライト描画&バグ報告

すみません、再アップロードしました。

今度はどうでしょうか?

http://kie.nu/_Wv

フォーラムにソースをアップロード出来ればいいんですが...

Please use plain text.

Re: スプライト描画&バグ報告

きちんとDLできましたぁ!ありがとうございまーす!

Please use plain text.
Announcements

Welcome to the PlayStation Mobile Developer Forums


This is a community for the discussion of technical topics with other developers and SCE engineers. Posting ideas/requests are also appreciated. Join the discussion!

PlayStation®Mobile開発者フォーラムでは世界中の開発者の皆様と一緒に、議論や情報交換が可能です。SCEも議論に参加し、皆様の開発をサポートします。アイデアやリクエストも大歓迎です。ぜひご参加ください。

PSM Developer Registration (for free) on PSM DevPortal is required to post on the forum.
Please sign out then sign in again to the forum and PSM DevPortal after you have completed the registration.

フォーラムへ投稿をするにはPSM DevPortalへの登録(無料)が必要です。
登録後はフォーラムと PSM DevPortalを一度ログアウトし、再度ログインしてください。