在3D图形学中,物体是3维的,拥有X, Y, Z三个坐标,并且拥有R, G, B三种颜色,alpha透明度,U, V贴图坐标,N法线。 三维物体在二维屏幕上的显示,大致分为以下几步:
坐标变换(transform)
将场景中的三维坐标转换为二维坐标,这个请参考我的文章坐标系空间变换。
颜色计算(shade)
计算每个顶点的颜色,通过UV贴图的颜色,结合光照,透明度等,计算出模型每个顶点的具体颜色(R, G, B)。这个在后面也会讲,本期不做介绍。
光栅化(rasterization)
假定屏幕分辨率为1920×1080,在二维屏幕渲染(光栅化)时,内存中frame buffer只保存着1920×1080个屏幕点的颜色,然后一个一个的画到屏幕上。(它的实现方式是以一个1920×1080长的一维数组储存每个顶点的RGB颜色,然后遍历数组画出来)
什么X, Y, Z,什么alpha之类的frame buffer都没有的,在frame buffer里只有3个值:R, G, B。
X, Y, Z, alpha等等属性要在另外的地方存储。
光栅化,就是计算出1920×1080这么长的RGB数组中,每一个RGB的值。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。