原文:http://blog.csdn.net/tmljs1988/article/details/7562926

可以运行

1.       HUD流程图:

完整源代码如下:

/*OSG中的HUD,文字总是显示在最前面*/

#include <osgDB/ReadFile>

#include <osgViewer/Viewer>

#include <osg/Geode>

#include <osg/Depth>

#include <osg/CameraNode>

#include <osgText/Text>

#pragma comment( lib, "osgd.lib"); //.在Debug版本下的库名都加d,如"osgd.lib"

#pragma comment( lib, "osgDBd.lib")

#pragma comment( lib, "osgViewerd.lib");

#pragma comment( lib, "osgTextd.lib");

osg::Node* createHUD()

{

//文字

osgText::Text* text = new osgText::Text;

//设置字体

std::string caiyun("fonts /STCAIYUN.TTF");//此处设置的是汉字字体

text->setFont(caiyun);

//设置文字显示的位置

osg::Vec3 position(150.0f,500.0f,0.0f);

text->setPosition(position);

text->setColor( osg::Vec4( 1, 1, 0, 1));

text->setText(L"osg中国官网网站www.osgChina.org");//设置显示的文字

//几何体节点

osg::Geode* geode = new osg::Geode();

geode->addDrawable( text );//将文字Text作这drawable加入到Geode节点中

//设置状态

osg::StateSet* stateset = geode->getOrCreateStateSet();

stateset->setMode(GL_LIGHTING,osg::StateAttribute::OFF);//关闭灯光

stateset->setMode(GL_DEPTH_TEST,osg::StateAttribute::OFF);//关闭深度测试

//打开GL_BLEND混合模式(以保证Alpha纹理正确)

stateset->setMode(GL_BLEND,osg::StateAttribute::ON);

//相机

osg::Camera* camera = new osg::Camera;

//设置透视矩阵

camera->setProjectionMatrix(osg::Matrix::ortho2D(0,600,0,600));//正交投影

//设置绝对参考坐标系,确保视图矩阵不会被上级节点的变换矩阵影响

camera->setReferenceFrame(osg::Transform::ABSOLUTE_RF);

//视图矩阵为默认的

camera->setViewMatrix(osg::Matrix::identity());

//设置背景为透明,否则的话可以设置ClearColor

camera->setClearMask(GL_DEPTH_BUFFER_BIT);

camera->setAllowEventFocus( false);//不响应事件,始终得不到焦点

//设置渲染顺序,必须在最后渲染

camera->setRenderOrder(osg::CameraNode::POST_RENDER);

camera->addChild(geode);//将要显示的Geode节点加入到相机

return camera;

};

int main( int argc, char **argv )

{

osgViewer::Viewer viewer;

osg::ref_ptr<osg::Node> model = osgDB::readNodeFile("fountain.osg");

osg::ref_ptr<osg::Group> root= new osg::Group;

root->addChild( model.get());//加入某个模型

root->addChild(createHUD());//把HUD文字的相机加入到根节点下

viewer.setSceneData( root.get());

viewer.realize();

viewer.run() ;

return 0;

}

OSG的HUD抬头文字显示的更多相关文章

  1. php 两段文本对比,不同的文字显示高亮

    php 两段文本对比,不同的文字显示高亮[下面这个只能区分错误后面的..]   <?php $str1 ="MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwgg ...

  2. 完美解决 向UILable 文字最后插入N张图片,支持向限制行数的UILable 最后一行插入,多余文字显示...

    效果: ====直接上代码吧=== // // UILabel+StringFrame.h // QYER // // Created by qyer on 15/3/19. // Copyright ...

  3. j-query应用---鼠标悬停不同文字显示不同背景图片banner动画

    源代码部分:注意事项:样式表的引用的路径要一致. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" ...

  4. Android--TextView 文字显示和修改

    一. 新建一个Activity 和 Layout 首先在layout文件夹中新建一个activity_main.xml,在新建工程的时候一般默认会新建此xml文件,修改其代码如下: <Relat ...

  5. IE6 IE7下文字显示竖排的解决办法

    IE下文字显示竖排的解决办法: white-space:nowrap;

  6. CSS - 实现文字显示过长时用省略

    一.添加-文字显示超出范围时隐藏属性 overflow:hidden; 二.添加-超出文字省略号属性 text-overflow:ellipsis; 三.添加-文字不换行属性 white-space: ...

  7. Qt添加窗口背景图片、Label图片显示、、Label文字显示

    一.添加窗口背景图片 重写MainWindow绘制事件 void MainWindow::paintEvent(QPaintEvent *event) { QPainter painter(this) ...

  8. QTbutton设置背景颜色和文字显示位置设置

    QPushButton * pQBtn = new QPushButton( cBuff, this ); pQBtn->setStyleSheet("text-align: left ...

  9. css控制竖直文字显示

    假如有一天,你把水平文字看腻味了...... 我建议你不妨试试垂直文字显示,就像这样: 我 是 竖 直 显 示 的 : 哈哈! 言归正传,怎么把一段话,垂直显示呢? 方法1: //把下面代码另存为ht ...

随机推荐

  1. 60个响应式的Web设计教程–能够手机访问!

    想要学习响应式[responsive:屏幕自适应的效果]的网页设计和开发技术?在这个超大的收藏集合中,我想你定会找到想要开始学习的响应式网页设计教程. 面对超过1亿的手机互联网用户,开发专业和用户友好 ...

  2. 服务器多块磁盘 ,同时磁盘类型混合(SSD+STAT+SAS)

    服务器多块磁盘 ,同时磁盘类型混合(SSD+STAT+SAS)

  3. InfiniBand

    Mellanox InfiniBand卡线缆性能延迟性测试程序源码,C源码实现操作mysql库,实现简单的增删改查,代码当前用的是增插入20000条数据 具体见源码 #include <mysq ...

  4. django1.77+mod_wsgi+python2.79+apache2.24 在阿里云centos部署攻略

    心平气和的记录一下今天 踩的坑以防万一 以后还踩 首先我今天的平台是在 阿里云上的一台纯净版的 centos6.5 64位主机上进行的 首先装python2.7 去官网下载python2.7安装包 然 ...

  5. 第二百零二天 how can I 坚持

    最近增肥好明显,胃口好没办法,只要肚子起不来就行了.加油. 其实挺幸福,想吃啥吃啥. 鱼会不会被冻死,买了加热棒不想用,该咋办呢. 股市又跌没了一千多,还是不够睿智,不够淡定. 人活这一辈子,到底最想 ...

  6. Django 1.6 最佳实践: 如何正确使用 Signal(转)

    原文:http://www.weiguda.com/blog/38/ 如何正确的使用signal: 简单回答是: 在其他方法无法使用的情况下, 才最后考虑使用signal. 因为新的django开发人 ...

  7. UVA 624 (0 1背包 + 打印路径)

    #include<stdio.h> #include<string.h> #include<stdlib.h> #include<ctype.h> #i ...

  8. 用PyInstaller把Python代码打包成单个独立的exe可执行文件

    之前就想要把自己的BlogsToWordpress打开成exe了.一直没去弄. 又看到有人提到python打开成exe的问题. 所以打算现在就去试试. 注:此处之所有选用BlogsToWordpres ...

  9. HDU 1561The more, The Better(树形DP)

    HDU 1561  The more, The Better 题目大意就不说了 直接DP[i][j]表示i为跟节点的子树上攻克j个城堡的所能获得的最多宝物的数量 DP[fa][j] = MAX{DP[ ...

  10. 安装、设置与启动MySql5.1.30绿色版的方法

    1.解压 mysql-noinstall-5.1.30-win32.zip(下载地址http://dev.mysql.com/downloads/mysql/5.1.html) 2.在 F 盘建立目录 ...