Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 13 Next capture
2021 2022 2023
1 capture
13 Jun 22 - 13 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
1
Question by NReed · Feb 25, 2014 at 01:51 AM · shadershadowdirectional light

Can shaders access directional light shadow maps?

For point and spot lights, we can get access to the shadow map in shaders using the built-in variable _ShadowMapTexture. However, for directional lights it appears the cascaded shadow map is already converted to a screen-space shadow mask by the time the shader sees it (based on a reading of AutoLight.cginc).

Is there a way to get access to the actual shadow map, and the information (world-to-clip matrices etc.) about the cascades?

I'm working on porting a shader to Unity that uses the shadow map to estimate the thickness of an object, for a subsurface-scattering effect; so I need to be able to read raw depth values from the shadow map.

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

1 Reply

· Add your reply
  • Sort: 
avatar image
0
Best Answer

Answer by NReed · Feb 28, 2014 at 01:27 AM

After poking at this some more, I found that you can get access to the directional light shadow maps by writing a custom shadow collector pass. Looking at the definition of SHADOW_COLLECTOR_FRAGMENT in UnityCG.cginc, you can see the various parameters and textures that are available in this pass.

It may be possible (though I haven't tried, since I switched to a different approach for my original problem) to calculate some extra information in the shadow collector pass and store it in an unused channel of the screen-space shadow texture, or (in D3D11) perhaps store it in a random access texture, to be retrieved in the lighting pass.

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 psantoki · Apr 15, 2014 at 12:32 AM 0
Share

Hey NReed how did you do this?

I'm trying to sample the shadow collector in post. UnityCG.cginc defines the macro SA$$anonymous$$PLE_SHADOW_COLLECTOR_SHADOW but when I use it in my shader I get

undefined variable "SA$$anonymous$$PLE_SHADOW_COLLECTOR_SHADOW"

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

21 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

Related Questions

Realtime Shadow Glitch [Unity Indie: Directional Light] 2 Answers

Shadow Support in Custom Shader 0 Answers

Edge outline & 2D shadow Shader for planar mesh 0 Answers

How to make shader outline without inner shadow? 0 Answers

Make this shader receive and cast shadow? Can anyone help me thanks! 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