graphics review

take back something from lost……

好记性不如烂笔头……

 

GLSL中的Uniform变量?

uniform变量是外部程序传递给shader的变量,因此在vfshader中不可以修改uniform变量,类似于c语言中的const变量。

 

openGL中有几种缓冲?作用分别是什么?

帧缓冲 Frame Buffer:(颜色缓存、模板缓存、深度缓存)

顶点缓存:用于缓存顶点数据

元素缓冲:用于缓存顶点序号数据

 

空间变换矩阵为什么是四阶的?如何构造?

根据矩阵和向量的运算特性,三阶矩阵只能实现缩放和其次空间旋转,所以需要额外的一行一列来实现平移操作。

//如何构造?

旋转物体的三种方式分别是什么?都有什么优缺点?

https://blog.csdn.net/zhaotianyu950323/article/details/79955805

矩阵旋转、欧拉角旋转、四元数

矩阵旋转 
优点: 旋转轴可以使任意向量;
缺点: 旋转其实只需要知道一个向量 + 一个角度, 一共4个值的信息,但矩阵却使用了16个元素;
而且在做乘法操作时也会增加计算量,造成了空间和时间上的一些浪费;

欧拉旋转 
优点: 很容易理解,形象直观;表示更方便,只需要3个值(分别对应x,y,zx,y,z轴的旋转角度);但依照其他博主的理解,她还是转换到了3个 3*3的矩阵变换,效率不如四元数;
缺点: 之前提到过这种方法是要按照一个固定的坐标轴的顺序旋转的,因此不同的顺序会造成不同的结果;
会造成万向节锁(Gimbal Lock) 现象。这种现象的发生就是由于上述固定坐标轴旋转顺序造成的。理论上,欧拉选择可以靠这种顺序让一个物体指到任何一个想要的方向, 但如果在旋转中不幸让某些坐标轴重合了就会发生万向节锁,这时候就会丢失一个方向上的旋转能力,也就是说在这种状态下我们无论怎么旋转(当然还是按照原先的顺序)都不可能得到某些想要的旋转效果,除非我们打破原先的旋转顺序或者同时旋转3个坐标轴。这里有个欧拉旋转可以直观的理解下;
由于万向节锁的存在,欧拉旋转无法实现球面平滑插值;

四元数旋转 
优点: 可以避免万向节锁现象;
只需要一个4维的四元数就可以执行绕任意过原点的向量的旋转,方便快捷,在某些实现下比旋转矩阵效率更高;
可以提供平滑插值;
缺点: 比欧拉选择稍微复杂了一点点,因为多了一个维度;
理解更困难,不直观
 

什么是万向锁?

见上一条。。。

什么是多级渐进纹理?对于游戏优化有什么作用?

多级渐变纹理,是对一张目标纹理进行减精度采样,生成分辨率逐渐降低的纹理序列。

没有mipmap的问题:

(以下回答来自知乎etnlGD的回答:https://www.zhihu.com/question/66993945?sort=created

在不使用mipmap的情况下使用高精度贴图,性能损失主要在于texture cache会很难命中,因为相邻pixel采样的texel都是空间不连续的,对cache非常不友好,因此会造成远处平面像素的闪点。

此时,一个pixel像素对应问题上的很多纹素,那么如何来从多个texel中得到该像素的颜色值?

不管一个pixel覆盖多少个texel,point采样1个,bi-linear采样4个,tri-linear采样8个,anisotropic则可能会采样更多。mipmap就是为了解决1个像素覆盖很多个texel的情况,相当于离线计算好1个pixel覆盖多个texel的结果,存在mipmap中。mipmap1是1个覆盖4个,mipmap2是1个覆盖16个······

正面作用:

mipmap提供了预处理好的多重采样数据,主要目的是改善平面渲染中的表现,同时也提高了纹理采样时的命中率。

反面作用:

提前生成的贴图序列会占用纹理总内存33%的额外内存

什么是四元数(quaternion)?

https://blog.csdn.net/candycat1992/article/details/41254799

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值