你好,欢迎来到电脑编程技巧与维护杂志社! 杂志社简介广告服务读者反馈编程社区  
合订本订阅
 
 
您的位置:杂志经典 / 图形图象处理与游戏编程
基于OpenGL的实时投票结果三维显示(八)
 

glEnable(GL_BLEND); //打开融合

        glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); //设置融合系数

            //在这里绘制相应的三维统计结果

        glDisable(GL_BLEND); //关闭融合

        glDisable(GL_STENCIL_TEST); //关闭蒙板测试

            //以融合方式显示地板

    最后,正常显示周围的效果画面和三维统计结果。

3.4动态阴影的实现

    使用OpenGL蒙板缓冲区实现平面阴影,关键是利用光源的矢量位置和地板的法线矢量,生成平面阴影投射矩阵。然后:

glEnable(GL_STENCIL_TEST); //启用蒙板测试

glStencilFunc(GL_LESS, 2, 0xffffffff); 

        glStencilOp(GL_REPLACE, GL_REPLACE, GL_REPLACE);

glEnable(GL_BLEND); //启动融合

        glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);

        glDisable(GL_LIGHTING); //关闭灯光

        glColor4f(0.0, 0.0, 0.0, 0.5); //设置阴影颜色

 

        glPushMatrix();

        glMultMatrixf((GLfloat *) floorShadow); //对显示画面乘上平面阴影投射矩阵

            //在这里,显示产生阴影的对象

        glPopMatrix();

        glDisable(GL_BLEND); //关闭融合

        glEnable(GL_LIGHTING); //打开灯光

glDisable(GL_STENCIL_TEST); //关闭蒙板测试

4 结语

    利用OpenGL技术,可以充分利用当前各种具有3D加速功能的显卡,使得开发的显示系统具有实时性和可移植性。文中实现的实时投票结果三维显示,给人以生动、直观的视觉效果。它可以应用到不同的领域,如:投票表决、数据可视、结果统计等。

  推荐精品文章

·2024年9月目录 
·2024年8月目录 
·2024年7月目录 
·2024年6月目录 
·2024年5月目录 
·2024年4月目录 
·2024年3月目录 
·2024年2月目录 
·2024年1月目录
·2023年12月目录
·2023年11月目录
·2023年10月目录
·2023年9月目录 
·2023年8月目录 

  联系方式
TEL:010-82561037
Fax: 010-82561614
QQ: 100164630
Mail:gaojian@comprg.com.cn

  友情链接
 
Copyright 2001-2010, www.comprg.com.cn, All Rights Reserved
京ICP备14022230号-1,电话/传真:010-82561037 82561614 ,Mail:gaojian@comprg.com.cn
地址:北京市海淀区远大路20号宝蓝大厦E座704,邮编:100089