博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
WorldWind源码剖析系列:视景体类Frustum
阅读量:6823 次
发布时间:2019-06-26

本文共 589 字,大约阅读时间需要 1 分钟。

PluginSDK中的视景体类Frustum是三维计算机图形学中的概念,主要用来描述透视投影的过程。三维计算机图形学中关于三维物体的渲染,Direct3D和OpenGL都是先通过对现实世界中的场景先进行世界变换,再通过设置观察矩阵以在场景中安置一个虚拟相机,构建一个视景体来裁剪场景的可见区域,然后在通过投影变换(平行投影或透视投影),获取三维场景的“像”,最后再通过视口变换,将场景的“像”光栅化输出到二维显示屏幕上。如下图所示。

 

其中投影变换主要有透视投影和平行投影两类。视景体类Frustum正是用来描述投影变换过程中的透视投影的。如下图所示。其关键参数主要有:Y向视场角、远裁剪平面、近裁剪平面、投影窗口纵横比。由这些因子可以构造一个透视投影参与三维物体渲染运算。

 

视景体类Frustum类的类图如下。

 

字段planes数组用6个平面来描述视景体的6个边界平面。

Update方法用给定的矩阵对象来更新视景体的6个边界平面。用到了Microsoft.DirectX的平面Plane结构体、Vector3类和矩阵Matrix类。

Intersects方法用来测试视景体对象与输入的外包围球是否相交。其重载形式用来测试是否与外包围盒相交。

Contains方法用来测试视景体对象是否完全包含外包围盒。

ContainsPoint方法用来测试视景体对象是否完全包含一个点向量。

转载地址:http://uqozl.baihongyu.com/

你可能感兴趣的文章
数字图像处理的常用概念和方法
查看>>
Dubbo协议介绍
查看>>
HA配置方案
查看>>
sed处理变量替换
查看>>
Netsh Diag
查看>>
win8
查看>>
AIX 安装 SVN 客户端 完整过程 subversion-1.8
查看>>
8-17 页面分页
查看>>
数据库--sqlite的操作
查看>>
手机号码 正则
查看>>
如何解酷派CPB包
查看>>
Linux 安装JDK,配置JAVA环境变量
查看>>
jenkins插件之小白的笔记
查看>>
html meta中的viewport指令
查看>>
windows 2008的安装
查看>>
Unity3D研究院之手游开发中所有特殊的文件夹(assetbundle与Application.persistentDataPath)...
查看>>
[DeviceOne开发]-手势动画示例分享
查看>>
《Activiti实战》读书笔记——5.1.4
查看>>
Linux文件管理类命令
查看>>
Kuerbernetes 1.11 二进制安装
查看>>