スキップしてメイン コンテンツに移動

Godot シェーダーの 最初の2つのメモ

Godotでシェーダー書いたのですが、忘れないようにメモ。

最初の二行に書く、シェーダーの設定について:

shader_type spatial;
render_mode unshaded;

shader_type

シェーダーのタイプ。

  • spatial
    • 3D
  • canvas_item
    • 2D
  • particles
    • パーティクル向け

render_mode


  • blend_mix
    • デフォルト
  • blend_add
    • 加算合成
  • blend_sub
    • 減算合成
  • blend_mul
    • 乗算合成
  • depth_draw_opaque
    • 不透明のみDEPTHバッファに書き込み
  • depth_draw_always
    • 常に書き込み
  • depth_draw_never
    • 常に書かない
  • depth_draw_alpha_prepass
    • 半透明ジオメトリ用に先に不透明を書き込む
  • depth_test_disable
    • DEPTHテストやらない
  • cull_front
    • 表面非表示
  • cull_back
    • 裏面非表示
  • cull_disabled
    • 両面描画
  • unshaded
    • ライト/陰をオフにする。ALBEDOがそのまま画面に出るようにする
  • diffuse_lambert
  • diffuse_lambert_wrap
  • diffuse_oran_nayar
  • diffuse_burley
  • diffuse_toon
  • specular_schlick_ggx
  • specular_blinn
  • specular_phong
  • specular_toon
  • specular_disabled
  • skip_vertex_transform
    • vertex shaderでVERTEX/NORMAL(他)のTransformを手動でやるようにする
  • world_vertex_coords
    • VERTEX/NORMAL(他)で、ローカル座標のかわりにワールド座標を使用する
  • vertex_lighting
    • 頂点ごとのライティングを使用する

Godot Engineでぐるんぐるん(仮)作るの楽しいです。

コメント

このブログの人気の投稿

UTF8からSJISに文字コード変換ライブラリを作りました

HaxeでWindowsのコンソールに出力するさい、SJISでないと文字化けを起こしてしまいます。
というわけで、文字コード変換ライブラリを作ってみました

2016-05-25追記:今はnorikoというライブラリにSJIS、UTF8、JIS、EUCの文字コード変換ライブラリを実装しています。

ぐるんぐるん

今、ぐるんぐるん(仮)という名前のゲームを作っています。
いわゆる、6DoFでの空間上で撃ちあいをするゲームになっています。Godot Engineの練習3作目として作っています。

Godot Engineの練習として以下の機能を実装する予定ではありますが、調べながらなので何時実装になるかはわかりません。

・ネットワーク対戦
・洞窟ステージ
・軽量化(GridMap + Lightをなんとか良い感じで使いたい)

LightはBakeできるハズなんですが、やるとエディタごと落ちるのでちょっと要調査です。

Godot EngineでHUD表示

3D空間に2DUIの表示についてのメモ。

Viewportノードを作成し、その下に表示したい2D UIを作る:
そして表示用のMeshInstanceも作成しておく。メッシュはQuad、マテリアルはMaterialOverrideに下のような感じに設定する: そして、最後に_ready( )に以下のコードを使用:

# 名前とかは適宜変えてね
func _ready( ):
    $MeshInstance.material_override.albedo_texture = $Viewport.get_texture( )

上下反転しているときは、テクスチャをFilpYするか、ViewportのRenderTarget/VFlipをtrueにすると直る。

Viewportにはスクリーンサイズを設定するところがあるので設定しわすれないように注意する。背景を透明化するときは、TransparentBgをtrueにする。

サンプルのGui in 3dでも使われている、ViewportTextureというのがあったけど、これはBillboardをtrueにすると上手く動かなかった。サンプルでは3Dで描画してたが、今回は常にこっちを向かせたかった。