Jump to content

  • Log In with Google      Sign In   
  • Create Account


2D Lighting - texture problem


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
1 reply to this topic

#1 nRo   Members   -  Reputation: 126

Like
0Likes
Like

Posted 06 September 2012 - 08:25 PM

Hi all!
I am trying to implement a lighting-shadow engine in my litte 2d java game.
I followed this tutorial.
http://www.gamedev.n...t-shadows-r2032
In contrary to the tutorial, I am using textures for my entites.
All my Z-values (Lights,Background and Entities) are 0.

[source lang="java"]function render(): clearZBuffer() fillZBuffer() foreach(light in lights) clearAlpha() glEnable(GL.GL_DEPTH_TEST); glDisable(GL.GL_BLEND); glColorMask(false, false, false, true); renderLightAlpha(light); glEnable(GL.GL_BLEND); glBlendFunc(GL.GL_ZERO, GL.GL_ONE_MINUS_SRC_ALPHA); renderShadows(light); glDisable(GL.GL_DEPTH_TEST); glEnable(GL.GL_DEPTH_TEST); glColorMask(true, true, true, false); renderBackgroundTexture(); if (light.DrawSource()) { renderLightSource(light); } renderEntities(); glDisable(GL.GL_DEPTH_TEST); glDisable(GL.GL_BLEND); function clearZBuffer() glClearDepth(1); glClearColor(0, 0, 0, 0); glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT|GL.GL_STENCIL_BUFFER_BIT); function fillZBuffer() glEnable(GL.GL_DEPTH_TEST); glDepthMask(true); glColorMask(false, false, false, false); renderBackgroundTexture(); renderEntities(); glDepthMask(false); glDisable(GL.GL_DEPTH_TEST);function clearAlpha() glColorMask(false, false, false, true); glClear(GL.GL_COLOR_BUFFER_BIT);[/source]
here is a picture of my output:
Posted Image
My Problem is, that the entity textures are not rendered correctly. It seems like black parts are not at all.
It works when I enable colorwriting in the fillZBuffer function:
Posted Image

Does anyone know how I can get the textures fully drawn without enabling colorwriting while filling the zBuffer?

Sponsor:

#2 nRo   Members   -  Reputation: 126

Like
0Likes
Like

Posted 07 September 2012 - 07:18 PM

It is working now. I forgot to enable writing to the depth buffer while clean it. And I had to enable GL_ALPHA_TEST to get the transparency of the textures while filling the depth buffer.

gl.glEnable ( GL2.GL_ALPHA_TEST ) ;
gl.glAlphaFunc ( GL.GL_GREATER, 0.1f) ;






Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS