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 Zita · Feb 25, 2015 at 06:14 AM · shaderstencil

Strange issue with stencil buffer and draw order

Im drawing two quads, A which is opac black and B which is transparent black. They are using the same shader with a stencilbuffer and an alpha-parameter. I want B to not draw over A, which it is as you can see in the example image. I use the stencilbuffer to avoid drawing internally overlapping triangles. My real case is more complex than this example image but this is basically the problem I get. It doesnt matter what order Im drawing the quads in or which z-order they are in. B is always drawing over A. This seem almost impossible to me but apparently not. Anybody understand whats wrong here?

alt text

 Shader "My/GuideLine" {
       
     Properties {
         _Opacity ("Opacity", Range (0.0, 1.0)) = 1.0
         _MainTex ("Texture", 2D) = "white" {}
     }
   
     SubShader {
        Tags { "Queue" = "Transparent" }
         Pass {
       
             Stencil {
                 Ref 10
                 ReadMask 10
                 Comp NotEqual
                 Pass Replace
             }
           
             Blend SrcAlpha OneMinusSrcAlpha
             Lighting Off
             ZWrite Off
             Cull Off
 
             SetTexture [_MainTex]
             {
                 constantColor (1, 1, 1, [_Opacity])
                 combine texture * constant
             }
         }
     }
 }

 Graphics.DrawMesh(A.Mesh, _matrix, A.Material, 0, gameObject.camera, 0);
 Graphics.DrawMesh(B.Mesh, _matrix, B.Material, 0, gameObject.camera, 0);

UPDATE: The problem has been solved but for the record I didn't delete this post. It could be helpful for others.

The solution: It doesnt matter in what order the DrawMesh is called BUT in what order I have created my mesh-geometries! This was news to me.

problem.jpg (24.2 kB)
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

2 People are following this question.

avatar image avatar image

Related Questions

Is it possible to have multiple stencil reference values in one shader? 0 Answers

Help me understand stencil shader logic 1 Answer

Problem with Stencil shader and order 0 Answers

Stencil buffer appears to be displaced when running on android 0 Answers

UI/Default stencil buffer for only parent? 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