计算机图形学中的空间坐标系

计算机图形学中的空间坐标系

3D空间

1. 对象空间:

       对象空间也叫模型空间,美工在制作模型的时候就是使用对象空间。美工在制作模型的时候,通常以对象空间的原点为中心,以便于进行变换:比如旋转模型。

2. 世界空间:

      在一个场景中,所有对象将共享一个世界空间。它通常用来表示要渲染的对象之间的空间关系。想象一下这个世界空间,我们可以想象我们站在一个矩形空间的西南角,并面向北面。我们定义我们所站的这个角是坐标原点(0,0,0)。

3. 观察空间:

      观察空间,有时也叫摄像机空间,跟世界空间类似,是场景的典型应用。然而,在观察空间中,原点是观察者或者摄像机。摄像机所看到的方向定义为Z轴。

4. 投影空间:

     投影空间是用来将观察空间中的对象进行投影变换。在这个空间里,可见的范围是X,Y在[-1,1],Z在[0,1]。

5. 屏幕空间

     屏幕空间经常指帧缓存的位置。因为帧缓存通常是2D的纹理,所以屏幕空间是一个2D空间,左上角表示屏幕坐标原点。X水平向右,Y轴垂直向下。对于一个缓冲来说,它有w像素宽,h像素高。

空间之间的转换

 1. 世界变换

      世界变换,顾名思义,将顶点从对象空间变换到世界空间。它通常包括一个或者多个的缩放,旋转,平移操作来变换对象,当然这些变换要根据我们要给的,大小,方向,位置信息。

2. 观察变换

      在所有顶点都变换到世界空间后,世界变换将这些顶点从世界空间变换到观察空间。以观察者的视角来观察世界空间出现的对象。

3. 投影变换

      投影变换将顶点从3D空间(比如世界空间和观察空间)变换到投影空间。在投影空间,顶点的X,Y坐标通过3D空间中的X/Z和Y/Z的比来计算。

转载于:https://www.cnblogs.com/italysue/p/9395962.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/101515.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • Win8下用DOSBox编写汇编语言

    Win8下用DOSBox编写汇编语言      DOSBox 是一个 DOS模拟程序,可以很方便的移植到其他的平台,因此可以使用它在Win8系统中编写汇编语言。下面提供相关下载链接:     DOSBox下载: http://pan.baidu.com/s/1qWwkss0      汇编工具下载: http://pan.baidu.com/s/1i3taKmT  DOSB

  • cinemachine_2D Cinemachine:提示和技巧「建议收藏」

    cinemachine_2D Cinemachine:提示和技巧「建议收藏」cinemachineHaveyoubeenworkingonacamerasystemforyour2DgameforagesandwishtherewassomethinglikeCinemachinefor2D?Notmanypeopleknowaboutit,buttherealreadyis!Thisblogpost…

  • 如何求原根_求模47的所有原根

    如何求原根_求模47的所有原根说这种最好就是举个例子比如说求81的所有原根 先说欧拉函数通式:通式:φ(x)=x(1-1/p1)(1-1/p2)(1-1/p3)(1-1/p4)…..(1-1/pn),其中p1,p2……pn为x的所有质因数,x是不为0的整数。φ(1)=1(唯一和1互质的数(小于等于1)就是1本身)。(注意:每种质因数只一个。比如12=2*2*3那么φ(12)=12*(1-1/2)*(1-1/…

    2022年10月28日
  • Java中Scanner 的用法/ Scanner怎么使用

    Java中Scanner 的用法/ Scanner怎么使用Java中要想输入时便要用到Scanner首先在使用之前导入util包要想通过控制台进行输入,首先要构造一个Scanner对象,它附属于”标准输入流Scannerin=newScanner(System.in);现在我们就可以使用Scanner类的各种方法了使用Scanner读取字符串/整数/浮点数importjava.util.Scanner;//需要导入util包S…

  • php设置header参数_php发送get请求

    php设置header参数_php发送get请求voidheader(stringstring[,boolreplace[,inthttp_response_code]])voidheader(stringstring[,boolreplace[,inthttp_response_code]])header()是用来发送HTTPHeader的。replace是个可选的参数,指示是否替代一个先期相

  • spring注解配置相对于传统xml配置的优势

    spring注解配置相对于传统xml配置的优势

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号