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 DkSker · Oct 25, 2021 at 10:28 AM · 2dshaderrtsfog of war

How to show render texture in a 2D game (Fog of War).

I am making a RTS game, and I am currently implementing a Fog of War system. I set it up so I currently have 2 render textures, and these render textures will update when any of the Units or Structures are in the scene and moving (I gave each unit/structure a FOV GameObject and gave it a sphere mesh renderer + filter). I also have 2 cameras that represents the "UnexploredArea" and "ExploredArea", and the size is set to fit the entire map. So basically, my idea is to have unexplored area to be completely black, and explored but currently not in vision area to be semi black and the area within units vision will be completely white. The render textures updates (I can see it update in the editor at runtime) , however, I saw some articles and they said to use 2 projectors to project the render textures onto the screen, the problem is his tutorial is for a 3D game, whereas mine is a 2D game. I believe that using the projector for my game wouldn't work because my game is 2D. I have also tried moving the projectors on the Z axis and went into 3D mode to make sure the projector is 'projecting' onto my map/tilemap. But no luck there. I was wondering if there is any way I can get my render textures onto the screen or maybe I used my projectors wrong. For both my projectors, I have a material with a custom shader script (see below) on it:

 Shader "Custom/FogProjection"
 {
     Properties
     {
         _PrevTexture("Previous Texture", 2D) = "white" {}
         _CurrTexture("Current Texture", 2D) = "white" {}
         _Color("Color", Color) = (0, 0, 0, 0)
         _Blend("Blend", Float) = 0
     }
         SubShader
         {
             Tags { "Queue" = "Transparent+100" } // to cover other transparent non-z-write things
 
             Pass
             {
                 ZWrite Off
                 Blend SrcAlpha OneMinusSrcAlpha
                 ZTest Equal
 
                 CGPROGRAM
                 #pragma vertex vert
                 #pragma fragment frag
 
                 #include "UnityCG.cginc"
 
                 struct appdata
                 {
                     float4 vertex : POSITION;
                     float4 uv : TEXCOORD0;
                 };
 
                 struct v2f
                 {
                     float4 uv : TEXCOORD0;
                     float4 vertex : SV_POSITION;
                 };
 
 
                 float4x4 unity_Projector;
                 sampler2D _CurrTexture;
                 sampler2D _PrevTexture;
                 fixed4 _Color;
                 float _Blend;
 
                 v2f vert(appdata v)
                 {
                     v2f o;
                     o.vertex = UnityObjectToClipPos(v.vertex);
                     o.uv = mul(unity_Projector, v.vertex);
                     return o;
                 }
 
                 fixed4 frag(v2f i) : SV_Target
                 {
                     float aPrev = tex2Dproj(_PrevTexture, i.uv).a;
                     float aCurr = tex2Dproj(_CurrTexture, i.uv).a;
 
                     fixed a = lerp(aPrev, aCurr, _Blend);
 
                     // weird things happen to minimap if alpha value gets negative
                     _Color.a = max(0, _Color.a - a);
                     return _Color;
                 }
                 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

1 Reply

· Add your reply
  • Sort: 
avatar image
0

Answer by ArtOfProgramming · Oct 25, 2021 at 10:34 AM

I think you can look into spritemasks for this to solve it. not sure but I think it will help you find the solution for it.

Comment
Add comment · Show 3 · 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 DkSker · Oct 25, 2021 at 11:51 AM 0
Share

Can you be a little bit more specific? I will look into this though, thank you.

avatar image ArtOfProgramming DkSker · Oct 25, 2021 at 03:25 PM 0
Share

well with spritemasks you can like reveal an area. for example that your units have explored. this will require to change the spritemask at runtime but I think it can be a solid solution if done right

avatar image DkSker ArtOfProgramming · Oct 25, 2021 at 03:29 PM 0
Share

Oh I get it, however, currently the problem is, I have 2 render textures set up, where both shows a black area (currently unexplored) and pink area (explored or is currently exploring) , these textures will update on runtime, now the problem is, how do I get these two shaders onto the game scene, meaning, how do I make it so, the black area are completely black, and the pink areas are either half black or no vision block.

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

349 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 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

RTS fog of war texture remapping shader,Fog of war plane texture remapping shader HDRP 0 Answers

Shaders making raw image invisible 0 Answers

Fog of War Explored Area Gray out / un-updated areas 0 Answers

Unity 2D blur lit shader 0 Answers

Outline set of tiled sprites 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