OSG漫游:实现按键控制的操作器

本文介绍了如何在OpenSceneGraph (OSG) 中实现按键控制的漫游操作器,包括前进、后退、转向等动作,并提供源代码链接。通过WASD和方向键进行移动,QE旋转视角,鼠标控制上下左右视角,滚轮缩放。还提到了简单的碰撞检测方法和视口矩阵的处理。
摘要由CSDN通过智能技术生成

OSG提供了几种manipulator(操作器),已经能胜任很多场合了。但玩过射击类游戏的都比较熟悉使用按键的方式控制人物角色的移动,自己也想来实现一个,于是参考了OSG程序设计 一书,进行实现。
##功能:

  • W或者↑箭头:前进
  • S或者↓箭头:后退
  • A或者←箭头:向左
  • D或者→箭头:向右
  • Q:左旋转
  • E:右旋转
  • 鼠标左键拖动:左右视角
  • 鼠标右键拖动:上下视角
  • 鼠标中键:放大或者缩小
  • +:加速移动
  • -:减速移动
    ##关键点
    1、视口矩阵的运算方式:
osg::Matrixd CustomManipulator::getMatrix() const
{
	// 返回视口的矩阵
	osg::Matrixd mat;
	mat.makeRotate(m_vecRotation._v[0], osg::Vec3d(1.0, 0.0, 0.0),
		m_vecRotation._v[1], osg::Vec3d(0.0, 1.0, 0.0),
		m_vecRotation._v[2], osg::Vec3d(0.0, 0.0, 1.0));

	return mat * osg::Matrixd::translate(m_vecPosition);
}

2、视口矩阵的逆矩阵:这个就比较好求了,直接对视口矩阵求逆

osg::Matrixd CustomManipulator::getInverseM
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值