PlayStation Suiteプログラミング part 1
■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。
2012/02/25(土) 11:36:53.06ID:8ExgBs8dSDKは現在クローズドβで公開中です。
申し込みはこちら(個人でも申し込み可能だが選考基準は不明)
http://www.playstation.com/pss/closedbeta/index_j.html
0736名前は開発中のものです。
2012/04/24(火) 16:14:57.87ID:wq09/RGE選択肢が増えるのは良いことじゃないの
俺はコード的には、こっちのライブラリ体系の方が好きよ
馴染みの話だけど、コード書いてどう思った?
0737名前は開発中のものです。
2012/04/24(火) 16:33:35.09ID:CGjbqOQ23D周りが気に入らないから自分で3Dライブラリを作り出した^^;
SCEIの公開しているのとかぶる機能も多いので
無駄というか何というか
公開するつもりだけどこういう活動に意味があるのか疑問だ...
0738名前は開発中のものです。
2012/04/24(火) 16:41:33.93ID:KrPYNDXS0739名前は開発中のものです。
2012/04/24(火) 16:53:37.16ID:3MPNzT29PSSにおいて何がどう引っ張ってるんですか?
プログラムとかツールの話題以外はゲハでやってくれませんかね
0740名前は開発中のものです。
2012/04/24(火) 17:08:06.54ID:X5Rz78Q0単発のネガティブ発言はそういった所から来た可哀想な人だから触んない方がいいよ
0741名前は開発中のものです。
2012/04/24(火) 17:28:45.28ID:pmwVqNX8デモが30FPSばかりなのはArcにあわせてる
0742名前は開発中のものです。
2012/04/24(火) 17:56:34.46ID:3MPNzT29Androidのとか糞遅かった記憶が
0743名前は開発中のものです。
2012/04/24(火) 18:17:20.73ID:gxaoK0qy無料に釣られてあんなゴミ環境で開発するAndroid開発者は脳味噌腐ってる
0744名前は開発中のものです。
2012/04/24(火) 18:40:38.31ID:4siYIrZG0745名前は開発中のものです。
2012/04/24(火) 20:15:18.03ID:wq09/RGEいや、UnityとPSSの話じゃないの
要は触ってないって事な?
自前のライブラリなら、俺も過去に何度か書いてるけど、そう言う意味だと、
どっちもbulletの管理形態に似てるよ
あとPSSの方は、DirectXを意識してる印象
0746名前は開発中のものです。
2012/04/24(火) 20:31:25.12ID:/Cbv1MepOpenGL?DirectX?
0747名前は開発中のものです。
2012/04/24(火) 20:39:08.18ID:4siYIrZG0748名前は開発中のものです。
2012/04/24(火) 21:17:03.19ID:GIz72Dro友達相手に自慢するならPSVitaで動くゲーム作ったっていった方が自慢になることが分かりましたので
0749名前は開発中のものです。
2012/04/24(火) 21:17:40.20ID:YK27atVnフリーウェアを出し易いというのは、それなりに魅力ではあるけどなー
そんなに高いもんじゃないとはいえ、フリーウェアを出して赤字になるのはモチベ下がるし。
0750名前は開発中のものです。
2012/04/24(火) 21:21:16.82ID:wq09/RGEnVIDIAのCgだけど、結局むしろ書く内容が焦点なので、
まったく意味わからない状態ならなんでも
計算方法と、それに使う要素がはっきり書かれてる本買うといいぜ
0751名前は開発中のものです。
2012/04/24(火) 21:29:14.77ID:CGjbqOQ2呼び出し側のGraphicsContextはOpenGLっぽいんだよな
何が何だか...
0752名前は開発中のものです。
2012/04/24(火) 22:00:10.64ID:qEgr1S8A0753名前は開発中のものです。
2012/04/24(火) 22:02:50.71ID:qEgr1S8Aどうすれば消せるんだ?
全部消すときはソフト消せばいいのだろうけど…
0754名前は開発中のものです。
2012/04/24(火) 22:12:02.82ID:ygoINHnQで、俺も同じくVitaからの消し方がわかんねw
0755名前は開発中のものです。
2012/04/24(火) 22:13:12.41ID:4siYIrZG0756名前は開発中のものです。
2012/04/24(火) 22:21:36.65ID:qEgr1S8A0757名前は開発中のものです。
2012/04/24(火) 22:34:43.03ID:CGjbqOQ2http://community.eu.playstation.com/t5/PS-Suite-Studio/Deleting-Project-Off-Vita/m-p/15813027/highlight/true#M224
Developer Assistant丸ごと消す以外に方法はないらしい。
つか俺Vitaもってねーーーーーー
0758名前は開発中のものです。
2012/04/24(火) 22:45:42.79ID:hKEv9pfBあとは2ちゃんアプリとようつべアプリがあれば・・・
あ、その為のPSSか
0759名前は開発中のものです。
2012/04/24(火) 22:48:04.98ID:qEgr1S8A0760名前は開発中のものです。
2012/04/24(火) 23:06:34.25ID:fS7suYi4逆じゃね?
混沌と化しててAndroidマーケットの報われないけどいいゲームの制作者を救済(又の名を囲い込み)しつつ
Vita上で動かせることによって自作プログラムの為に割ろうとするハッカーを押さえようとしてる(?)し
いろいろと考えられた戦略だと思うんだけど
0761名前は開発中のものです。
2012/04/24(火) 23:12:07.90ID:C19dNN09日本の会社だから、それなりの配慮さえされていれば
2ちゃんねるブラウザは通ると信じている
WindowsPhoneのマーケットはひどかったらしいね
0762名前は開発中のものです。
2012/04/24(火) 23:17:34.35ID:uzA8wXqe0763名前は開発中のものです。
2012/04/24(火) 23:18:14.66ID:b//Bnifr0764名前は開発中のものです。
2012/04/24(火) 23:29:01.32ID:pGuHKfo1スピード気にしなければあっさりでる
0765名前は開発中のものです。
2012/04/25(水) 02:07:39.33ID:acmC8sSvスプライトクラスにある
SetTexture()や
DrawArray()の呼び出し回数を少なくすればいい。
Sampleを改造し、
パフォーマンスカウンタとにらめっこしながら、
最適化していけ。
プログラムのよい練習になるよ。
0766名前は開発中のものです。
2012/04/25(水) 02:16:49.05ID:ntT8F2AJSprite描画前にSetTexture改造した関数呼び出して
描画の都度UV値指定して頂点確保、描画終わったら頂点開放ってのを繰り返すようにしたんだけど
これはまずいって事?
あらかじめアニメパターンの数だけ頂点バッファ作っといた方がお利口さん?
0767名前は開発中のものです。
2012/04/25(水) 02:20:04.16ID:/Z5WcVYB1枚の画像にアニメパターン並べて置いて、
シェーダの uniform変数に UV値渡して、描画内容変えていくとかがスマートじゃね
0768名前は開発中のものです。
2012/04/25(水) 02:30:03.36ID:ntT8F2AJなるほど
シェーダ難しそうだし出来れば固定機能のように作りたいと思ってたけど
スプライト用にUV渡せるシェーダ描いとけば応用利くようになるしやっといた方が良さそうなんね
ありがとうー
0769名前は開発中のものです。
2012/04/25(水) 08:48:58.56ID:zMqLQVrI使い方ワカンネ
0770名前は開発中のものです。
2012/04/25(水) 10:20:04.95ID:6tWPV+mt0771名前は開発中のものです。
2012/04/25(水) 13:52:48.72ID:4KDx0KgUファイルに製作者の情報(アカウント名とか)付加されてたりする?
コード内には見当たらないけどファイルの属性的な部分に付加されてたりするのかなあ?
思って。
0772名前は開発中のものです。
2012/04/25(水) 13:55:55.58ID:Z/dksGjZそのために動作端末絞ってるようなもんだし
0773名前は開発中のものです。
2012/04/25(水) 14:02:13.73ID:/Z5WcVYBUnixやLinuxだと、ただのテキストだろうと所有者(ユーザ)の情報はあるけど、それしてもその辺は
システムが別に持つ情報なんで、対象ファイルそのものに書かれてる訳じゃない。
ましてWindowsだし、って感じ。
ただ,NETバイナリには書かれるけども。
あと、プロジェクトファイルなどまで含めるつもりなら、普通にファイル内に書かれてるかもしれないので、一応grepでもしてみりゃおk。
0774名前は開発中のものです。
2012/04/25(水) 14:05:17.79ID:/Z5WcVYBWindows用アプリを作るわけじゃないもんな
むしろ完全に特定環境向けだから、そうだよな
0775名前は開発中のものです。
2012/04/25(水) 14:10:17.78ID:4KDx0KgUありがとうございます。プロジェクトファイルも含めた全てのファイルのテキスト内には見当たらないのでだいじょうぶかな。
0776名前は開発中のものです。
2012/04/25(水) 14:24:51.27ID:H+99f8zj* クラス名
* @author あなたのお名前
*/
0777名前は開発中のものです。
2012/04/25(水) 14:32:28.33ID:/Z5WcVYB会話の意味わかってないのか
0778名前は開発中のものです。
2012/04/25(水) 14:35:32.33ID:/Z5WcVYBignoreCaseな状態でgrepして無きゃないよ
テキストファイルだけならば
0779名前は開発中のものです。
2012/04/25(水) 14:45:28.17ID:8gnIaxdEビルドしたバイナリに署名的なものが入れられるかっつーことでは?
jarのmanifestファイルみたいなもの?なのかな?よく分かってないけど
0780名前は開発中のものです。
2012/04/25(水) 14:59:19.62ID:h2qBSQz5動作端末というか、意図しない操作をしてくれるかもしれないテストプレイとかは配布してやってもらいたい。
プロの人はどうやってるか知らないし、PSSじゃないけど
以前カクゲー+エディタ作った際にヒットストップ中も移動値に重力加算され続けて
ヒットストップが切れた瞬間に蓄積された移動値が反映されてすげぇ吹っ飛び方するっていうアホな事やらかした。
自分でテストした時には空中ダメージは空中コンボからやるからいつも同じくらいの上昇状態からダメージ入るから気付かなかったけど
対戦しまくって初めて気付いた。
シンプルなミニゲーム的なのだったら動きゃなんとかなるけど
攻撃移動値とかパラメータ色々ぶっこんで動作が変わるようなゲームだと
色んな動作テストしないと不安だわ。
0781名前は開発中のものです。
2012/04/25(水) 15:15:38.58ID:6tWPV+mt0782名前は開発中のものです。
2012/04/25(水) 15:38:38.79ID:8gnIaxdEなんか配布の仕組みあるといいんだけど
0783名前は開発中のものです。
2012/04/25(水) 16:22:52.17ID:WcbaTfjZソース公開するならGitリポジトリでやっちゃえば
0784名前は開発中のものです。
2012/04/25(水) 21:15:38.72ID:/Z5WcVYBPSS環境入ってる所なら実行出来るのかな
何がやりたいかと言うと、PlayStation 実機向けじゃなくて、Win上で単に動作させるって事。
意味があるかどうかは置いといてww
0785名前は開発中のものです。
2012/04/25(水) 21:34:20.77ID:acmC8sSv多分できる。
0786名前は開発中のものです。
2012/04/25(水) 21:46:03.32ID:qKSMdXesサンプル等のあるライブラリのドキュメントだけ何故か何も表示されない
デスクトップやダウンロード等他のフォルダは問題ない
クローズド期間のときは問題なかったしのになんだろうこれ
とりあえずパスを直接入力すれば開けるっぽいけど不気味だ
0787名前は開発中のものです。
2012/04/25(水) 22:03:28.29ID:/yWdRGS0実行ファイル名と実行ディレクトリを入力しろと出るのでexeのフルパスとexeのあるフォルダを
指定してやればエミュレーターが動く
エミュレーターでの実行はbin\Release\プロジェクト名-unsignedのほうで動く
0788名前は開発中のものです。
2012/04/25(水) 22:06:20.39ID:/UepFVGrローディングとか入れないとだめか…
0789名前は開発中のものです。
2012/04/25(水) 22:12:02.80ID:acmC8sSvオープンβから
サンプルの配置場所が変わったからじゃ?
C:\Users\Public\Documents(Win7の場合)
のほうを見てる?
0790名前は開発中のものです。
2012/04/25(水) 22:29:16.99ID:qKSMdXesバージョン違いで置き場変わったのは知っているがドキュメントのフォルダを開いても空白になるんだ…
パブリックでもユーザーのDocumentフォルダでも同じ
へんに容量喰ってるわけでもないし、旧バージョンのPSSフォルダ移動してみたりしたが変わらん
そのうちフォーラムに垂れ込んでみるかねえ…
0791名前は開発中のものです。
2012/04/25(水) 22:47:47.34ID:/Z5WcVYBありがとう! 自分で試してみれば良かった。
試しに、>>787 のヒントから、
1.適当な場所にディレクトリ作る
2.\SCE\Pss\target\win32 下の全てのモジュールを 1以下にコピー
3.<プロジェクト>\bin\Release\<プロジェクト>-unsigned 下を 1以下にコピー
で、全てまとめて、
4.1のディレクトリに適当なバッチファイル作成。 ※例として run.bat
中身はこの1行
pss.exe %~dp0\Application\pssapp.exe
5.後は run.bat を叩くと、そのまま実行おk
6.1の内容まるごと zip にまとめて誰かに渡せば、そのまま動く、と。
最終的なディレクトリの様子: http://wktk.vip2ch.com/vipper0531.jpg
0792名前は開発中のものです。
2012/04/25(水) 23:02:12.84ID:/Z5WcVYBpss.exe は ネイティブアプリケーションだけど、
Application 下の pssapp.exe は、素の .NET なので、ソースコード丸出し状態であった
で、多分 pssapp.exe の方、中身はデフォルトのテンプレだけだけど、ファイルサイズが 4KB しかなかったので、
多分ホストアプリにあたる pss.exe から、Sce.Pss 系パッケージのライブラリ実行が補完されると予測
=実機に渡された場合、丁度同じ仕組みで、実機側のホストアプリが実行する、みたいな階層か。
なんとなく構造見えた
0793名前は開発中のものです。
2012/04/25(水) 23:12:23.50ID:/Z5WcVYBVC# のデフォルトのような、ローカルディレクトリパスやオーナの情報なんかは含まれて居なかった
※Release版
…ただし、これらの1パッケージを zip でまとめて Web上で配布みたいな行為しようとした場合、
pss.exe だけ除外しなきゃいけないかもしれない。 ライセンス的な意味で。
他の DLL は Sony のプロプライエタリじゃないから OKなはず。
0794名前は開発中のものです。
2012/04/25(水) 23:33:21.94ID:M8Od9w0C0795名前は開発中のものです。
2012/04/25(水) 23:44:36.91ID:T+88jPwQ乙乙
0796名前は開発中のものです。
2012/04/26(木) 00:27:12.17ID:Vzm3mGXPAndroidウォークマンかどうかは知らないが、
\SCE\Pss\tools 下に、psslauncher.apk はあるな。 apk = Android用のアプリケーションパッケージ
試しに、コピーして拡張子を zip に変え、中身を覗いてみると、
普通に AndroidManifest.xml がいるので、同じ拡張子の別物ではなく、とりあえず Android用のランチャだろうと予測。
その奥を覗いてみると、lib/armeabi の下に、上で書いた win32 版と同様、
monosgen、zplatform なんかのライブラリが鎮座してる。 assets/ 下には、psslauncher.zpak ファイルもある。
ただし、これらは Sony による製作の Androidアプリっていう立ち位置だと思うので、
勝手に使って言いわけは無いと思う。 利用方法については、追いかけ中止。シラネ。
0797名前は開発中のものです。
2012/04/26(木) 00:33:35.10ID:Vzm3mGXP今ライセンスを日本語訳しながら確認してるけど、それ以前にとりあえず、
win用 に zip でまとめなんて時、pss.exe だけ除外じゃ確実にNGと思われ。
何故なら、 \SCE\Pss\source 下に、よく見ると Physics2D や Model、GameEngine2D、UI なんかが
C#ソースの状態で置かれている。 つまりそれらのライブラリは、pss.exe にバイナリで持たれてるんじゃなく、
C# 上でソースレベルライブラリとして位置づけられてる予感。
だとすると、コンパイル後、.NETバイナリである pssapp.exe 側に、これらの 「Sonyが書いた物そのもの」 が
自分で書いたコードと同じ高さで含まれちゃうから、配布出来ない。
つまり、実質、配布は、出来ない。 Sony製でない各種DLLだけ配布しても意味無いので、
結局結論として=出来ない になると。
重要事項と、状況からの判断、以上。
0798名前は開発中のものです。
2012/04/26(木) 01:04:18.15ID:QuIRGnUc他の人に試してもらおうとしたら
ソースまるごとしかないのかしら
イリーガルなことはやりたくないしなぁ
0799名前は開発中のものです。
2012/04/26(木) 01:29:21.33ID:Vzm3mGXPうーん、その話で言うと、揚げ足取りみたいな事したらいけるか?とも思ったけど、
そもそも無理かもしれない。
揚げ足取りみたいな方法ってのは、例えば SCE コンフィデンシャルなソース部分を静的に利用せず、
例えば \SCE\Pss\source 以下にある内容を、各自の環境で一旦 「.NET DLL になるように丸ごとビルドしてもらって」
自分の環境でも同様に .NET DLL としてビルドして、それを、参照する形で自分のコードを書き、実行するようにしたとすると、
(もしもそれが可能ならば) pssapp.exe 側には Sony のプロプライエタリが含まれない格好になるので、
コンフィデンシャルなライブラリのDLL、pss.exe の2つを含まないならば、配布しても問題無いかもしれないが…
しかしそれ以前に、
FAQ
http://www.playstation.com/pss/developer/openbeta/faq_j.html
>無料のゲーム/アプリを開発しても良いでしょうか?
>有料(フリーミアム含む)の開発に限定させて頂きます。
と、あるので、「試してもらう」 は、この話に該当するから、NGかな。 同じ意味で、ソースレベルだったら?は、
もうフォーラムなりSCEに直接なり、聞くしかないと思う。 あと同様に、上の 「外出しDLL化」 で、それを配布しない場合、とかも。
0800名前は開発中のものです。
2012/04/26(木) 03:07:03.31ID:uEigsJFJ0801名前は開発中のものです。
2012/04/26(木) 03:08:15.84ID:j5CdoPyz0802名前は開発中のものです。
2012/04/26(木) 08:38:12.90ID:Vzm3mGXPむしろそれじゃ足りなくてって話
>>797 >>799
0803名前は開発中のものです。
2012/04/26(木) 08:45:14.90ID:NZhRCtp4SDKだけ落としてもらって、友人にはソース渡せばあとは相手の環境でビルドするだけじゃないの?
0804名前は開発中のものです。
2012/04/26(木) 09:04:29.89ID:r5tYGBBUそれはPSStoreの話でSDKとは関係ないと思われ
俺はソース丸ごとMITライセンスで公開する予定
0805名前は開発中のものです。
2012/04/26(木) 09:21:28.33ID:Vzm3mGXPソースだけなら正直いけそうとは俺も思うけど、一応、本当にいいよね?と聞いた方がすっきりするかな?程度の話で、
上の話はバイナリの話。
>>801 のレスは、SDK落としてもらえばいいだけでしょ、としか書いて無かったから、
例えばランタイムだけ自分で調達してもらって、ビルドした.NETバイナリは渡す、みたいなケースを考えてたらマズいので、
足りないって話。その事を上で書いてるから、安価してるってこと
0806名前は開発中のものです。
2012/04/26(木) 09:56:27.37ID:EbGDOn430807名前は開発中のものです。
2012/04/26(木) 10:02:59.86ID:Vzm3mGXPひとつは、開発環境インストールすると付いてくるAPIドキュメントについて、
フッタやそこらにコンフィデンシャルと記述があること。
これが、例えばドキュメントそのものをパブリックな場所で公開はダメってのは当然として、
その意味する所はどこまでか、って話が見えないから。
普通、こんな社内ドキュメントに書くような強い言葉は使わないので、気になる。ってのと、
もうひとつはライセンス条項にある限定性の前提と知的財産権の行使を会わせた時の解釈。
まだ全部訳してないけど、なんか公式フォーラム以外で色々した場合、怒られるのかどうなのかが微妙。
だから、おkじゃないの?とは思うけど、一応聞いた方がと思った次第
Oracle社やHP社の製品扱う時みたいなイメージで、一応念入りに見てる俺
0808名前は開発中のものです。
2012/04/26(木) 10:09:37.14ID:QuIRGnUc乙過ぎです!
フォーラムでソース配布しないで
他の人に試してもらう仕組み的なものを用意しないのか聞いてみようかな
0809名前は開発中のものです。
2012/04/26(木) 10:16:54.44ID:r5tYGBBU(クローズドβの時はソースも含めてSCEIが許可した場合を除き配布できなかった)
今はソースもバイナリも勝手に配布してOKなはず
0810名前は開発中のものです。
2012/04/26(木) 10:41:55.42ID:Vzm3mGXPそれマジかい。どこかでその旨アナウンスされてた?
バイナリまでっての、例えば上の方に書いたzipに1パケでまとめて、ってのもおk?
記憶だけの話なら、Sonyに一応聞いてみけど
0811名前は開発中のものです。
2012/04/26(木) 12:34:54.74ID:RP6WfnsVifで判定するのはペナルティが無いんだろうか
0812名前は開発中のものです。
2012/04/26(木) 12:37:02.11ID:Vzm3mGXPそれはエスパーすると、>>767 の話か
0813名前は開発中のものです。
2012/04/26(木) 12:46:27.14ID:RP6WfnsVTEXUNIT0:プレイヤーのテクスチャ
TEXUNIT1:背景のテクスチャ
TEXUNIT2:弾のテクスチャ
TEXUNIT3:敵のテクスチャ
TEXUNIT4:ボスのテクスチャ
TEXUNIT5:エフェクトのテクスチャ
を割り当ててtex2D(tex[index],uv.x,uv.y)をやりたい。
これなら違うテクスチャ使う場合でも同じ頂点バッファにできるから
はやいかなーと
0814名前は開発中のものです。
2012/04/26(木) 17:26:13.51ID:Vzm3mGXPん?シェーダの考え方的になんか変じゃねそれ。
それら複数のテクスチャって、ひとつのメッシュで全部に同時に必要なの?
あるひとまとまりのメッシュ=VertexBufferに並ぶ一連のプリミティブ(トライアングルとか)を描画するのに必要な情報を渡して描画する、その
パイプラインに置くのがシェーダだけど、
もしもその例にあるテクスチャが個別なら、配列に持たすんじゃなくて、ひとかたまりのメッシュ描画するごとに、テクスチャ生成時のID、
OpenGL的にはnameなんて言い方するが、IDをコンパイル済みシェーダプログラムに、渡す格好になると思う
シェーダ使ったプログラム、今回が初めてか?PSSに限らず
0815名前は開発中のものです。
2012/04/26(木) 17:32:06.71ID:Vzm3mGXP>これなら違うテクスチャ使う場合でも同じ頂点バッファにできるから
>はやいかなーと
複数のモデルを一つのVertexBuffer一本に全部つめてまとめて描画したいってことか?
つめてもいいけど、オフセットしながら、シェーダに値渡しながらDrawじゃなくて、
一回だけの呼び出しでって
それメリット薄い気がするが、もしかして描画時に毎回バッファ作成してGPUに送り込んでるとかしてないよな?
0816名前は開発中のものです。
2012/04/26(木) 17:42:35.03ID:r5tYGBBUCgはまったく知らないけどただのマルチテクスチャーなら普通に出来るでしょ
0817名前は開発中のものです。
2012/04/26(木) 18:02:16.86ID:Vzm3mGXPマルチテクスチャ自体はいいんだけど、俺も考え方的に違和感
あとちなみに、PSSはGL"ES"ベースのCgのようだぜ。制限範囲把握してないけど
0818名前は開発中のものです。
2012/04/26(木) 18:13:14.85ID:RP6WfnsV一回のDrawArraysにすればはやいかなと。メッシュとか数千ポリでも余裕じゃん。
でもテクスチャ足りないからマルチテクスチャ使えないかなーって思ったの。
VRAMバンクみたいなの感じ?
0819名前は開発中のものです。
2012/04/26(木) 19:26:22.06ID:Vzm3mGXPで、個別の板ポリそれぞれについて、n組の変換行列渡すか、またはn組の頂点オフセット値を 配列uniform 使って渡して、attributeでインデクス渡して特定して描画って格好か
VertexBufferは予め最大幅確保して。
いやパンクは無いだろうけど、テクスチャって言うより、そもそも
uniformに渡せる配列 の最大幅には、ハードウェア依存の制限あるけと思うけど
=その方法で一度に個別な板ポリ描画しようとすると、同時に扱える仮数に制限あると思うけど
その辺収まるの?やりたい内容的に
それとも座標は固定なの?
0820名前は開発中のものです。
2012/04/26(木) 19:27:58.35ID:Vzm3mGXP×仮数
○個数
0821名前は開発中のものです。
2012/04/26(木) 19:40:00.25ID:uEigsJFJ速度変わらなかったw
0822名前は開発中のものです。
2012/04/26(木) 19:42:07.92ID:Vzm3mGXP0823名前は開発中のものです。
2012/04/26(木) 19:47:01.38ID:UmLm2LQZ4096個以上だとプログラムが落ちるんだが……
0824名前は開発中のものです。
2012/04/26(木) 20:02:52.18ID:RP6WfnsVuniform配列は使わないで毎フレーム頂点バッファに書き込もうかと
配列使えないから意味ないんですがね
// fcg
void main(
float4 out color : COLOR,
float2 in uv:TEXCOORD0,
int in index:TEXCOORD1,
uniform sampler2D tex[] : TEXUNIT // これを配列にしたい
)
{
color = tex2D( tex[index], uv);
}
0825名前は開発中のものです。
2012/04/26(木) 20:03:30.54ID:RP6WfnsV// C#側
struct Vertex
{
float x,y,z,w;
float u,v;
int index;
};
struct Sprite
{
Vertex v[4];
};
// スプライトバッファ
Sprite sprite[1024];
sprite[0].v[xxx].index = 0; // playerTexを使用する
sprite[1].v[xxx].index = 1; // bgTexを使用する
sprite[2].v[xxx].index = 0; // playerTexを使用する
// 登録したスプライトを元にして頂点バッファを作成
vtx = CreateVertexBuffer(sprite);
SetVertexBuffer(vtx);
SetTexture(0,playerTex);
SetTexture(1,bgTex);
DrawArrays(sprite,n);
0826名前は開発中のものです。
2012/04/26(木) 20:18:21.13ID:Vzm3mGXPそれ、CPUーGPU間の転送動作とか、その辺わかってて書いてるかい?
あと、上の方でも書いたけど、PSS環境以外で書いたことはあるかい
普通、そういう猛烈なコスト無視なコード書かないと思うけど
0827824
2012/04/26(木) 20:56:09.52ID:7cNkZwNQDirectX9あたりまでなら作ったことがあります。
弾の座標なんて毎フレーム変わっちゃうんで
システムメモリにVertexBufferつくってLockして毎回設定してたんですが
今はやり方ちがうんですかね
0828名前は開発中のものです。
2012/04/26(木) 21:09:27.18ID:Vzm3mGXPいやいやDirectX9でもプログラマブルシェーダ使う前提だとか、VertexBuffer使うって話であれば変わらないよ
要はCPUーGPU間の転送って言う基本的で物理的な事情に由来する話だから、
例えば「早くしたい」って事情なら、真っ先にそこ回避したいところ
もっと昔だと、Cライクな構文のシェーダ言語はなかったので、GPU側の機械語で計算処理書いて、予め転送した頂点計算したりしてた
その辺、そこまで要件がタイトじゃないとしても、毎フレーム生成は真っ先に避けたくなる所だよ
それは昔から変わらない
なので、昔の本でもいいから、基礎から勉強しなおしした方がいいと思う。
処理効率的な意味で。別にいじわるで言ってるわけでなく、マジで。
0829名前は開発中のものです。
2012/04/26(木) 21:11:36.56ID:Vzm3mGXPあと、その毎フレーム座標変わっちゃうんで、だろうと思ったから、
先に >>819 のレスを書いてるのだ
意味がわかんなかったら、聞くか調べておくれ
0830名前は開発中のものです。
2012/04/26(木) 21:12:58.20ID:7cNkZwNQ0831名前は開発中のものです。
2012/04/26(木) 21:27:12.64ID:7cNkZwNQ毎フレーム変更するならImmediateModeを使えばいいんだろうか?
0832名前は開発中のものです。
2012/04/26(木) 21:40:11.96ID:Vzm3mGXPとりあえず、週末になったら
Sprite2D使った場合と、
毎フレーム頂点の生成廃棄と転送繰り返す場合と、
シェーダ使った意味的に普通のコードの場合
で、速度検証のコード俺も書くよ
0833名前は開発中のものです。
2012/04/26(木) 21:56:28.50ID:Vzm3mGXPパーティクルだと実装手段180度違うような方法色々あって、一概に言いづらい
ってのは、例えばポイントスプライト(新しいDirectXだと消えたらしいが)だとか、普通にポリゴンだとか、色々方法あるから。
ただ、いずれも描画のための頂点座標計算はCPUでやらないで、シェーダ側で計算するのが普通だけど、
その元になる係数なんかについてはCPU側で計算して、それを、
uniformやattributeで渡して、みたいな格好。
あとバッファをLockやUnlock、map/unmapしてCPU側管理下のメモリに内容展開して計算して詰め直し、GPU側に再転送みたいなアプローチは、初期処理は当たり前として、
それ以外だと例えば、場面替えの時とか、あるいはゲームじゃなく
3Dモデリングソフトを作るだとか、そういう「やってもいい時にだけ」する感じ
0834名前は開発中のものです。
2012/04/26(木) 22:48:58.96ID:7cNkZwNQでSprite描画はDrawごとにVertexBufferにsetVerticesやってるっぽいな…
0835名前は開発中のものです。
2012/04/26(木) 22:59:39.10ID:7cNkZwNQ弾幕シューティングは無理か
■ このスレッドは過去ログ倉庫に格納されています