
osg
文章平均质量分 68
zhuqinglu
这个作者很懒,什么都没留下…
展开
-
osg备忘(大杂烩)
角度转换函数 osg::inDegrees(30.0f) 例:rootnode->setMatrix(osg::Matrix::rotate(osg::inDegrees(30.0f),1.0f,0.0f,0.0f)); 同函数inline float DegreesToRadians(float angle) { return angle*(float)PI/180.0f; }原创 2007-09-10 18:43:00 · 2537 阅读 · 0 评论 -
一个简单的osg控件开发例子
一个简单的osg控件开发例子作者:boqing经常需要在对话框上添加osg的浏览功能,一开始是仿照osgviewerMFC的例子去写,可是每次在对话框上添加此功能的时候都要重复复制很多处代码,且位置和大小控制也不是很方便。因此写了个简单的OSG Active控件解决此问题。 开发工具:vc2005OSG版本:osg2.2 具体开发步骤:一 建立Active工程项目类原创 2008-03-10 10:47:00 · 7942 阅读 · 8 评论 -
生成osg图像并保存
生成osg图像并保存#include "osgViewer/Viewer"#include "osgDB/WriteFile"#include "osgDB/ReadFile"#include "osgGA/TrackballManipulator"#include void main(){ ///////////////////////////////原创 2008-03-10 11:17:00 · 7608 阅读 · 6 评论 -
HUD抬头显示
HUD抬头显示基本方法:1) 创建一个camera2) 设置camera的投影矩阵为osg::Matrix::ortho2D(0,width,0,height)3) 设置camera的坐标系为绝对坐标系4) 设置camera的视图矩阵为单位矩阵5) 设置camera的清除掩码只是深度缓存6) 设置camera的渲染顺序是最后渲染7) 关闭光照和深度测试原创 2007-12-06 16:22:00 · 5004 阅读 · 0 评论 -
自定义窗口大小并且让定义在自定义窗口的什么位置显示,窗口可以拖动。
自定义窗口大小并且让定义在自定义窗口的什么位置显示,窗口可以拖动。#include #include #include #include #include void main( ){ osg::ref_ptrosg::Node> loadedModel = osgDB::readNodeFile("cow.osg"); osgViewer:原创 2007-12-06 16:21:00 · 3528 阅读 · 0 评论 -
osgViewer::Viewer详解
osgViewer::Viewer详解 l 构造函数Viewer::Viewer(osg::ArgumentParser& arguments)可以做一些初始化工作,比如当读取参数--clear-color时,可以设置背景颜色。详细请参考源码。建议不使用。l 函数setThreadingModel设置线程模型SingleThreaded - 单CPU原创 2007-12-06 16:20:00 · 19256 阅读 · 6 评论 -
osgGA::AnimationPathManipulator的使用(实现固定路径漫游)
osgGA::AnimationPathManipulator的使用(实现固定路径漫游)首先定义AnimationPathManipulato操纵器,在构造函数中输入路径文件名字,然后将其加入键盘选择器(keyswitchManipulator)。 l 可以直接设置操纵器 viewer.setCameraManipulator(apm.get()); l原创 2007-12-06 16:19:00 · 5540 阅读 · 0 评论 -
以线框的方式画一个节点的最小BoundingBox
以线框的方式画一个节点的最小BoundingBoxvoid BoxLine::Set(osg::BoundingBox &box){ float lengthX=box.xMax()-box.xMin(); float lengthY=box.yMax()-box.yMin(); float lengthZ=box.zMax()-box.zMin();原创 2007-12-06 16:18:00 · 4464 阅读 · 0 评论 -
画一个始终对着屏幕的包围正方形
画一个始终对着屏幕的包围正方形思路:给定中心和包围球的半径radius,画出一个边长为2* radius的正方形边框,并且这个正方形边框始终对着屏幕,变换节点选择osg::AutoTransform,osg::AutoTransform继承自osg::Transform,其主要功能是使其孩子能自动缩放或者选择,从与而屏幕坐标系联系在一起,利用setAutoRotateMod设置自动选择,可选变原创 2007-12-06 16:17:00 · 2590 阅读 · 0 评论 -
设置PolytopeIntersector需要注意的问题
设置PolytopeIntersector需要注意的问题 代码下载地址: 截图: 做了一个PolytopeIntersector的例子,如果飞机飞入和飞离这个多面体的时候可以正确的返回飞机是不是在区域内 关于有些节点不在NodePah里的问题 我加载了一个osg自带的模型cessna.osg,给他设置了名字"cessna",可是当它进入多面体后Node原创 2007-12-03 09:50:00 · 6430 阅读 · 5 评论 -
数据库的应用——直接从内存中读取osg节点
数据库的应用——直接从内存中读取osg节点目的:要从数据库中读取节点数据到osg。 一开始的方法是这样的,每当我要添加一个数据库中的节点数据时,首先把它读取到内存中,然后写入一个文件,最后再次从文件中用osg的osgDB::readNodeFile()读取,这个方法是可行的,但是却很糟糕。我的初衷是不要经过文件转换。 现在问题解决了,多亏了osg::ReaderWriter提供原创 2007-12-03 16:41:00 · 3845 阅读 · 1 评论 -
解决osg路径与文件名中的中文字符问题
解决osg路径与文件名中的中文字符问题作者:【☆★□■】感谢:Hesicong,馒头神,礼拜六,宁波之魔,怀沙等人给与帮助意见整理:boqing 在打开或者保存一个osg模型的时候,经常遇到中文路径或者中文文件名的问题,此时会提示无法打开或者保存。当然,我们可以完全避免它,直接不使用中文字符,可是客户是苛刻的,有些小问题是必须解决的。 假设你想把node节点保存到E盘下原创 2008-01-24 20:15:00 · 5117 阅读 · 0 评论 -
Examples osgclip注释
详细源码见osg例子 osgclip,这里只分析decorate_with_clip_node函数 这一段的功能主要是绘制线型的节点 //创建根节点 osg::Group* rootnode = new osg::Group; //创建状态集 osg::StateSet* stateset = new osg::StateSet; //原创 2007-09-13 17:25:00 · 2758 阅读 · 0 评论 -
添加二进制文件到数据库示例
添加二进制文件到数据库示例第一步:读取文件到类成员变量m_pFileBufferBOOL CDLGAddModel::Load3DDataFile(CString fileName){ CFile file; if( !file.Open( fileName, CFile::modeRead) ) return FALSE; m_file原创 2008-03-10 11:14:00 · 1426 阅读 · 0 评论