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

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

新規登録して質問してみよう
ただいま回答率
85.50%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unity3D

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

Unity

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

Q&A

0回答

1253閲覧

MobileARShadowというシェーダーから偶然生まれた残像のエフェクトについて

TALOS

総合スコア7

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unity3D

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

Unity

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

0グッド

0クリップ

投稿2020/05/27 17:59

編集2022/01/12 10:55

前提・実現したいこと

MobileARshadowというAR上に適応するためのシャドウシェーダーをPlaneに貼り付けたところ、偶然残像のようなエフェクトが生まれました。Unityプレビュー画面と再生画面中では、残像が適応されるのですが、こちらをビルドしてAndroid端末でアプリケーションとして開くと、残像のようなエフェクトのみ消えてしまいます。

たまたま発生したバグですが、視覚効果として面白いのでこちらを何とかしてAndroidアプリの中でも適応したいです。

よろしくお願いします。

Mobile AR Shadow配布元リンク
https://github.com/HippoAR/Unity-Technologies-unity-arkit-plugin

イメージ説明

■■な機能を実装中に以下のエラーメッセージが発生しました。

発生している問題・エラーメッセージ

特になし

該当のソースコード

//This is based on a shader from https://alastaira.wordpress.com/2014/12/30/adding-shadows-to-a-unity-vertexfragment-shader-in-7-easy-steps/ Shader "Custom/MobileARShadow" { SubShader { Pass { // 1.) This will be the base forward rendering pass in which ambient, vertex, and // main directional light will be applied. Additional lights will need additional passes // using the "ForwardAdd" lightmode. // see: http://docs.unity3d.com/Manual/SL-PassTags.html Tags { "LightMode" = "ForwardBase" "RenderType"="Opaque" "Queue"="Geometry+1" "ForceNoShadowCasting"="True" } LOD 150 Blend Zero SrcColor ZWrite On CGPROGRAM #pragma vertex vert #pragma fragment frag #include "UnityCG.cginc" // 2.) This matches the "forward base" of the LightMode tag to ensure the shader compiles // properly for the forward bass pass. As with the LightMode tag, for any additional lights // this would be changed from _fwdbase to _fwdadd. #pragma multi_compile_fwdbase // 3.) Reference the Unity library that includes all the lighting shadow macros #include "AutoLight.cginc" struct v2f { float4 pos : SV_POSITION; // 4.) The LIGHTING_COORDS macro (defined in AutoLight.cginc) defines the parameters needed to sample // the shadow map. The (0,1) specifies which unused TEXCOORD semantics to hold the sampled values - // As I'm not using any texcoords in this shader, I can use TEXCOORD0 and TEXCOORD1 for the shadow // sampling. If I was already using TEXCOORD for UV coordinates, say, I could specify // LIGHTING_COORDS(1,2) instead to use TEXCOORD1 and TEXCOORD2. LIGHTING_COORDS(0,1) }; v2f vert(appdata_base v) { v2f o; o.pos = UnityObjectToClipPos (v.vertex); // 5.) The TRANSFER_VERTEX_TO_FRAGMENT macro populates the chosen LIGHTING_COORDS in the v2f structure // with appropriate values to sample from the shadow/lighting map TRANSFER_VERTEX_TO_FRAGMENT(o); return o; } fixed4 frag(v2f i) : COLOR { // 6.) The LIGHT_ATTENUATION samples the shadowmap (using the coordinates calculated by TRANSFER_VERTEX_TO_FRAGMENT // and stored in the structure defined by LIGHTING_COORDS), and returns the value as a float. float attenuation = LIGHT_ATTENUATION(i); return fixed4(1.0,1.0,1.0,1.0) * attenuation; } ENDCG } } // 7.) To receive or cast a shadow, shaders must implement the appropriate "Shadow Collector" or "Shadow Caster" pass. // Although we haven't explicitly done so in this shader, if these passes are missing they will be read from a fallback // shader instead, so specify one here to import the collector/caster passes used in that fallback. Fallback "VertexLit" }

試したこと

Shadowシェーダーを付けたマテリアルのEnable GPU Instancingをオンにする
→変化なし

AR CAMERAのコンポーネントにある
Camera→Camera flagsを変更する。
→変化あり。Skyboxでは残像は発生するが、Solid Colorでは残像が発生しない。シェーダーの問題ではなく、カメラの設定が何か関係しているかもしれない?

補足情報(FW/ツールのバージョンなど)

Unity 2019.2.0f1

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

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

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

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

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

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問