NiCamera的使用
1. 创建Camera.
1)通过 NiNew NiCamera的方式获得
2)通过读取NIF文件,找到适合的Camera Node
2. 创建NiRect<float>对象, 设置Camera视口大小(假设对象为NiRect<float> kRetViewPost)
1)全屏幕 kRetViewPost = NiRect<float>(0.0f, 1.0f, 1.0f, 0.0f);
2)特定大小
假设当前窗口大小800*600, 我们要在大小为200*100, 相对坐标为 (cx = 300, cy = 100)的范围内显示Camera的内容, 那么视口大小为:
计算视口比例: ratioLeft = cx / 800, ratioButon = 1.0 - (cy + 100) / 600; ratioRight = (cx + 200) / 800, ratioTop = 1.0 - cy / 600;
kRetViewPost = NiRect<float>(ratioLeft ratioRight , ratioTop , ratioButon );
3. 创建NiFrustum对象, 设置Camera截面体比例大小
NiFrustum(float fLeft, float fRight, float fTop, float fBottom, float fNear, float fFar, bool bOrtho = false)
fLeft/fRight/fTop/fButtom的值是相对于显示区域的中心点和显示模式而定的.
1) 显示模式:
a) 正交模式 (bOrtho = true)
假如显示区域是200*100的大小, 那么fLeft = -(200/2),fRight = 200/2, fTop = 100/2, fButtom = -100/2;
b) 非正交模式 (bOrtho = false)
不管显示区域多大, fLeft/fButtom的值都在[-0.5, 0.0)之间, fRight/fTop 的值都在(0.0, 0.5]之间; 如: (-0.4, 0.4, 0.46, -0.46)
正交与非正交的区别在于, 使用非正交模式时, Camera的映像大小会受到与聚焦物体间的距离影响(即可实现缩小放大的功能), 而正交模式则不会.
2) 显示比例
在正交模式下通过调用AdjustAspectRatio来设定, 而在非正交模式通过fLeft(fRight)与fButtom(fTop)的比值来设定.
3) 裁剪距离(例如fNear = 1.0f, fFar = 1000.0f)
4. 通过NiCamera::SetViewPort(const NiRect<float>&)和Camera::SetViewFrustum(const NiFrustum& )分别设定ViewPort和Frustum
转载于:https://www.cnblogs.com/flying_bat/archive/2009/07/22/1528839.html
NiCamera的使用相关推荐
最新文章
- MySQL数据库的常用操作
- [云炬python3玩转机器学习]5-2最小二乘法a和b推导
- 服务器设备日常维护与管理论文,浅谈设备管理与维护论文
- 昆士兰科技大学计算机专业,昆士兰科技大学QUT计算机科学Computer Science专业排名第101-125位(2021年THE世界大学商科排名)...
- 160 - 24 Chafe.2
- java web 中 读取windows图标并显示
- FFmpeg实战命令(不断更新中...)
- matlab 分组求平均值,MATLAB:取一个列表中两个数字的平均值?(MATLAB: taking the average of two numbers in a list?)...
- html5自动换行,html5文字自动换行怎么设置
- linux的网易云音乐界面不显示,linux mint19.1解决网易云音乐安装后打不开的问题...
- EDK环境搭建UEFI工程模块文件介绍
- MYSQL存储过程怎么写
- 使用python的zipfile模块巧解word批量生成问题
- 关于jason中大括号和中括号的区别
- 不平衡多分类问题模型评估指标探讨与sklearn.metrics实践
- 敬业签苹果ios手机便签里的完成记录如何筛选查看
- 有温度传感器的风机控制系统C语言,基于单片机的暖风机的设计任务书、开题报告...
- 大一女生废话编程爆火!网友:有时间拍抖音不如刷多两道leetcode
- Extjs 扩展Htmleditor,支持 图片上传 文件上传 插入flash 插入多媒体 插入层 插入横线等功能
- Exploiting Shared Representations for Personalized Federated Learning 论文笔记+代码解读
热门文章
- java 预览word文档_Java实现office文档与pdf文档的在线预览功能
- 开源能翻译英文的Android阅读器
- 所有service都报required a single bean, but 2 were found 问题
- python学习之创建空数组
- K-L变换(Karhunen-Loève Transform)
- 苹果8防水吗_苹果发布真无线耳机Powerbeats Pro,多彩配色,H1芯片加持
- 微信公众平台发布小程序数据助手 可查看运营数据
- 02-mysql多表查询
- 2023网络安全HW蓝队面试题汇总
- 鹅厂Tencent面试题