Quantcast
Channel: Questions in topic: "post processing"
Viewing all articles
Browse latest Browse all 713

How to apply a shader on a part of the scene ?

$
0
0
Hello everyone, I am encountering some issues while trying to apply a shader on some gameobject of the scene. Here is what I want to do : I have a scene with a point cloud as a gameobject on a layer (let's say layerA) and other objects without layer. I would like to apply my shader (which intensify the edges of the objects) only on objects which are part of layerA. In order to do this, I instantiate two cameras and set their cullingMask to "layerA" and "everything except layerA". Then I apply my shader on the first camera view and try to render the view with the shader and the other camera view. void OnRenderImage(RenderTexture source, RenderTexture destination) { int layerValue = 10; Camera cam2 = camera; camera.cullingMask = ~(1 << layerValue); cam2.cullingMask = (1 << layerValue); camera.depth = cam2.depth + 1; cam2.clearFlags = CameraClearFlags.Depth; Material mat = material; // shader Graphics.Blit(source, destination, mat, -1); } My problem is that after this process, my gameobjects with no layer are behind my point cloud. Here is a before/after picture : Before ![alt text][1] After ![alt text][2] You can see that my cube disappear behind the pillar whereas it should stay like in the 1st picture. Is there a way to apply my effect only on my point cloud while not changing the positionning of my scene ? I hope I have been clear enough. Thanks in advance. [1]: /storage/temp/102756-pcl-before-shader.jpg [2]: /storage/temp/102758-pcl-after-shader.jpg

Viewing all articles
Browse latest Browse all 713

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>