2013年5月6日月曜日

UnityのOrthographicモードでzソートが暴れるときのメモ



最近にカメラの描画順でハマッったことがあり、Unity Answersに助けてもらったのでメモとして残してみることにした:

---------

http://answers.unity3d.com/questions/302803/orthographic-camera-rendering-order-not-always-wor.html
Aug 16, 2012 at 12:01 PM

質問

Unityで画面上のゲームオブジェクトのレンダリング順序を毎フレーム設定している。そして z ソートの順序を決めるようにしている。オブジェクトはただの4頂点の平面だ。ときどき z ソートが暴れて順序がおかしくなる様子なのだが原因が分からない。
カメラは Orthographic にしていて、もとは iPhoneゲームから移行したもので、次に書かれるオブジェクトの z デプスを格納するグローバル変数を増加させて対応しているのだけれども何が原因か分かる?

回答

1. はじめに、カメラのSortModeを確認する:



Camera.transparencySortMode
var  transparencySortMode : TransparencySortMode 
説明 
透明オブジェクトでのソート モード
 デフォルトでは Perspective カメラはオブジェクトをカメラ位置からの距離にもとづいてオブジェクトをソートする。そして Orthographic カメラは ビュー方向の距離にもとづいてソートする。
2D ゲームで Perspective カメラを使用している場合は TransparencySortMode を使用したほうが良い場合があり、オブジェクトがカメラのビューに沿った距離の順でソートした方が良い場合がある。
2.次に、シェーダを確認する。

  • シェーダでもレンダリング キュー値があり、z 値よりも優先されるので注意だ。低い値のキュー値の方が先にレンダリングされる。

3.最後に、ピボットの順序を確認する。

  • 透明オブジェクトについてはピボットを用いてソートされる。この場合は頂点ではなくピボットが正しい順序でソートされているか確認する。

----------

Unity の知恵を貯めこんでいこうぜ!

0 件のコメント:

コメントを投稿

ブックマークに追加

このエントリーをはてなブックマークに追加

自己紹介

自分の写真
Unity3D公式マニュアル翻訳やってる人がスマホ(iPhone, Android)のゲーム開発しています。気軽に面白く初心者が遊べる内容がモットー。Blogでは開発情報をひたすら、Twitterではゲーム作成の過程で参考にしている情報を中心につぶやきます

ページビューの合計

過去7日間の人気投稿