投稿者 tel | 2015年4月8日

Unityのスカイボックスの描画順番

カメラのSkyboxのレンダリングの順番(RenderQueue)が一番最初だと思っていたらそうでもなかったので実際どのタイミングなのか調べてみた。

カメラの Clear Flags を Skybox にして半透明設定のキューブを配置する。
キューブのマテリアルの renderQueue をデバッグメニューで操作して消えるタイミングを調べる。

こんなスクリプトをつけてテスト。

using UnityEngine;
using System.Collections;

public class RenderQueueSetter : MonoBehaviour
{
	Material _material;
	int _renderQueue;

	void Start()
	{
		_material = GetComponent<Renderer>().material;
		_renderQueue = _material.renderQueue;
	}

	void OnGUI()
	{
		GUILayout.Label(_renderQueue.ToString());

		if (GUILayout.Button("+1"))
		{
			_renderQueue++;
			_material.renderQueue = _renderQueue;
		}

		if (GUILayout.Button("+100"))
		{
			_renderQueue += 100;
			_material.renderQueue = _renderQueue;
		}

		if (GUILayout.Button("-1"))
		{
			_renderQueue--;
			_material.renderQueue = _renderQueue;
		}

		if (GUILayout.Button("-100"))
		{
			_renderQueue -= 100;
			_material.renderQueue = _renderQueue;
		}
	}
}

2500にしたら消えて2501にしたら出てきたのでおそらくSkyboxのレンダーキューは2500。

queue_ss

 

Skybox のシェーダだとタグの Queue に Background が指定されているけどこの値は使われないみたいだ。


コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

カテゴリー

%d人のブロガーが「いいね」をつけました。