続:ポイントスプライト
前回に引き続きポイントスプライトによるパーティクルを実装中です。前回の疑問点だった『2次元ベクトルのUV座標を座標変換するとUVによるパターン切り替えができるけど、なぜ?』という理由が(半分)わかりました。このUV座標は頂点に含まれているUV座標と認識していたのですが、よくよく考えてみるとピクセルシェーダー内でのことですので、頂点ではなく、描画するピクセルのUV座標でした。これから描画するピクセルがテクスチャーのどの辺か?という情報で、それに対して座標変換することでUV座標を指定しているかのような結果になっていたわけです。
さて、そうとわかればUVアニメーションはもらったも同然!と思っていたら…。今度は回転でハマりました。ポイントスプライトでは頂点の回転はできないっぽいので、UVを回転させることでパーティクルを回転させることになります。しかし、1枚のテクスチャーに複数のパターンが描かれているということは、UVを回転させるととなりのパターンのテクセルを拾ってきてしまうではないですか! もっと言うと回転させすぎるとパターンの隅がポリゴンの外にいってしまい画像が切れてしまいます…。う〜ん、これについては我慢するしかないなぁ…。テクスチャーを描くときに外側をあまり使わないようにして、回転もあまり使わないようにします…。普通にポリゴンで描けばこんなことにはならないんですけどね〜。ちなみにUV値の回転はCCOのサンプルにあります。

試しに100個パーティクル配置してみましたが、360上でも落ちることなく60フレーム/秒で動作しています。
今回作成した炎のパーティクルですが、実は4パターン分しか描いていません。パターンをクロスフェードさせることで、8パターンのような滑らかさが得られます。

下の画像が実際に使っているテクスチャーデータです。256色に落としちゃいましたが、どうぞご自由に使ってください。著作権フリーって奴です。こういうパーティクル素材って作るの面倒ですしね。動きを入れてあると少ないパーティクルでも豪華に見えるので便利なんですよ〜。

【追記】
パターンはZ字状に表示してください。具体的にいうと、左上から始まって右上まで進み、次に左下へ飛んで、右下までです。右下まで行ったら左上に戻ります。ちなみに実際に描いた4パターンは一番左の列と、左から3番目の列です。他の列に比べて線がシャープなのでわかりやすいですね。
【追記】
試しに箱○で3000個置いてみたらさすがにガクつきました。2500までなら問題なく60フレーム/秒を維持できました。ちなみにこんな感じです。山火事か!?

さて、そうとわかればUVアニメーションはもらったも同然!と思っていたら…。今度は回転でハマりました。ポイントスプライトでは頂点の回転はできないっぽいので、UVを回転させることでパーティクルを回転させることになります。しかし、1枚のテクスチャーに複数のパターンが描かれているということは、UVを回転させるととなりのパターンのテクセルを拾ってきてしまうではないですか! もっと言うと回転させすぎるとパターンの隅がポリゴンの外にいってしまい画像が切れてしまいます…。う〜ん、これについては我慢するしかないなぁ…。テクスチャーを描くときに外側をあまり使わないようにして、回転もあまり使わないようにします…。普通にポリゴンで描けばこんなことにはならないんですけどね〜。ちなみにUV値の回転はCCOのサンプルにあります。

試しに100個パーティクル配置してみましたが、360上でも落ちることなく60フレーム/秒で動作しています。
今回作成した炎のパーティクルですが、実は4パターン分しか描いていません。パターンをクロスフェードさせることで、8パターンのような滑らかさが得られます。

下の画像が実際に使っているテクスチャーデータです。256色に落としちゃいましたが、どうぞご自由に使ってください。著作権フリーって奴です。こういうパーティクル素材って作るの面倒ですしね。動きを入れてあると少ないパーティクルでも豪華に見えるので便利なんですよ〜。

【追記】
パターンはZ字状に表示してください。具体的にいうと、左上から始まって右上まで進み、次に左下へ飛んで、右下までです。右下まで行ったら左上に戻ります。ちなみに実際に描いた4パターンは一番左の列と、左から3番目の列です。他の列に比べて線がシャープなのでわかりやすいですね。
【追記】
試しに箱○で3000個置いてみたらさすがにガクつきました。2500までなら問題なく60フレーム/秒を維持できました。ちなみにこんな感じです。山火事か!?

● COMMENT FORM ●
Re: タイトルなし
OKIさん、こんにちは〜。
炎の素材良かったら使ってやってくださ〜い。
ゲーム開発の再開も期待してますよ!!
炎の素材良かったら使ってやってくださ〜い。
ゲーム開発の再開も期待してますよ!!
こんばんわ〜。
>ゲーム開発の再開も期待してますよ!!
ホント、Karu_gamoさんに合す顔が無いです…(> <)
ご存知のとおり、去年まではあんなにハイペースでやってたのにw
今年は基板復活も含めて超レトロゲーム三昧になってしまったので、開発は殆んどやらなさそうです…
今日の休日も勉強やプログラムもしないで、ファンタジーゾーン、タスクフォースハリアー、NOVA 2001、ジャンプバグ、アミダーの基板で遊んでました…もう廃人や…(;3;)
>ゲーム開発の再開も期待してますよ!!
ホント、Karu_gamoさんに合す顔が無いです…(> <)
ご存知のとおり、去年まではあんなにハイペースでやってたのにw
今年は基板復活も含めて超レトロゲーム三昧になってしまったので、開発は殆んどやらなさそうです…
今日の休日も勉強やプログラムもしないで、ファンタジーゾーン、タスクフォースハリアー、NOVA 2001、ジャンプバグ、アミダーの基板で遊んでました…もう廃人や…(;3;)
>>ご存知のとおり、去年まではあんなにハイペースでやってたのにw
確かにハイペースでしたよね〜。
私は遅くとも1時には切り上げちゃうので、
OKIさんの真似はできません!
無理せずまた気が向いたらはじめましょ〜!
確かにハイペースでしたよね〜。
私は遅くとも1時には切り上げちゃうので、
OKIさんの真似はできません!
無理せずまた気が向いたらはじめましょ〜!
トラックバック
http://karuduck.blog50.fc2.com/tb.php/147-66d31a8f
この記事にトラックバックする(FC2ブログユーザー)

(私の場合、いつ再開するか不明ですけど…(^^;)