5.1 3D幻境
2015-11-05 11:55
295 查看
在我们踏上我们的3D计算机图形的旅程之前,一个简单的问题仍然悬而未决:我们如何显示具有深度和体积的3D世界到2D平面监视器屏幕上?幸运的是,这个问题已经得到很好的研究,因为艺术家已经在二维画布上画3D场景。在本节中,我们概述,使图像看起来像3D的若干关键技术。
假设一段很长的直线铁轨。该铁路钢轨保持相互平行的轨道的长度,但如果你站在铁路上俯瞰它的路径,你会观察到当你的视线越来越远时,这两个铁路钢轨越来越接近在一起,最终他们在汇合于无限远距离。这是一个表征我们人类的观察系统的观测:视野平行线会聚到一个消失点;见图5.2。
另一种简单的人类观察东西的现象是一个物体的尺寸与其深度有关;即,对象在我们附近比在远处的对象看起来更大。例如,一所远在山上的房子看起来非常小,而在我们附近一棵树看起来非常大。图5.3显示了一个简单的场景,随着深度的增加,它们似乎变得越来越小。还要注意在地平线上柱子汇聚成消失点。
我们都经历对象重叠(图5.4),它是指一个事实,即不透明物体会掩盖部分(或全部) 在他们后面的物体。这是一个重要的感知,因为它表述在场景中的对象的深度排序的关系。Direct3D如何使用深度缓冲找出哪些像素被遮挡,因此不应该被绘制,我们已经讨论(第4章)。
考虑图5.5。在左侧,我们有一个未照亮球,及在右边,我们有一个点亮球体。正如你所看到的,左球体看起来相当平坦,也许它甚至不是一个球体,而只是一个纹理的二维圆!因此,灯光和阴影在描绘的固体形式和三维物体的体积起到非常重要作用。
最后,图5.6显示了飞船和它的影子。影子有两个主要目的。第一,它告诉我们场景中光源的原点位置。其次,它为我们提供了飞船离地面高的一个大概的了解。
刚刚讨论过的的现象,毫无疑问,来自于我们一天一天的体验。牢记这些现象,为我们研究三维计算机图形提供帮助的。
本文固定链接:http://www.oxox.work/web/directx11/3d-illusion/ | 虚幻大学
假设一段很长的直线铁轨。该铁路钢轨保持相互平行的轨道的长度,但如果你站在铁路上俯瞰它的路径,你会观察到当你的视线越来越远时,这两个铁路钢轨越来越接近在一起,最终他们在汇合于无限远距离。这是一个表征我们人类的观察系统的观测:视野平行线会聚到一个消失点;见图5.2。
另一种简单的人类观察东西的现象是一个物体的尺寸与其深度有关;即,对象在我们附近比在远处的对象看起来更大。例如,一所远在山上的房子看起来非常小,而在我们附近一棵树看起来非常大。图5.3显示了一个简单的场景,随着深度的增加,它们似乎变得越来越小。还要注意在地平线上柱子汇聚成消失点。
我们都经历对象重叠(图5.4),它是指一个事实,即不透明物体会掩盖部分(或全部) 在他们后面的物体。这是一个重要的感知,因为它表述在场景中的对象的深度排序的关系。Direct3D如何使用深度缓冲找出哪些像素被遮挡,因此不应该被绘制,我们已经讨论(第4章)。
考虑图5.5。在左侧,我们有一个未照亮球,及在右边,我们有一个点亮球体。正如你所看到的,左球体看起来相当平坦,也许它甚至不是一个球体,而只是一个纹理的二维圆!因此,灯光和阴影在描绘的固体形式和三维物体的体积起到非常重要作用。
最后,图5.6显示了飞船和它的影子。影子有两个主要目的。第一,它告诉我们场景中光源的原点位置。其次,它为我们提供了飞船离地面高的一个大概的了解。
刚刚讨论过的的现象,毫无疑问,来自于我们一天一天的体验。牢记这些现象,为我们研究三维计算机图形提供帮助的。
本文固定链接:http://www.oxox.work/web/directx11/3d-illusion/ | 虚幻大学
相关文章推荐
- 面向对象三大特性之多态性
- iOS7时代我们用什么来追踪和识别用户?(iOS唯一标示符引导)
- Spark 共享变量——累加器(accumulator)与广播变量(broadcast variable)
- js 数组去重
- SQLSERVER数据库管理员的专用连接DAC
- Linux 的cp命令
- 磁粉检测技术
- 理解Contact的关键图
- iOS 沙盒路径获取,创建文件
- #Pragma Pack(n)与内存分配
- SpringMVC介绍之约定优于配置
- jsonp详解
- 查找页面元素
- 装xcode7创建window界面出现错误解决方法
- 【click】又是TMD click事件
- cocos2d-JS中场景(scene)之前如何传参。
- nodejs+npmjs+express安装配置
- Chrome鼠标手势插件:CrxMouse
- Android中dp和px之间进行转换
- AbstractSqlHelper