• 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 /
This question was closed Sep 30, 2015 at 03:46 AM by CloudChing.
avatar image
0
Question by CloudChing · Sep 17, 2015 at 12:11 PM · shadershadersshader programmingshaderlabshader writing

Fog not working in my Shader~

in Unity5 , Fog not working in my own Vertext Shader,i use default surface shader is working.

I see the documentation:

 Fog handling was changed
      
      Unity 5.0 makes built-in Fog work on WP8 and consoles, but in order to achieve that we’ve changed how Fog is done a bit. For surface shaders and fixed function shaders, nothing extra needs to be done - fog will be added automatically (you can add “nofog” to surface shader #pragma line to explicitly make it not support fog).
      
      For manually written vertex/fragment shaders, fog does not happen automagically now. You need to add
      #pragma multi_compile_fog and fog handling macros to your shader code. Check out built-in shader source, for example Unlit-Normal how to do it.

i add the #pragma multi_compile_fog , but still not working...

there is my code:

   Properties {
          _MainTex ("Base (RGB)", 2D) = "white" {}
          _QOffset ("Offset", Vector) = (0,0,0,0)
          _Dist ("Distance", Float) = 100.0
      }
    
  SubShader {
      Tags { "RenderType"="Opaque"  }
      Fog  {Mode Linear }
      Pass
      {
          CGPROGRAM
          #pragma vertex vert
          #pragma fragment frag
          #include "UnityCG.cginc"
          #pragma multi_compile_fog
           
   
          sampler2D _MainTex;
          float4 _QOffset;
          float _Dist;
   
          struct v2f {
              float4 pos : SV_POSITION;
              float4 uv : TEXCOORD0;
          };
   
          v2f vert (appdata_base v)
          {
              v2f o;
              float4 vPos = mul (UNITY_MATRIX_MV, v.vertex);
              float zOff = vPos.z/_Dist;
              vPos += _QOffset*zOff*zOff;
              o.pos = mul (UNITY_MATRIX_P, vPos);
              o.uv = mul( UNITY_MATRIX_TEXTURE0, v.texcoord );
              return o;
          }
   
          half4 frag (v2f i) : COLOR
          {
              half4 col = tex2D(_MainTex, i.uv.xy);
              return col;
          }
   
          ENDCG
      }
  }
Comment
Add comment
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

0 Replies

  • Sort: 

Welcome to Unity Answers

The best place to ask and answer questions about development with Unity.

To help users navigate the site we have posted a site navigation guide.

If you are a new user to Unity Answers, check out our FAQ for more information.

Make sure to check out our Knowledge Base for commonly asked Unity questions.

If you are a moderator, see our Moderator Guidelines page.

We are making improvements to UA, see the list of changes.



Follow this Question

Answers Answers and Comments

2 People are following this question.

avatar image avatar image

Related Questions

Shader inverts uv map only once, how to fix it? 0 Answers

How to adapt this shader into a transparent one (alpha blend) 0 Answers

Header for material properties in inspector? 1 Answer

Addition to Standard Shader stopping it from batching? 0 Answers

Unity 3d Sprite Shader (How do I limit Max Brightness to 1 with Multiple Lights Hitting) 0 Answers

  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges