2020/11/26(木) [n年前の日記]
#1 [godot] Godot Engineでビルボードを使った3Dパーティクルを試したり
Godot Engine 3.2.3 x64 を使って操作方法を勉強中。Godot Engine のパーティクル機能について試しているところ。
2Dのパーティクルはできたので、3Dのパーティクルを試してみた。CPUParticlesノードを使って3Dモデルを ―― メッシュ(Mesh)を発生させることはできたものの、ビルボードを発生させるやり方が分からなくてちょっと悩んだり。
とりあえず、以下の画像を使って実験。
_star01_48x48.png
試してみたけど、たぶん以下のような感じでビルボードのパーティクルを出せるのかなと。
まず、Drawing - Mesh は、QuadMesh を選択。
Material は SpatialMaterial を選んで、以下を設定。
2Dのパーティクルはできたので、3Dのパーティクルを試してみた。CPUParticlesノードを使って3Dモデルを ―― メッシュ(Mesh)を発生させることはできたものの、ビルボードを発生させるやり方が分からなくてちょっと悩んだり。
とりあえず、以下の画像を使って実験。
試してみたけど、たぶん以下のような感じでビルボードのパーティクルを出せるのかなと。
まず、Drawing - Mesh は、QuadMesh を選択。
Material は SpatialMaterial を選んで、以下を設定。
- Albedo - Texture に、表示したい画像を指定。
- Parameters - Billboard Mode を Enabled に。これでビルボードになる。
- Parameters - Blend Mode を Add にすれば光ってる感じのパーティクルっぽくなるかもしれない。
- 元画像がアルファチャンネルを含む画像なら、Flags - Transparent のチェックを入れて有効化。
- Flags - Unshaded を有効化すると見た目が変わる。
◎ 動作確認。 :
html5でエクスポートしてみた。
_particles_test_3d.html
箱とビルボード(星の画像)の2種類をパーティクルとして発生させてる。カメラが動いても星の見た目が変わらない ―― ビルボードで表示できてることぐらいは一応分かるかなと。
_particles_test_3d.html
箱とビルボード(星の画像)の2種類をパーティクルとして発生させてる。カメラが動いても星の見た目が変わらない ―― ビルボードで表示できてることぐらいは一応分かるかなと。
◎ AMD/ATI製GPU環境では注意。 :
AMD/ATI製GPUを使ってる場合は、GPUを使って処理をする Particlesノードを使うとビルボードが有効にならない場合もあるらしい。
_Is there any problem with the option Billboard Mode of Particles 3D? - Issue #34158 - godotengine/godot
上記の例では最新ドライバにアップデートして問題が解決したと報告されてるけど…。
Godot Engine は OpenGL を使って描画をしているらしいのだけど、AMD/ATI製GPUのドライバはOpenGL周りに関して仕様が未実装だったりバグがあったりと、かなり評判が悪くて。 *1
_本の虫: OpenGLドライバー品質の実情
ただ、前述のページのやり取りの中で、CPUParticles を使えばパフォーマンスは落ちるけどAMD/ATIのドライバに起因するバグを回避できるかもしれない、という話も出てるようなので、不安な時はそっちを使っておいたほうがいいのかもしれないなと。
_Is there any problem with the option Billboard Mode of Particles 3D? - Issue #34158 - godotengine/godot
上記の例では最新ドライバにアップデートして問題が解決したと報告されてるけど…。
Godot Engine は OpenGL を使って描画をしているらしいのだけど、AMD/ATI製GPUのドライバはOpenGL周りに関して仕様が未実装だったりバグがあったりと、かなり評判が悪くて。 *1
_本の虫: OpenGLドライバー品質の実情
ただ、前述のページのやり取りの中で、CPUParticles を使えばパフォーマンスは落ちるけどAMD/ATIのドライバに起因するバグを回避できるかもしれない、という話も出てるようなので、不安な時はそっちを使っておいたほうがいいのかもしれないなと。
*1: 自分も以前、OpenGLを勉強した時にバグに遭遇して悩んだ記憶が…。当時OpenGLで描画していた今は亡き(?)某3DCGソフトも「AMD/ATI RADEON環境では基本的に動作を保証しません」と説明書に一言加えてたぐらいで。そのくらいAMD/ATI製GPUのドライバは出来が酷い…。
[ ツッコむ ]
以上、1 日分です。