首页 > 其他 > 详细

OpengGL中图形绘制先后问题

时间:2015-12-30 13:30:27      阅读:238      评论:0      收藏:0      [点我收藏+]

OpengGL中图形绘制先后问题

  在opengl中,场景绘制总有个先后的顺序,也有个程序先后的问题,图形程序在前在后,对最终的图形的影响如何?

(1)设置图中的点(蓝色)与线条(浅蓝)z分量都是0,如果绘制折线条程序在前,绘制点程序在后,则效果图形如下:

  效果:点在线上

  技术分享

    glPointSize(4.0f); 
    glColor3f(0.0, 0.0, 1.0);
    glBegin(GL_POINTS); 
    for(int i = 0;i < ctrlVetP.size(); i++)  
    { 
        glVertex3f(ctrlVetP[i].x, ctrlVetP[i].y, 0);
    } 
    glEnd(); 

    glLineWidth(1.5f);
    glColor3f(0.0,1.0,1.0); 
    glBegin(GL_LINE_STRIP); 
    for(int i = 0;i < ctrlVetP.size(); i++)  
    { 
        glVertex3f(ctrlVetP[i].x, ctrlVetP[i].y, 0);
    } 
    glEnd(); 

(2)设置图中的点(蓝色)与线条(浅蓝)z分量都是0,如果绘制点程序在前,绘制折线条程序在后,则效果图形如下:

  效果:线在点之上

  技术分享

glLineWidth(1.5f);
    glColor3f(0.0,1.0,1.0); 
    glBegin(GL_LINE_STRIP); 
    for(int i = 0;i < ctrlVetP.size(); i++)  
    { 
        glVertex3f(ctrlVetP[i].x, ctrlVetP[i].y, 0);
    } 
    glEnd(); 

    glPointSize(4.0f); 
    glColor3f(0.0, 0.0, 1.0);
    glBegin(GL_POINTS); 
    for(int i = 0;i < ctrlVetP.size(); i++)  
    { 
        glVertex3f(ctrlVetP[i].x, ctrlVetP[i].y, 0);
    } 
    glEnd(); 

  总结:

  (可能)Opengl在绘制程序上,统一深度的图形先绘制的显示在最前面,(即离屏幕最近的位置)后绘制的,被前面的遮挡,采用“层次”,即后面的深度总是最大的,(因为深度越大,离屏幕距离越近)

  

OpengGL中图形绘制先后问题

原文:http://www.cnblogs.com/icmzn/p/5088431.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!