xinhou关注{{ followText }}
累计获得0赞
投影式纹理映射(Projective texturing) 常用于在低端平台实现实时阴影效果,或实现一些类似幻灯片投射的效果。从其名字就可以看出,这种技术与普通的网格渲染流程是有关系的: 常规的网格渲染流程如左图,首先将网格从物体本地坐标转换到世界坐标,然后通过反转的摄像机世界坐标变换矩阵将其转换到摄像机的本地坐标(Eye Space),接下来将其乘以投影矩阵,进入裁剪空间(Clip Space)。通过将裁剪空间的四维向量除w进入NDC空间(范围在(-1, 1)),最后通过ViewPort和深度的范围进行
现代的游戏都是以一些角色为中心,通常是人物或是动物,角色想要看上去栩栩如生,就必须拥有流畅的,有机的移动效果。为解决此问题,产生了多种解决方案,如最早的序列帧动画,到最新的蒙皮动画,接下来我们了解一下他们各自的原理以及优缺点。1.精灵动画精灵动画(Sprite Animation)是一种电子版的序列帧动画,它的诞生起源于最早期的卡通动画,既快速的连续的播放不同的画面,来产生角色的动态效果,就像电影胶片一般,通过快速切换来产生动画效果。所谓精灵,就是一张张大小相同的位图。通常我们使用带有透明通道的图片格式保存
要在计算机中模拟三维空间,就需要一些数学工具的支持,他们是进行计算机三维模拟的基础。一般情况下,为产生动画效果,需要记录空间中物体的位置,旋转,以及缩放信息,并不断改变这些值来实现此效果。 1.矢量 首先,需要一种能够存储空间位置信息的数据结构。本系统使用的是笛卡尔坐标系,即可以使用三个浮点数来表示空间中任意一点的位置,因此我选择使用三维矢量(Vector)来存储位置信息。矢量标量相乘,其效果是保留矢量的方向,同时缩放矢量的模。而三个轴上的缩放因子也可以不同,其称之为非统一缩放(nonuniform sca
1.模型需求 存储三维模型的文件,通常需要更高效的空间分配,来尽量减少文件的物理体积。 例如一个模型,可能存有position,uv,normal,tangents ... 等等相关信息。 如果简单的存储为position数组,uv数组,由于这些数组钟可能会有重复数据,因此会造成存储空间的浪费: 因此,通过使用一个索引数组,可以更高效的利用有限的存储空间。 2.渲染需求 在我们使用底层图形API渲染模型时,首先我们需要将模型读入内存中。 我们了解到,许多模型通过使用索引来节省存储空间,
这个家伙已过上与世隔绝的生活~