zoukankan      html  css  js  c++  java
  • 在meshLab的3D场景中绘制2D透明信息面板

    具体的方法是将投影方式切换为平行投影,然后进行2D绘制,最后将其映射到二维屏幕之上。

    注:2D透明场景信息面板即为下图3D绘图区下方紫色透明区域

    核心代码如下:

    void GLArea::displayInfo()
    {
    	// Enter in 2D screen Mode again
    	glMatrixMode(GL_PROJECTION);
    	glPushMatrix();
    	glLoadIdentity();
    	glOrtho(-1,1,-1,1,-1,1);
    	glMatrixMode(GL_MODELVIEW);
    	glPushMatrix();
    	glLoadIdentity();
    	glPushAttrib(GL_ENABLE_BIT);
    	glDisable(GL_DEPTH_TEST);
    	glDisable(GL_LIGHTING);
    	glDisable(GL_TEXTURE_2D);
    	glEnable(GL_BLEND);
    
    	glBlendFunc(GL_ONE,GL_SRC_ALPHA);
            // set display info pane color
        	glColor(logAreaColor);
    
            //  barHeight is the height of pane
    	glBegin(GL_QUADS);
        glVertex2f(-1.f,barHeight);     glVertex2f(-1.f,-1.f);
        glVertex2f( 1.f,-1.f);          glVertex2f( 1.f,barHeight);
    	glEnd();
            // Render text is dismiss
    
    	// Closing 2D
    	glPopAttrib();
    	glPopMatrix(); // restore modelview
    	glMatrixMode(GL_PROJECTION);
    	glPopMatrix();
    	glMatrixMode(GL_MODELVIEW);
    
    }
    
    ----------------

    希望对你有用!  Good Luck.

  • 相关阅读:
    django实现github第三方本地登录
    django扩展User模型(model),profile
    WSGI
    Linux查看配置文件中未被注释的有效配置行
    virsh 命令
    qemu-img命令
    python logging
    oslo.messaging
    集成kafka的身份认证(SASL/PLAIN)到kubernets环境中
    Helm基础知识
  • 原文地址:https://www.cnblogs.com/kekec/p/2092623.html
Copyright © 2011-2022 走看看