您的位置:首页 > 移动开发 > Unity3D

关于unity里色彩空间与光照小记

2016-01-15 14:35 393 查看
gamma校正是因为显示器颜色通常是非线性的,所以要想看到电脑中正常定义的颜色,必须进行伽马校正,

gamma空间就是模拟电视屏幕之类上的(也就是现在通用的)色彩空间,这种色彩空间在直接显示图片的时候效果正常,但如果进行颜色混合,混合的效果就不正确,因为它采用的是非线性采样

sRGB是RGB是一种的一种特定类型,就是一般用的,色彩宽度小

线性混合是正确的混合

gamma混合会导致光混合地方更亮,而产生不正确的颜色(虽然可能艺术效果更好)

线性光照是指照明具有所有线性输入场景的过程。通常纹理存在预先应用给它们的伽玛值,这意味着当纹理在材质采样时,其是非线性的。如果这些纹理被使用于标准光照方程式,它将导致不正确的方程式,其期望使用前所有输入线性化。

当使用伽玛空间光照,颜色和纹理提供给着色器将应用其伽玛校正。当它们被用在高亮度的颜色着色器,实际上更亮,那么他们就应该用于线性照明。这意思是灯光强度增加,表面将以非线性方式增亮。这将导致在更多地方照明太亮,并给予模型和场景一个褪色的感觉。当使用线性照明,随着光照强度的增加,从表面的反应仍然是线性的。这导致更加真实的表面着色以及更好的表面颜色反应。

具体还可以参考这里
http://blog.csdn.net/golden_shadow/article/details/40183561 http://www.ceeger.com/Manual/LinearLighting.html
2.27.2016补充

还是补充在这里吧

就是关于shader中的光照

关于逐顶点光照(Per-vertex Lighting)效果差不多,速度快 其实区别不大

每顶点光照是标准的Direct3D/OpenGL光照模式,通过计算每个顶点的光照来完成。Lighting on命令开启光照。而我们知道,光照被材质块,颜色材质和平行高光等命令所影响。

关于逐像素光照(Per-pixel Lighting)效果更好,速度稍慢

每像素光照管线通过多次通道渲染对象来完成。Unity渲染对象一次来获取阴影色和任何顶点光照。然后再在额外的并行通道中渲染出每像素光照的效果。

下面是对比图





左 逐顶点 右逐像素
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: