渲染器的一些特征指标

Color masking: Pixelshader输出的颜色会乘上掩码

Alpha to Coverage: 以较低的成本实现的一种OIT-Order-independent transparent

Multi-texturing: 多纹理贴图技术,一个object可以贴多张纹理

Secondary Maps/Detail Maps:附加一幅或几幅贴图在主贴图上面,以弥补normal map在近处观看时细节不足的问题-需要用很大的NormalMap来缓解这个问题,参考https://docs.unity3d.com/Manual/StandardShaderMaterialParameterDetail.html

Sphere Map: 球面贴图是覆盖整个纹理图像的一个圆形区域,它与纹理图像的顶、底、左、右边缘相切。这个圆形区域之外的纹理值不会对结果产生影响,因为它们不会在环境纹理中使用。球面贴图用于环境反射-reflection

Cube Map: 与球面贴图类似,也是做环境反射的。

Normal Map(法线贴图):通过改变物体表面的明暗值-光照来体现表面的凹凸感,缺点是在近处看效果不好。一个解决办法是可以设置一个强度系数来调整凹凸的强度,即缩放法线图中法线的r,g分量,n=normaize((f,f,1)*(r,g,b)),f=0~10,0没有凹凸效果,1使用原始的法线向量,大于1增强凹凸效果。

Parallax Map(视差贴图):法线贴图的增强版,通过偏移采样法线贴图的UV坐标实现,效果更好(特别是近处观看时),需要额外的一幅Height Map(用于计算偏移). 参考https://blog.csdn.net/puppet_master/article/details/57125379

Effects:

Bloom(泛光),HDR,Gamma Correction,Lens Flare,Billboards,Water,粒子(fire,smoke,snow),SkyDome,Terrain,树木和植被系统,Texture Animation,投影灯(Light Projector),Depth of Field,Motion Blur,Fur,LOD,SSR,AA,VolumeLight, SunShaft(GodRay )

容积效果:Fog,GodRay,烟雾,etc

光影系统:Dynamic Shadows,SSAO-模拟间接光照

次表面散射(Sub-SurfaceScattering,简称3S):3S效果可用来模拟灯光进入介质内部后发生的散射,如水,树叶,冰面,皮肤。

HDR:能保留强光部分,对Bloom支持效果更好;但需要使用浮点纹理。 参考 https://docs.unity3d.com/550/Documentation/Manual/comp-ImageEffects.html

Gamma校正:根据sRGB标准(大部分成像设备都支持),大部分显示器使用了2.2的display gamma,因此为了不让渲染的图像失真,输出时使用1/2.2的encoding gamma进行校正。在游戏中,可以将光照和混合都在线性空间进行即可,最后进行一个post process将颜色进行gamma校正。注意由相机拍摄的图像是在非线性空间了。关于gamma在unity中的设置(不支持移动平台):

它有两个选项:一个是Gamma Space,一个Linear Space。

- 当选择Gamma Space时,实际上就是“放任模式”,不会对shader的输入进行任何处理,即使输入可能是非线性的;也不会对输出像素进行任何处理,这意味着输出的像素会经过显示器的display gamma转换后得到非预期的亮度,通常表现为整个场景会比较昏暗。

-当选择Linear Space时,Unity会背地里把输入纹理设置为sRGB模式,这种模式下硬件在对纹理进行采样时会自动将其转换到线性空间中;并且,也会设置一个sRGB格式的framebuffer,此时GPU会在shader写入color buffer前自动进行伽马校正。如果此时开启了混合(像我们之前的那样),在每次混合是,之前buffer中存储的颜色值会先重新转换回线性空间中,然后再进行混合,完成后再进行伽马校正,最后把校正后的混合结果写入color buffer中。这里需要注意,Alpha通道是不会参与伽马校正的。

参考 https://blog.csdn.net/linqianbi/article/details/78617615和https://blog.csdn.net/candycat1992/article/details/46228771

你可能感兴趣的:(游戏引擎,游戏引擎,3D,游戏开发)