Unity 中一些图形学知识
最近在网上看到一些关于图形渲染方面知识,在这里将其整理下
1:Alpha Blend(Alpha混合)原理
前面的博客中说过,在渲染管线中有个光栅化阶段,在这个阶段中就包括Alpha混合过程,在图像渲染的过程中,绘制图像的颜色总是放在颜色缓冲区中,这样就会替换当前缓冲区中已经存在的颜色,所以后面的物体总是
覆盖原有的物体,所以当要绘制一些特效的时候 比如类似玻璃,水等具有透明效果的物体时,这种方式就不满足要求了。这个时候可以通过定义一个表述物体半透明的alpha值和一个半透明计算公式,将要绘制的物体颜色
与颜色缓冲区中已存在的颜色相混合,从而绘制出具有半透明效果的物体。
Alpha颜色混合的公式为:color=(源颜色*源系数)OP (目标颜色*目标系数)
其中OP表示混合方式,它可以取 加,减,反减,取最小,取最大等值
2:写出光照计算中Diffuse的计算公式
漫反射,是光反射的一种,当一束平行的入射光线照射到粗糙的表面时,因表面凹凸不平,所以虽然入射光线相互平行,由于各点的法线方向不一致,造成反射光线向不同方向无规则的反射,这种发射称为漫反射。
漫反射光计算公式为:Idiffuse=Dintensity*Dcolor*N.L;
Dintensity表示漫反射强度
Dcolor表示漫反射光颜色
N表示该点的法向量
L表示光源向量
在3D渲染中,物体表面的光照计算公式为I=环境光(Iambient)+漫反射光(idiffuse)+镜面高光(ispecular);
其中,环境光(Iambient)的计算公式为:
Iambient=Aintensity*Acolor;
Aintensity表示环境光强度
Acolor表示环境光颜色
镜面高光(Ispecular)的计算公式为:Ispecular=Sintensity*Scolor*(R.V);
Sintensity表示镜面高光光照强度
Scolor表示镜面高光颜色
R表示反射向量
V表示观察者向量
3:LOD是什么,及其优缺点
LOD即Levels Of Detail的简称,意为多细节层次。LOD技术指物体模型的节点在显示环境中所处的位置和重要度,决定物体渲染的资源分配,降低非重要物体的面数和细节度,从而获得高效率的渲染计算。一句话,就是根据物体
距离摄像机的远近,动态的设置物体模型的渲染材质。
优点:可根据物体离摄像机的距离动态选择渲染不同细节的模型,提高渲染效率。
缺点:同一个物体模型,需要准备多套不同细节的材质,加重美工的工作负担,同样因为有多套材质,会增加游戏的容量。
4:两种阴影判断的方法及工作原理
阴影由两部分组成:本影和半影
本影:物体表面上那些没有被光源直接照射的区域(全黑的轮廓分明的区域)
半影:物体表面上那么被某些特定光源直接照射但并非被所有特定光源直接照射的区域(半明半暗区域)
求阴影区域的方法:做两次消隐过程
一次对每个光源进行消隐,求出对于光源而言不可见的区域L;
一次对视点的位置进行消隐,求出对于视点而言可见的面S;
阴影的区域=L∩ S
阴影分为两种:自身阴影和投射阴影
自身阴影:因物体自身的遮挡而使光线照射不到它上面的某些可见面
工作原理:利用背面剔除的方法求出,即假设视点在点光源的位置。
投射阴影:因不透明物体遮挡光线使得场景中位于该物体后面的物体区域受不到光照而形成的阴影
工作原理:从光源处向物体的所有可见面投射光线,将这些面投射到场景中得到投射面,再将这些投影面与场景中的其他面求交得出阴影多边形,保存这些阴影多边形信息,然后
再按视点位置对场景进行相应处理得到所要求的视图(利用空间换时间,每次只需依据视点的位置进行一次阴影计算即可,省去了一次消失隐的过程)若是动态光源此方法就无效了。
5:MipMap是什么,有什么作用
在三维计算机图形的贴图渲染总有一个常用的计算被称为Mipmapping,为了加快渲染速度和减少图像锯齿,贴图被处理成由一系列被预先计算和优化过的图片组成的文件,
这样的贴图被称为MiPmapj。
链接:http://www.360doc.com/content/13/1225/15/12282510_340022357.shtml