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的使用相关推荐

最新文章

  1. MySQL数据库的常用操作
  2. [云炬python3玩转机器学习]5-2最小二乘法a和b推导
  3. 服务器设备日常维护与管理论文,浅谈设备管理与维护论文
  4. 昆士兰科技大学计算机专业,昆士兰科技大学QUT计算机科学Computer Science专业排名第101-125位(2021年THE世界大学商科排名)...
  5. 160 - 24 Chafe.2
  6. java web 中 读取windows图标并显示
  7. FFmpeg实战命令(不断更新中...)
  8. matlab 分组求平均值,MATLAB:取一个列表中两个数字的平均值?(MATLAB: taking the average of two numbers in a list?)...
  9. html5自动换行,html5文字自动换行怎么设置
  10. linux的网易云音乐界面不显示,linux mint19.1解决网易云音乐安装后打不开的问题...
  11. EDK环境搭建UEFI工程模块文件介绍
  12. MYSQL存储过程怎么写
  13. 使用python的zipfile模块巧解word批量生成问题
  14. 关于jason中大括号和中括号的区别
  15. 不平衡多分类问题模型评估指标探讨与sklearn.metrics实践
  16. 敬业签苹果ios手机便签里的完成记录如何筛选查看
  17. 有温度传感器的风机控制系统C语言,基于单片机的暖风机的设计任务书、开题报告...
  18. 大一女生废话编程爆火!网友:有时间拍抖音不如刷多两道leetcode
  19. Extjs 扩展Htmleditor,支持 图片上传 文件上传 插入flash 插入多媒体 插入层 插入横线等功能
  20. Exploiting Shared Representations for Personalized Federated Learning 论文笔记+代码解读

热门文章

  1. java 预览word文档_Java实现office文档与pdf文档的在线预览功能
  2. 开源能翻译英文的Android阅读器
  3. 所有service都报required a single bean, but 2 were found 问题
  4. python学习之创建空数组
  5. K-L变换(Karhunen-Loève Transform)
  6. 苹果8防水吗_苹果发布真无线耳机Powerbeats Pro,多彩配色,H1芯片加持
  7. 微信公众平台发布小程序数据助手 可查看运营数据
  8. 02-mysql多表查询
  9. 2023网络安全HW蓝队面试题汇总
  10. 鹅厂Tencent面试题