Mailing Lists: Apple Mailing Lists

Image of Mac OS face in stamp
 
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

rendering texture to FBO Stencil using EXT_packed_depth_stencil




Hi

Hi I'm drawing a textured quad into to the stencil buffer, the problem is when we later test against the buffer all fragments fail

If we draw a white quad instead, the stencils tests work as expected

I'm working inside an FBO, to which we've attached 24-bit depth / 8- bit stencil texture using EXT_packed_depth_stencil

I'm new to GL_STENCIL_TEST, is it feasible to draw a texture to the stencil buffer like this?

code below

Cheers

Nick


/* create an 24-bit depth + 8-bit stencil texture */
glGenTextures(1, &_glstencil[index]);
glBindTexture(GL_TEXTURE_RECTANGLE_ARB, _glstencil[index]);
glTexImage2D(GL_TEXTURE_RECTANGLE_ARB, 0, GL_DEPTH24_STENCIL8_EXT, width, height, 0, GL_DEPTH_STENCIL_EXT, GL_UNSIGNED_INT_24_8_EXT, NULL);

/* bind depth + stencil to fbo */
glFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_DEPTH_ATTACHMENT_EXT, GL_TEXTURE_RECTANGLE_ARB , _glstencil [index], 0);
glFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_STENCIL_ATTACHMENT_EXT, GL_TEXTURE_RECTANGLE_ARB , _glstencil [index], 0);
glCheckFBO();



...


glClear(GL_STENCIL_BUFFER_BIT); glClearStencil(0.0f); glEnable(GL_STENCIL_TEST); glStencilFunc(GL_NEVER, 0x0, 0x0); glStencilOp(GL_INCR, GL_INCR, GL_INCR);

// works
glColor4f(1, 1, 1, 1);
glBegin(GL_QUADS);
glVertex2f(minX+200, minY+200);			
glVertex2f(maxX-200, minY+200);			
glVertex2f(maxX-200, maxY-200);			
glVertex2f(minX+200, maxY-200);	
glEnd();

// fails ///////////////////////////////////////////////
glEnable(GL_TEXTURE_RECTANGLE_ARB);
glBindTexture(GL_TEXTURE_RECTANGLE_ARB, stencil);
glBegin(GL_QUADS);		
glTexCoord2f(minX, minY);		
glVertex2f(minX, minY);				
glTexCoord2f(maxX, minY);			
glVertex2f(maxX, minY);			
glTexCoord2f(maxX, maxY);			
glVertex2f(maxX, maxY);		
glTexCoord2f(minX, maxY);		
glVertex2f(minX, maxY);			
glEnd();
///////////////////////////////////////////////////////

glStencilFunc(GL_NOTEQUAL, 0x1, 0x1);
glStencilOp(GL_KEEP, GL_KEEP, GL_KEEP);

glEnable(GL_TEXTURE_RECTANGLE_ARB);
glBindTexture(GL_TEXTURE_RECTANGLE_ARB, texture);
glBegin(GL_QUADS);		
glTexCoord2f(minX, minY);		
glVertex2f(minX, minY);				
glTexCoord2f(maxX, minY);			
glVertex2f(maxX, minY);			
glTexCoord2f(maxX, maxY);			
glVertex2f(maxX, maxY);		
glTexCoord2f(minX, maxY);		
glVertex2f(minX, maxY);			
glEnd();

glDisable(GL_TEXTURE_RECTANGLE_ARB);
glDisable(GL_STENCIL_TEST);
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Mac-opengl mailing list      (email@hidden)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/mac-opengl/email@hidden

This email sent to email@hidden


Visit the Apple Store online or at retail locations.
1-800-MY-APPLE

Contact Apple | Terms of Use | Privacy Policy

Copyright © 2007 Apple Inc. All rights reserved.