Jump to content
  • Advertisement
Sign in to follow this  
EternityZA

OpenGL why is my polygons "tearing"?

This topic is 3909 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

hey. im a java developer but i just started using opengl via the jogl wrapper, after reading the first 10 lessons of the nehe tutorials i decided that the time is right to start coding my own engine with my own file format for storing my models and textures. ok ok ok bad idea i know but after strugling for some time i managed to create a basic engine that loads model files from one directory and JPEG's from another. the model files contains sets of coordinates for each polygon and RGB values for each point and a optional texture name for the entire polygon, it can also store more than one set of RGB and texture values for each polygon so my program can later decide what "skin" to use. i made a ModelHandler class that manages all my models and contains methods to make models from the base models that i loaded from my model files. these models references a base model and contains a xyz coordinate, a xyz angle (direction its facing) and a scale which determines how big it is in relation to the base model. so far my engine can rotate these models around there origin and translate them. my engine translates and rotates the camera with input from the keybord ok.. so thats a roughe summary of what i did so far.. the things i did might be very wrong and unoptimized. but im happy that its working so far but theres just one thing thats REALY bothering me and thats the fact that when my camera gets up close to any of my models and i move around some more i get these nasty horizontal lines "tearing" through my polygons. wheather the polygon is filled with a plain color or with a texture doesnt matter. i dont know if its maybe because of some fundemental mistake im making or just some minor detail im missing. id realy apreaciate help on this matter. anyway here's some screenshots of my engine so far maybe it can help, http://img134.imageshack.us/img134/7578/73651535ut9.jpg http://img134.imageshack.us/img134/8827/33368515de1.jpg http://img412.imageshack.us/img412/47/59183502po0.jpg http://img218.imageshack.us/img218/4564/26405620rd0.jpg so far i've made a Square model that contains 1 "skin" (red and white ying-yang), a cube model that contains 5 different "skins" and a wall model that contains 2 different "skins" (the one with the stone tile texture all over and the one with the asian like decorations) i apologize for any bad terminology used.

Share this post


Link to post
Share on other sites
Advertisement
I don't see any evidence of what's commonly known as tearing in your images, however, what you describe does seem to fit the bill as tearing. Basically, tearing results from not syncing to the display on the vertical retrace period. Not syncing basically means that, during the period that the screen is being drawn, several back-buffers complete rendering and are flipped to the screen. This means that the upper part of the screen is displaying frame n, and the lower part is displaying frame n+1. If the camera or objects move between frames, the frames are different and introduce a visual incongruity; this is tearing.

To fix it, enable vertical syncing. I don't know specifically how to do it in your API, but search the docs for vertical syncing for relevant details. That should fix the problem.

Share this post


Link to post
Share on other sites
unfortenetly the screenshots i took doesnt seem to show the problem. but im 90% sure that what u just explained is relevent to my project so i should to able to sort this by googling up the term

thnx

Share this post


Link to post
Share on other sites
Quote:
Original post by EternityZA
unfortenetly the screenshots i took doesnt seem to show the problem. but im 90% sure that what u just explained is relevent to my project so i should to able to sort this by googling up the term
thnx

That simply confirms the problem. It is the lack of vertical sync. Reason it's not showing up in screenshots is because your screenshot comes from memory, where the entire frame is drawn. It's just that the screen is still displaying a portion of the last frame on it.

You can usually force it on in your video card drivers, or better yet, programmatically turn on like V-man suggested using the WGL_EXT_swap_control extension.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!