zoukankan      html  css  js  c++  java
  • OpengGL中图形绘制先后问题

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

      

  • 相关阅读:
    汽车常用的ECU芯片
    Semaphore 和 Mutex
    C语言中结构体 自引用 和 相互引用
    __ARM_PROFILE_M__ __CORE__ __ARMVFP__ __LITTLE_ENDIAN__
    Cortex-M3 Context Switching
    CORTEX -M3 : Registers in depth
    IAR USING PRE- AND POST-BUILD ACTIONS
    IAR EWARM Argument variables $PROJ_DIR$ $TOOLKIT_DIR$
    SQLSERVER一些公用DLL的作用解释
    SQLSERVER性能计数器的简单剖析
  • 原文地址:https://www.cnblogs.com/icmzn/p/5088431.html
Copyright © 2011-2022 走看看