I'm recently learning Amplify Shader to make shader more easily. It's visual shader editor for Unity that allows to create shader by connecting nodes.

Right now I need a shader for Android project that supports Emission and Diffuse together, so I just made a shader that simply connect diffuse texture to albedo and emission to emission channel. I don't know why there is no shader that supports diffuse and emission together in Unity's built-in mobile shaders :(

Anyway, also instead of using Standard Shader, I switched to Lambert Shader because I heard that Standard Shader isn't good for mobile devices.

So here's shader information that I made:

  • Shader Type: Surface
  • Light Model: Lambert
  • Shader Model: 3.0
  • No Cast Shadows / Receive Shadows
  • Render Type: Opaque
  • Render Queue: Geometry

Should it be fine with using this shader in Android project? Also if I lower the shader model, could I get better performance? If do, what will I loose to not use >= 3.0?

Any advice will very appreciate it!

  • 1
    \$\begingroup\$ "Should it be fine" is something you can only answer conclusively by profiling it on real hardware. Remember, we don't know the content of your game, how much performance budget you have for this effect, how many pixels it's typically covering on screen, which phone models you're targeting, etc. So the best way to know if a shader will meet your needs is to build a test scene representative of your worst case load and run it on your target hardware, measuring things like frame time or battery consumption and comparing them against your personal targets. \$\endgroup\$ – DMGregory Jun 30 '18 at 7:38

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.