5.1 3D幻境
2015-11-04 20:06
204 查看
在我们踏上我们的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/ | 虚幻大学
相关文章推荐
- 欧拉定理--杭电1395
- LeetCode Kth Smallest Element in a BST(数据结构)
- 周一晚上(2015.11.4)朋友模拟的一次面试
- composer应用(一)自动加载
- 设计模式六大原则(2)-里氏替换原则
- struts2国际化支持
- Eclipse将Android项目打包成apk并签名
- Tortoise-SVN 出现“unable to connect to a repository at url no element found”解决办法
- node.js 命令行框架 yargs 和你的程序实现交互
- a debugging log
- Tortoise-SVN 出现“unable to connect to a repository at url no element found”解决办法
- 代码托管(开源中国)
- ARC下OC对象和CF对象之间的架桥
- qmake来组织C++项目
- 排序算法算法之Insertion Sort
- 在之前开了一个csdn博客,是关于C语言的,如今开始学习java与android开发,就把从现在开始我的每一天学习都展示在这里吧
- 使用 nvm 管理不同版本的 node 与 npm
- 设计模式六大原则(1)-单一职责原则
- hdu 2510
- Unable to execute dex: Multiple dex files define