Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 14 Next capture
2021 2022 2023
2 captures
13 Jun 22 - 14 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 Infan · Jan 30, 2021 at 01:48 PM · shaderrenderingshadows

I can't Rendering DirectionalShadow from SRP.

Hello.

I want to render with directional shadows. However, even if I use Shadowmap of DrawShadows, it is not drawn correctly. Regarding Shadowmap, we have confirmed that it is drawn by Frame Debugger. What are the problems with the following sampling methods?

 Shader "SRP/ShadowCastObject"
 {
     Properties
     {
         _Color("Color", Color) = (1,1,1,1)
         _SampleTexture("Texture", 2D) = "white" {}
         [Toggle(SHADOW_RECEIVE)]_ShadowReceive("Receive Shadows", Float) = 1
     }
     
     SubShader
     {
         Pass
         {
             Tags { "LightMode" = "Opaque" }
 
             CGPROGRAM
             #pragma vertex vert
             #pragma fragment frag
             #pragma multi_compile _ SHADOW_RECEIVE
 
             #include "UnityCG.cginc"
             #include "Lighting.cginc"
             #include "AutoLight.cginc"
 
             struct appdata
             {
                 float4 vertex : POSITION;
                 float3 normal : NORMAL;
                 float3 pos : TEXCOORD0;
             };
 
             struct v2f
             {
                 float4 vertex : POSITION;
                 float3 normal : NORMAL;
                 float3 pos : TEXCOORD0;
                 float4 shadowPos : TEXCOORD1;
             };
 
             float4x4 _ShadowLightVP;
             UNITY_DECLARE_SHADOWMAP(_ShadowMap);
 
             v2f vert(appdata v)
             {
                 v2f o;
                 o.vertex = UnityObjectToClipPos(v.vertex);
                 o.normal = UnityObjectToWorldNormal(v.normal);
                 
                 //o.pos = o.vertex.xyw;
                 o.pos = (v.vertex);
 
                 return o;
             }
 
             float4 frag(v2f i) : SV_Target
             {
                 float3 normal = normalize(i.normal);
                 float3 light = normalize(_WorldSpaceLightPos0.xyz);
                 float diffuse = saturate(dot(normal, light));
 
 #if SHADOW_RECEIVE
                 float4 shadowProj = mul(_ShadowLightVP, i.pos);
                 shadowProj = UNITY_PROJ_COORD(ComputeScreenPos(shadowProj));
                 float shadow = UNITY_SAMPLE_SHADOW(_ShadowMap, shadowProj);
                 diffuse *= shadow;
                 
                 //return float4(shadowProj.x * 0.5 + 0.5, shadowProj.y * 0.5 + 0.5, 0.0f, 1.0f);
 
                 //float2 uv = float2(shadowProj.x * 0.5f + 0.5f, shadowProj.y * 0.5f + 0.5f);
                 //return UNITY_SAMPLE_TEX2D(_SampleTexture, uv );
 #endif
                 return diffuse;
             }
 
             ENDCG
         }
 
         Pass
         {
             Tags { "LightMode" = "ShadowCaster" }
 
             CGPROGRAM
             #pragma vertex vert
             #pragma fragment frag
 
             #include "UnityCG.cginc"
             #include "Lighting.cginc"
             #include "AutoLight.cginc"
 
             struct appdata
             {
                 float4 vertex : POSITION;
             };
 
             struct v2f
             {
                 float4 vertex : POSITION;
             };
 
             float4x4 _ShadowLightView;
             float4x4 _ShadowLightProj;
             float4x4 _ShadowLightVP;
 
             v2f vert(appdata v)
             {
                 v2f o;
                 //o.vertex = UnityObjectToClipPos(v.vertex);
                 o.vertex = mul(_ShadowLightVP, v.vertex);
 
                 return o;
             }
 
             float frag(v2f i) : SV_Target
             {
                 //return float4(1.0f,0.0f,0.0f,1.0f);
                 return i.vertex.z;
             }
 
             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

· Add your reply
  • Sort: 

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

182 People are following this question.

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

Related Questions

Raymarching - bad shadows/light quality on fractals 0 Answers

Shadows in my rendered "Portal" Don't Render 0 Answers

Unity Shader Render Queue Causing Various Problems. 0 Answers

Scene lights flickering 0 Answers

Unity 4.6 and Grabpass fails 1 Answer


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