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

      

  • 相关阅读:
    如何提取一个转录本的3'UTR区域的序列
    如何研究某个gene的ceRNA 网络
    ceRNA 调控机制
    利用circpedia 数据库探究circRNA的可变剪切
    R语言低级绘图函数-symbols
    R语言低级绘图函数-grid
    R语言低级绘图函数-axis
    R语言低级绘图函数-title
    R语言低级绘图函数-points
    二叉树和二叉查找树之间的区别
  • 原文地址:https://www.cnblogs.com/icmzn/p/5088431.html
Copyright © 2011-2022 走看看