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

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

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

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

Unity

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

WebGL

WebGL(ウェブジーエル)は、ウェブブラウザで 3次元コンピュータグラフィックスを表示させるための標準仕様です。

Q&A

解決済

1回答

2324閲覧

ShaderGraphで作った雲のshaderがエディター上では普通なのにWebGLでビルドすると雲だけに謎のノイズがかかってしまう

hosituka

総合スコア15

Unity3D

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

Unity

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

WebGL

WebGL(ウェブジーエル)は、ウェブブラウザで 3次元コンピュータグラフィックスを表示させるための標準仕様です。

0グッド

0クリップ

投稿2021/09/29 13:15

編集2021/09/29 14:23

ShaderGraphで作った雲のshaderがエディター上では普通なのにWebGLでビルドすると雲だけに謎の黒色のノイズがかかってしまうためかからないようにしたいです対処法が思いつかないので教えていただけるとありがたいです
追記してほしい事がありましたら教えていただけると幸いです
謎の黒色のノイズがかかってしまう雲があるゲームを置かせてもらっているサイトのリンク(サイト名はUnityroomです公開範囲は限定公開にしてあります)
雲のshaderGraphのスクリーンショット

イメージ説明
ブラウザ上の雲のGIF(サイトはUnityroomです)

イメージ説明
エディタ上の雲のGIF

イメージ説明
試したこと

プラットフォームをPC,Mac&Linux Standaloneにしてビルドするとビルド後もエディタ上と同じ描写結果になりました
開発環境

Unity2020.3.12f1
プラットフォームはwebGLです

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

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

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

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

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

guest

回答1

0

ベストアンサー

PC環境で Unityroom のゲームを表示させてみました。確かに変なノイズが出ていますね。

UnityRoom + Chrome での表示結果
UnityRoom + Chrome Result

■ UnityRoom + Firefox での表示結果
UnityRoom + Firefox Result

以前、別の WebGL のライブラリで同様の事象を見かけました。
Chrome + NVIDIA の GPU を使うと発生するというものでした。

Filament + Chrome での表示結果
Filament + Chrome Result

■ Filament + Firefox での表示結果
Filament + Firefox Result

上記のライブラリの開発者の方によると、この事象は NVIDIA のドライバの問題なので WebGL のライブラリ側では対処できない、という話でした。

暫定的な対処方法としては、
・別のブラウザ(Firefox等)に変えてみる
・Chrome の場合、chrome://flags にて ANGLE のバックエンドを D3D11on12 等に変えてみる という感じでしょうか。

■ chrome://flags 変更例
chrome://flags変更例

投稿2021/09/29 17:33

編集2021/09/29 18:19
cx20

総合スコア4633

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

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

hosituka

2021/09/30 06:48

回答ありがとうございます 対処法教えていただきありがとうございました
cx20

2021/09/30 12:18

環境も確認せずに回答してしまいましたが、 使用されているブラウザとGPUはChromeとNVIDIAのGPUでしょうか? 自分はChrome + GeForce RTX 2060 で当該事象に遭遇しました。
hosituka

2021/09/30 14:07 編集

自分の環境ではNVIDIA GeForce GTX 970を使っていますブラウザはChromeですね あとこの問題に対する役に立ちそうな追加情報になるかは分かりませんが、この問題ってwebGLでビルドした時の最初は起きていなくて、間違ってUniversal Render Pipeline Assetを消してしまったのでUniversal Render Pipeline Assetを作り直してビルドしたらこの問題が起きたんですよね。ただ作り直してから2~3日たってからビルドしたため、問題に気付いたので下手したら関係ないかもしれません(その間は海のシェーダ―を作っていました)、あと当該事象が起きる条件がありまして自分のゲームでは雲とSkyboxだけを描画するカメラ①と船とか建築物とか海だけを描画するカメラ②(BackGroundTypeはUninitialized)で分けており理由としては②のカメラは色々と重い3dモデルを描画するのでClipping PlanesのFarを大きすぎないぐらいの値にしているのですがそのカメラに雲を描画させるとFarが大きくないため空全体を覆わないんですよね。だから①のカメラを用意し雲だけを描画しFarを大きくしています。それで②のカメラのPriorityを①のカメラのPriorityの値よりも1高く設定する事で②が先に描画されその後に描画される①のカメラ全体に謎ノイズがかかるみたいです。逆に①のBackGroundTypeをUninitializedにする&Priorityを②よりも高く設定すると②全体に謎ノイズかかるようになりました(雲だけにノイズがかかるというタイトルは誤りでした申し訳ございません)
hosituka

2021/09/30 14:09 編集

https://unityroom.com/games/hositukage-mu6 一応役に立つか分かりませんが、このURLだと問題が起きる前のゲームがアップロードされているため正常に動いている雲が見れます shaderの内容はノイズがかかる方の雲のshaderとほとんど変わっていないです。しいて言えば 雲の大きさを変える計算に使われていたpowerノードをDivideに変えたぐらいですね 前述した二つに分けられているカメラの設定もほとんど変わっていないです
cx20

2021/09/30 14:10

情報ありがとうございます。やはりChrome+NVIDIA GPUのケースが怪しいようですね。。 上手くいくシェーダそうでないシェーダがあるのは興味深いですね。 再現する最小ケースのシェーダが用意できれば Unity のサポートにバグ報告出しても良いかもしれません(焼け石にに水かもしれないですが。。) ちなみに、Filamentのケースですが、プログラム側での対処方法としては、setClearOptions() というメソッドで、強制的にフレーム毎にクリア処理を入れることで、事象が改善しました。 https://github.com/google/filament/discussions/3670 もう少し問題が特定できると良いのですけどね。。
hosituka

2021/09/30 14:34 編集

さらなる情報提供ありがとうございます 確かに問題の原因が分からないのはきついですよね... こういう問題って日本語で調べても中々ヒットしないんですよね、語彙力が足りないのか英語を学ぶべきなのか... まぁともかくそれで問題を改善する事が可能なのですね、夜遅いので明日試してみます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問