Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 12 Next capture
2021 2022 2023
1 capture
12 Jun 22 - 12 Jun 22
sparklines
Close Help
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
  • Asset Store
  • Get Unity

UNITY ACCOUNT

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account
  • Blog
  • Forums
  • Answers
  • Evangelists
  • User Groups
  • Beta Program
  • Advisory Panel

Navigation

  • Home
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
    • Blog
    • Forums
    • Answers
    • Evangelists
    • User Groups
    • Beta Program
    • Advisory Panel

Unity account

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account

Language

  • Chinese
  • Spanish
  • Japanese
  • Korean
  • Portuguese
  • Ask a question
  • Spaces
    • Default
    • Help Room
    • META
    • Moderators
    • Topics
    • Questions
    • Users
    • Badges
  • Home /
avatar image
0
Question by HSposito · Feb 23, 2017 at 02:19 PM · androidshader

Shader works in editor but not on Android

Hello!

This is the shader I am trying to use. I did not write it. I got it on the web.

 Shader "Custom/Scanlines" {
     Properties{
         _Color("Color", Color) = (0,0,0,1)
         _LinesSize("LinesSize", Range(1,10)) = 1
     }
         SubShader{
             Tags {"IgnoreProjector" = "True" "Queue" = "Overlay"}
             Fog { Mode Off }
             Pass {
                 ZTest Always
                 ZWrite Off
                 Blend SrcAlpha OneMinusSrcAlpha
 
         CGPROGRAM
 
         #pragma vertex vert 
         #pragma fragment frag
         #include "UnityCG.cginc"
 
                 fixed4 _Color; half _LinesSize;
 
                 struct v2f {
                     half4 pos:POSITION;
                     fixed4 sPos : TEXCOORD;
                 };
 
                 v2f vert(appdata_base v) {
                     v2f o; o.pos = mul(UNITY_MATRIX_MVP, v.vertex);
                     o.sPos = ComputeScreenPos(o.pos);
                     return o;
                 }
 
                 fixed4 frag(v2f i) : COLOR {
                     fixed p = i.sPos.y / i.sPos.w;
 
                     if ((int)(p*_ScreenParams.y / floor(_LinesSize)) % 2 == 0) discard;
 
                        return _Color;
                  }
 
         ENDCG
                }
 
     }
 
 }

And this is the script I am using to load it. It is attached to the camera.

 using UnityEngine;
 
 [ExecuteInEditMode]
 public class CRTShader : MonoBehaviour {
 
     private Material material;
 
     void Start() {
         material = new Material(Shader.Find("Custom/Scanlines"));
     }
 
     public void OnRenderImage(RenderTexture source, RenderTexture destination) {
         material.SetTexture("_MainTex", source);
         Graphics.Blit(source, destination, material);
     }
 
 }

It runs fine on the editor but it does not work on the Android build.

The shader is in the Resources folder.

What I am doing wrong? Any ideas?

Thank you.

Comment
Add comment · Show 5
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users
avatar image MarshallN · Feb 23, 2017 at 03:37 PM 0
Share

Have you looked at the log on your Android device? That should list the error.

avatar image HSposito MarshallN · Feb 23, 2017 at 04:01 PM 0
Share

Logcat shows no error.

avatar image MarshallN HSposito · Feb 23, 2017 at 04:37 PM 0
Share

What is the shader doing on Android? What are the symptoms?

Show more comments
Show more comments

1 Reply

· Add your reply
  • Sort: 
avatar image
0

Answer by tanoshimi · Feb 23, 2017 at 05:57 PM

I'm not sure why you're creating a new material in Start() ?

 material = new Material(Shader.Find("Custom/Scanlines"));

Add the [SerializeField] attribute to the material variable (or make it public, not private) to expose it in the inspector and assign a material that uses the Scanlines shader directly, which will ensure it gets included in the build.

Comment
Add comment · Show 1 · Share
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users
avatar image HSposito · Feb 23, 2017 at 06:27 PM 0
Share

I've done that. The same thing happens. I have also put the shader in the Always Included Shaders.

Your answer

Hint: You can notify a user about this post by typing @username

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Follow this Question

Answers Answers and Comments

6 People are following this question.

avatar image avatar image avatar image avatar image avatar image avatar image

Related Questions

Water4 Advanced Edge blend Not working with GearVR 0 Answers

GL - Shader not working in Android 1 Answer

need help making this mobile shader more efficient 0 Answers

Custom shader go to black on android devices. 1 Answer

Frame rate issue - VR Cardboard App for Android 0 Answers


Enterprise
Social Q&A

Social
Subscribe on YouTube social-youtube Follow on LinkedIn social-linkedin Follow on Twitter social-twitter Follow on Facebook social-facebook Follow on Instagram social-instagram

Footer

  • Purchase
    • Products
    • Subscription
    • Asset Store
    • Unity Gear
    • Resellers
  • Education
    • Students
    • Educators
    • Certification
    • Learn
    • Center of Excellence
  • Download
    • Unity
    • Beta Program
  • Unity Labs
    • Labs
    • Publications
  • Resources
    • Learn platform
    • Community
    • Documentation
    • Unity QA
    • FAQ
    • Services Status
    • Connect
  • About Unity
    • About Us
    • Blog
    • Events
    • Careers
    • Contact
    • Press
    • Partners
    • Affiliates
    • Security
Copyright © 2020 Unity Technologies
  • Legal
  • Privacy Policy
  • Cookies
  • Do Not Sell My Personal Information
  • Cookies Settings
"Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges