Qt irrlicht(鬼火)3D引擎 摄像机旋转问题
点击打开链接Irrlicht中的摄像有一个函数 setUpVector()
if (m_device != 0 )
{
core::vector3df rotation(y,x,0.f);
m_camera->setRotation(rotation); f32 viewlength = m_camera->getTarget().getLength(); f32 angle = z*2*Pi/360.0; m_camera->setUpVector(vector3df(viewlength*cos(angle),viewlength*sin(angle),0.0f)); }
具体用法参考上面
还有一个方法旋转摄像机
是控制另一轴的旋转
void Scene_3D::slotUSBENGINE(f32 x, f32 y, f32 z)
{
core::vector3df pos = m_camera->getPosition();
core::vector3df target = (m_camera->getTarget() - m_camera->getAbsolutePosition());
core::vector3df relativeRotation = target.getHorizontalAngle();
target.set(0,0, core::max_(1.f, pos.getLength()));
core::vector3df movedir = target;
core::matrix4 mat;
mat.setRotationDegrees(core::vector3df(relativeRotation.X, relativeRotation.Y, 0));
mat.transformVect(target);
movedir = target;
movedir.normalize();
pos += movedir*0.5f*(x/5);
core::vector3df strafevect = target;
strafevect = strafevect.crossProduct(m_camera->getUpVector());
m_camera->setPosition(pos);
target += pos;
m_camera->setTarget(target); // qDebug()<<"hjsdfjhkgsdfgjhksdfajhgksadfjhklsdfahjklsdfakhjlsakjhlsdfhkjsdfajhklsafkjhlsfajhklsfdahjklfsdahjklfsdahjklsfjkhlsd"; }
Qt irrlicht(鬼火)3D引擎 摄像机旋转问题的更多相关文章
- Qt 使用irrlicht(鬼火)3D引擎
项目中需要加载简单的3D场景.资深老前辈推荐使用开源小巧的引擎irrlicht. 关于irrlicht,来之百度百科 Irrlicht引擎是一个用C++书写的高性能实时的3D引擎,可以应用于C++程序 ...
- 【Irrlicht鬼火引擎】 认识鬼火引擎
一.Irrlicht简介 (1)概念 Irrlicht引擎是一个用C++书写的高性能实时3D引擎,可以应用于C++程序或者.NET语言中.通过使用Direct3D(Windows平台).OpenGL ...
- 来手撸一个小小小小小"3D引擎"
开始的唠叨 说是3D引擎确实有点过于博眼球了,其实就是实现了一个透视投影,当然也不是那么简单的. 此篇文章是纯粹给小白看的 高手请勿喷 .也称之为小向带你图形学入门基础 . 哇哈哈哈哈 一说到做一个3 ...
- Flash Alternativa 3D引擎-基础理论
自由行走的花 网站设计,flash网站设计与动画制作,web,as3 2010-12-31 14:29 [转]Flash Alternativa 3D引擎-基础理论 <本文转载自:http:// ...
- 转:Irrlicht 0.1引擎源码分析与研究(一)
目录(?)[-] 主要技术特性 引擎概览 Irrlicht的窗口管理 Irrlicht引擎主要是由一个名叫Nikolaus Gebhardt奥地利人所设计,是sourceforge上的一个开源项目 ...
- 关于如何学好游戏3D引擎编程的一些经验[转]
此篇文章献给那些为了游戏编程不怕困难的热血青年,它的神秘要我永远不间断的去挑战自我,超越自我,这样才能攀登到游戏技术的最高峰 ——阿哲VS自己 QQ79134054多希望大家一起交流与沟通 这篇文章是 ...
- 如何学好游戏3D引擎编程
注:本文是网上看到的一篇文章,感觉写的很好,因此收藏了下来 <如何学好游戏3D引擎编程>此篇文章献给那些为了游戏编程不怕困难的热血青年,它的神秘要我永远不间断的去挑战自我,超越自我,这样才 ...
- 转:典型开源3D引擎分类比较
常见的3D引擎有:Unreal.Quake.Lithtech.OGRE.Nebula.Irrlicht.Truevision3D... 其中开源免费的有:OGRE.irrlicht.fly3d.Neo ...
- 转:开源3D引擎介绍
Delta3D:Delta3D是一个功能齐全的游戏引擎,可用于游戏,模拟或其他图形应用.其模块化设计集成了其他的开源项目,如‘开放场景图’,‘开放动力学引擎’,‘人物动画库’和‘OpenAL’ .De ...
随机推荐
- mac下配置Node.js开发环境、express安装、创建项目
mac下配置Node.js开发环境.express安装.创建项目 一.node.js的安装 去官网下载对应的平台版本就可以了,https://nodejs.org 二.express安装 sudo n ...
- 【luogu P2580 于是他错误的点名开始了】 题解
题目链接:https://www.luogu.org/problemnew/show/P2580 我真的永远都爱stl #include <map> #include <cstdio ...
- MapFile
MapFile是排序后的SequenceFile, 这个排序是由开发者来保证的, 不是内存实现. 相当于对key作了一个分块索引, 只针对key. 缺点 1.文件不支持复写操作,不能向已存在的Seq ...
- C# 程序启动其他进程程序
1 启动一个独立进程,需要用到的命名空间是:using System.Diagnostics; 进程类是 Process ,进程的相关参数信息类是 ProcessStartInfo 2 等待启 ...
- svn使用过程中遇到的问题
前言:记录一下svn使用的过程中遇到的问题 最近的公司使用的svn来管理项目,因为这个项目接手过来已经有至少一年多的工龄了,所以暂且还是也用svn来处理吧,如果要是做新项目的话,真心地希望使用Git来 ...
- css的基础用法(下)
定位: <html> <head> <meta charset="utf-8" /> <title>定位</title> ...
- Xadmin使用二
1:修改site-title和site-footer,增加菜单折叠效果 在adminx.py中增加下面代码: class GlobalSetting(object): # 设置Title site_t ...
- Tomcat服务器的介绍、安装配置
[1] Tomcat服务器的介绍 1.是一个免费的.开饭源代码的Servlet服务器,目前非常流行. 2.Tomcat服务器是Apache软件基金会的一个顶级项目,由Apache.Sun等公司共同开发 ...
- ABAP术语-ABAP Editor
ABAP Editor 原文链接:http://www.cnblogs.com/qiangsheng/archive/2007/12/08/987498.html Program editor in ...
- Struts2拦截器说明
有关于Struts2的拦截器的原理 在此共设置了两个拦截器,firstInterception.SecondInterception package struts2_inteception; publ ...