質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Unity3D

Unity3Dは、ゲームや対話式の3Dアプリケーション、トレーニングシュミレーション、そして医学的・建築学的な技術を可視化する、商業用の開発プラットフォームです。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

Q&A

0回答

4068閲覧

Unity バージョンを上げたらShaderの描画がおかしくなった

suvera

総合スコア106

Unity3D

Unity3Dは、ゲームや対話式の3Dアプリケーション、トレーニングシュミレーション、そして医学的・建築学的な技術を可視化する、商業用の開発プラットフォームです。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

0グッド

0クリップ

投稿2017/08/09 08:06

編集2017/08/10 04:50

###前提・実現したいこと
以前から開発しているプロジェクトがあり、
そのUnityプロジェクトのバージョンを今回アップグレードしました。

5.5.0で今まで扱っていましたが、
新たに5.6.3をインストールしてそちらで扱うようにしました。

その際に今まで利用していた一部のShaderが真っ黒に描画されるようになってしまいました。

5.6.2のアップデートに合ったライト関係のアップデートが怪しそうではあるのですが
どういう原因でこの現象が起きているのかがわかりません。

5.5.0の頃のように描画できるようにしたいです。

###試したこと
Shaderを選択したInspectorにて
Debugモードにした時に現れる、Custom Render Queue の設定を
2500以上に設定すると以前のように描画されているように見えます。

以前の状態ではCustom Render Queueの値は-1に設定されており、
5.6.3で開いた初期状態ではCustom Render Queueの値は-1に設定されているので
バージョンアップしたことで値の設定がおかしくなったとかではなさそうです。

また、そのシーンでは複数のカメラを使用していますが
そのカメラの内幾つかをOFFにすることでも以前のように描画されます。

追記

新しく気がついた点について追記します。

  • SceneタブではそのShaderを割当てたエフェクトが多分正常に描画される
  • カメラのAllow MSAAという設定でワーニングが出ている

ワーニングの内容

Deferrd and MultisampleAntiAliasing is not supported. This camera will render without MASS buffers. Disable Deferred if you want to use MASS.

Allow MSAAという設定は5.5.0のときにはなかったものでした。
そして、設定はチェックボックスで行えてアップデート時に自動でONで設定されているようです。
そして、このチェックボックスをOFFにするとOFFにしたカメラではエフェクトが正常に描画されるように見えます。

と、言うのはわかったんですがその設定が今回の問題とどう関わってるのかはわからなかったです。
わかる方いたら教えてください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Bongo

2017/08/09 16:44

おかしくなるシェーダーは、質問者さんが自作されたものでしょうか?できればシェーダーのソースコードも見てみたいのですが、ご提示可能でしょうか。
suvera

2017/08/10 01:44

シェーダーは自作したものではありません。他の方が作成したものです。聞いた話ではシェーダーは背景を反射で映すようなことをしていると聞いています。提示は難しそうです…
Bongo

2017/08/10 10:01

うう...どうにもこれだという事例、発生原因についての情報を探し当てることができておらず、回答欄に代わって追記欄でのコメントにします...例えばHoloLens用のシェーダー等において、「Allow MSAA」を切ったらシェーダーの動作が正常に戻ったという報告はいくつか見つかったものの、原因特定まで至る情報までは見つけられず、ご質問者さんのケースと照らし合わせて究明しようという目論見は行き詰まってしまっています。「Allow MSAA」についてはマニュアルの更新も追い付いていないようで、十分な解説がなくやっかいそうです。対症療法的ですが、ご質問者さんのおっしゃる「Allow MSAAを切る」や「Render Queueの順序を調整する」でなんとかすることになるのではないでしょうか。これらの対処を行ってもさしあたり問題がないようなら(例えばアンチエイリアスが効かず不満だ、など)、今のところそうしておいて、今後のUnityのバージョンアップやそのシェーダーのバージョンアップに期待するということでどうでしょう?的確な答えを提示できなくて申し訳ないです...
suvera

2017/08/11 08:55

お付き合い頂きありがとうございます。問題がなさそうか調べて、問題なさそうならこの方法で対処することにします。ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問