Debug.blog

No Computer Graphics, No Life

Render Queue

f:id:kodai100:20170727212915j:plain

Unityでは、レンダリングの順序をシェーダー内のTags{“Queue” = “?”}で指定します。

QueueがTransparentに設定されていない状態で同一Queue同士のシェーダー(オブジェクト)を重ねてカメラに写すと、 重なり順が正確に計算されず、以下画像のように変な表示になってしまうことがあります。

f:id:kodai100:20170719114923j:plain

この場合、QueueをTransparentに指定しなおすことで改善が見込めますが、

改善されない場合はインスペクタから直接RenderQueueを編集し、手前のものをより大きい番号に指定するか、 シェーダー側のQueue指定であらかじめ数値を足しておくかで回避することができます。

DirectXの勉強を始めてみる

f:id:kodai100:20170727204154j:plain

まえがき

仕事柄、Unityを触ることが多くなってきました。

Unityは、.NetFrameworkのもと、マルチプラットフォームに動作するゲーム開発ソフトウェアとして有名です。

しかし2017年現在、一部機能はDirectXがサポートされた環境でなければ動かすことができません。 ComputeShaderがその代表例です。 Unityが提供しているComputeShader関連のAPIは、内部構造が公開されていないため、 一連の処理がどのように行われているのか一切知らないまま適当に受け入れるしかありませんでした。

そこで、このあたりの実装をどのように行うのかを解明すべく、DirectXを勉強しようと考えました。 大学では専らOpenGLWebGLを用いて開発を行っていたこともあり、興味本位な部分もありますが…

のんびりとはじめていきます。