ParticleSystem ビームシェーダーデモ

投稿日時

2018/01/26 21:02

最終更新

2018/01/26 21:39

閲覧数

1769

評価数(旧)

8

評価数

0

コメント数

0

このゲームはPC以外では動かない可能性が高いです
それでも開いてみる

スポンサーリンク

ゲーム情報

操作方法
紹介文

Unity の ParticleSystem のレンダリングモジュールには、パーティクルのテクスチャを進行方向に引き伸ばして描画する Streched Billboard という描画モードがあります。
しかし、残念なことに射線軸の方向から見ると薄くなってしまい、板ポリゴンであることが簡単にわかってしまいます。
そのため、3D シューティングの自機の弾丸に使うと悲しいことになります。

しかし、ご存じの方も多いと思いますが、この問題を解決した描画方法が、セガサターンのパンツァードラグーンシリーズ・PlayStation のオメガブーストなどで使われています。

昔からこの描画アルゴリズムを知りたくとも知る機会がなく、残念な思いをしていたのですが、Unite 2016 Tokyo の安原氏の講演「ハードウェア性能を引き出して60fpsを実現するプログラミング・テクニック」で公開されたゲーム「Another Thread」にて「楕円シェーダー」の名前で紹介されていました。
ソースコードは下記の URL にて公開されています。
https://github.com/unity3d-jp/AnotherThread

AnotherThread/Assets/Scripts/Beam.cs
AnotherThread/Assets/Shaders/beam.shader
の 2 つのファイルが楕円シェーダー関係のソースになります。

このおかげでシェーダーによる実装方法がわかりましたが、ParticleSystem は使っておらず独自に描画されていました。
しかし、Particle System の機能を調べていくうちに、Custom Vertex Stream とシェーダーの改造で実現できるのではないかと思い、やってみたらできました。

操作方法:
キーボードとマウスを使います。
・WASD (またはカーソルキー) で上下左右に移動
・ZX で全身・後退
・マウスカーソルを画面の端にもっていくとその方向を向く

青いパーティクルが既存の Streched Billboard、黄色いパーティクルが楕円シェーダーによる描画です。

URL、ゲームタイトル、作者名(コピー用)

評価する

みんなの評価

コメント

コメントを残すには、ログインが必要です。新規ユーザー登録 / ログイン

スポンサーリンク

同じ作者のゲーム

スポンサーリンク