libgdx - 对于SpriteBatch中setProjectionMatrix() 的理解

本文探讨了正交投影和透视投影的概念,特别是在libgdx中的应用。文章详细阐述了如何使用OrthographicCamera和PerspectiveCamera,并重点解释了在SpriteBatch中设置投影矩阵(setProjectionMatrix)的重要性,分析了不使用和使用该方法对显示效果的影响。
摘要由CSDN通过智能技术生成
在编程过程中,遇到了一个函数SpriteBatch::setProjectionMatrix(OrthographicCamera.combined)。经过一番搜索,终于理解了他的含义。这里保留一些信息,以便以后参考。

一 和 二 只是为了理解这个函数做了一些简单的铺垫。


一, 关于正交投影和透视投影

我们的世界是个立体的世界,但并不是所有的媒介都可以把我们看到的立体图像表现出来。

可以表现为正交投影,比如相机拍照片,它展现出来的是一个平面的二维的效果。

我们也可以用透视投影的方式,按照人眼观察事物的原则,例如近处大,远处小的方式,来画透视图。


它与我们的观察方式(视角  camera)有很大的关系,在libgdx定义了两种Camera

OrthographicCamera(正交) 和 PerspectiveCamera(透视)。


他们主要的作用都是通过该变人的视角在屏幕上表现出不同的绘图效果。


二,关于坐标系(笛卡尔坐标系和正交投影坐标系)


笛卡尔坐标系:我们上初中时学的平面几何基本都是以笛卡尔坐标系为基础,简单的理解就是原点在左下角,只有X轴,Y轴。


投影坐标系:当学习立体几何时,如果还是使用笛卡尔坐标系,它不能表现出空间的概念,这样就需要一个立体的坐标系来描述立体几何图形在空间中的位置关系。除了X轴,Y轴这时又多出了一个Z轴。



三,关于使用setProjectionMatrix


这个函数在 libgdx帮助文档中的描述是 " Sets the projection matrix to be used by this Batch. " 在当前的Batch使用投影矩阵,或者说使用合并后的投影与视图矩阵。当然这样理解起来很抽象。

下面会有两个简单的例子来描述一下使用这个函数和不使用这个函数的区别。


测试原图
pic_0



1)  不使用 setProjectionMatrix。


代码和测试结果


package com.example.libgdx_sample_spirtebatch;


import com.badlogic.gdx.G
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值