This site is no longer active and is available for archival purposes only. Registration and login is disabled.

ZBuffer issues between ClassEDisplay->Render() and OpenGL


ZBuffer issues between ClassEDisplay->Render() and OpenGL

Postby Planet9Dave » Jan 13, 2009 @ 2:44am

Planet9Dave
pm Member
 
Posts: 12
Joined: Dec 11, 2008 @ 9:54pm
Location: San Francisco, CA


Postby edge » Jan 13, 2009 @ 2:11pm

EDGELIB: Cross-platform mobile development at your fingertips
http://www.edgelib.com
User avatar
edge
pm Member
 
Posts: 1180
Joined: Aug 22, 2005 @ 3:42pm
Location: The Netherlands


Postby Planet9Dave » Jan 13, 2009 @ 9:29pm

Planet9Dave
pm Member
 
Posts: 12
Joined: Dec 11, 2008 @ 9:54pm
Location: San Francisco, CA


Postby edge » Jan 14, 2009 @ 12:07pm

Hi Dave,

EDGELIB renders models as they are stored in the 3D surface structure, no sorting or depth testing is done when OpenGL is enabled. Perhaps the moving of the objects will cause the z-buffer to mess up, because they are all rendered in the same position?

A good test to see if OpenGL is enabled in EDGELIB is to make a call to Perspective2D, followed by a call to Blt.
EDGELIB: Cross-platform mobile development at your fingertips
http://www.edgelib.com
User avatar
edge
pm Member
 
Posts: 1180
Joined: Aug 22, 2005 @ 3:42pm
Location: The Netherlands


Postby Planet9Dave » Jan 14, 2009 @ 9:25pm

First, the models handled via EdgeLib are -not- rendered at the same position -- different values for the translation, rotation and scale are computed for each model.

Second, the EdgeLib-rendered models are rendered correctly with respect to each other, depth-wise: they correctly pass in front of and behind each other, the depth errors are -only- between objects rendered directly with OpenGL calls, and objects rendered with EdgeLib calls.

Third, I'm happy to try your test of calling Perspective2D() followed by Blt(), but what behavior should I see if OpenGL is enabled vs. disabled?

Thanks,
Dave
Planet9Dave
pm Member
 
Posts: 12
Joined: Dec 11, 2008 @ 9:54pm
Location: San Francisco, CA


Postby edge » Jan 15, 2009 @ 8:48am

Hi Dave,

After reading your post I think the test is not neccessary anymore, because you can drawn an OpenGL scene correctly with working OpenGL functions.

In your sample you enable depth testing with the glEnable(GL_DEPTH_TEST) command. Unfortunately, I can't see the code which renders the OpenGL scene without the EDGELIB calls.

Perhaps depth testing is disabled in that part of the code? Also, make sure the z-buffer is actually filled with values. This can be specified with the glDepthMask(GL_TRUE) call. Another cause could be that the coordinate system isn't the same?
EDGELIB: Cross-platform mobile development at your fingertips
http://www.edgelib.com
User avatar
edge
pm Member
 
Posts: 1180
Joined: Aug 22, 2005 @ 3:42pm
Location: The Netherlands


Postby Planet9Dave » Jan 15, 2009 @ 11:34pm

Planet9Dave
pm Member
 
Posts: 12
Joined: Dec 11, 2008 @ 9:54pm
Location: San Francisco, CA


Postby edge » Jan 16, 2009 @ 8:56am

EDGELIB: Cross-platform mobile development at your fingertips
http://www.edgelib.com
User avatar
edge
pm Member
 
Posts: 1180
Joined: Aug 22, 2005 @ 3:42pm
Location: The Netherlands


Postby Planet9Dave » Jan 23, 2009 @ 5:12am

Planet9Dave
pm Member
 
Posts: 12
Joined: Dec 11, 2008 @ 9:54pm
Location: San Francisco, CA


Postby edge » Jan 26, 2009 @ 10:14am

EDGELIB: Cross-platform mobile development at your fingertips
http://www.edgelib.com
User avatar
edge
pm Member
 
Posts: 1180
Joined: Aug 22, 2005 @ 3:42pm
Location: The Netherlands


Return to EDGELIB


Sort


Forum Description

Powerful and affordable C++ middleware solution covering true multi-platform 2D, 3D and network features for Apple iPhone, Windows Mobile, Symbian S60, UIQ, Linux and Windows desktop.

Moderator:

edge

Forum permissions

You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

cron