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
0
Question by RyanSpicer · Jun 18, 2015 at 07:15 PM · shaderrendertexturedepth

Compositing two RenderTextures based on depth

I want to achieve a "L4D2 see other players through the walls" shader effect (not for that purpose, but it's similar enough).

I have two cameras with identical transform and parameters, but different culling layers.

Camera 1 renders the scene (everything but characters). Camera 2 renders only the characters (and is disabled).

Camera 1 has a C# script that uses Camera1's OnImageRendered to render Camera2 to a RenderTexture, and then cribs Overlay / fragAlphaBlend from the Unity built-in Overlay image effect to composite the two RenderTextures using Graphics.blit.

At this point, I can see the entire scene, but the characters are always drawn on top of any foreground scene geometry, since the fragAlphaBlend shader does not know about either RenderTexture's depth/zbuffer.

I'd like to compare camera1 rendertexture depth to camera2 rendertexture depth, and blend the images differently if camera1 geometry is closer to the camera than the camera2 elements. I see that I can get the current camera's depth buffer in a shader using _CameraDepthTexture, but that doesn't help because by the time I'm compositing the two images in Graphics.blit, neither camera is current.

Any suggestions? The only option I can think of that's sure to work is explicitly rendering depth passes for both cameras..

To make things even more fun, I'm currently on Unity 4.6.2, but have ambitions to upgrade to 5.1 soon, so I'd like to not shoot myself in the foot re: forward compatibility..

Comment
Add comment · Show 1
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 Yomtidom · Feb 12, 2017 at 08:57 AM 0
Share

@RyanSpicer did you find a solution?

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

3 People are following this question.

avatar image avatar image avatar image

Related Questions

Render scene depth to a texture 4 Answers

Multiple RenderTexture and depth buffer 1 Answer

How to get the depth values of the camera view? 1 Answer

Normals from Depth texture distorted 2 Answers

Render depth to RenderTexture and calculate world position 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