osg布告板技术(Billboard)
来源:互联网 发布:17%退税率出口退税算法 编辑:程序博客网 时间:2024/06/10 13:12
公告牌技术,即billboard技术,在3D游戏中有着广泛的应用.它的本质就是用预先做好的几幅
位图来代替3D物体,极大地节省资源和提高速度.仔细观察<<魔法门>>系列游戏,它的精灵,树木,物
品都是二维图象,但由于它始终朝向观察者,你根本看不到它"扁"的一面,所以给人一种立体的感觉.
这种技术最大的优点是快.试想一个多边形构成的3D精灵,至少百余个多边形,而用billboard技术,
只需处理两个多边形,优势不言而喻.其他3D游戏的爆炸效果,<<极品飞车>>中路旁的树木,都使用了
该技术.
使用方法:
- 创建公告牌osg::Billboard* center = new osg::Billboard();
- 设置旋转模式,可选如下
POINT_ROT_EYE :始终朝向眼睛 POINT_ROT_WORLD : AXIAL_ROT:绕坐标轴center->setMode(osg::Billboard::POINT_ROT_WORLD);
如果是坐标轴x_arrow->setMode(osg::Billboard::AXIAL_ROT);
//以x轴为旋转轴
x_arrow->setAxis(osg::Vec3(1.0f,0.0f,0.0f));
在本例中createSquare创建了一个贴纹理的正方形。
关于纹理以后会进行研究。
createAxis函数创建了一个坐标轴,像Texture2D、LineWidth都是状态属性,对应于OpenGL的状态集,
应该去设置StateSet。
Billboard继承Geode,可以添加drawable,因此,像DrawPixels、Geometry、ShapeDrawable、TextBase
等都可以添加其中。
Billboard中也有
enum Mode {
POINT_ROT_EYE,
POINT_ROT_WORLD,
AXIAL_ROT
};这三种模式,用于设置节点朝向。
这里不得不比较一下AutoTransform和Billboard的区别:
BillBoard继承Geode,因此它可以实现一些轻量级的朝向屏幕,例如树可以通过这种方式实现。
AutoTransform继承Group,实现的功能比Billboard要多,更灵活,可以根据视点到节点的距离自动进行
节点缩放。
因此说AutoTransform是Billboard更为灵活的一种替代物。
因为osgText::Text也同样有朝向屏幕的功能,因此不建议text和Billboard和AutoTransform一起使用。
下面是从网上找的的关于Billboard和AutoTransform的说明:
osg::AutoTransform is an alternative to osg::Billboard.
AutoTransform是Billboard的另外一种选择。
AutoTransform is a derived form of Transform that automatically scales or rotates to keep
its children aligned with screen coordinates.
AutoTransform继承Transform,通过自动缩放和旋转来保持子节点对齐屏幕坐标。
Billboard is a derived form of Geode that orients its osg::Drawable children to face the
eye point.
Billboard继承Geode,能够自动使Drawable对着视点。
- osg布告板技术(Billboard)
- 布告板技术创建树木
- 每日一练(四) Billboard (布告牌)
- osg::Billboard
- unity3d Billboard(公告板技术)
- XNA Billboard(公告板技术)
- osg::BillBoard的用法
- Ogre嵌入Qt:布告板显示中文(补充)
- OGRE布告板与粒子
- OGRE布告板与粒子
- 如何向场景中添加布告板
- unity3d 公告板(billboard)
- Billboard技术浅析
- Billboard技术浅析
- 移动模型后面跟随轨迹,模型和布告板之间的连线、布告板显示中文
- billboard公告板技术与perlin噪声的实现
- billboard技术的XNA实现
- 公告牌技术( Billboard ) - 完
- centos 的权限管理--自主访问控制DAC和访问控制列表 ACL
- listener.ora
- hdu_4824_Disk Schedule(dp)
- hdoj 5681 zxa and wifi
- leetcode.10. Regular Expression Matching
- osg布告板技术(Billboard)
- 虚幻4 shader的使用
- Centos 7 安装VNC步骤
- [动态规划]之裸lis之最长上升子序列POJ 2533
- Android开发工具之Android Studio---版本控制SVN使用(二)
- 有道云笔记markdown语法整理
- 求成绩
- C++ Primer 学习总结(附习题程序)
- Lucene实践:全文检索的基本原理 (转载)