老韩的计算机图形学
老韩的计算机图形学
PS图层混合模式
32位没通道模式下的(线性减淡添加),大概就是且才是相当于光的叠加。而非滤色
色彩原理课
牛顿色环与现代色环的不同
牛顿那个跟光长的比例更相似,现代的更趋向于RGB和CMY的三等分
色彩的本质:人类的主观感受
视锥细胞和视杆细胞
现代医学-人感受色彩:视杆细胞+RGB三种视锥细胞
更严谨的说法是对波长敏感度不同的三种视锥细胞
短锥细胞、中锥细胞、长锥细胞分别对短中长波更敏感
可以以波长为横轴,兴奋性为竖轴,画出四条(视锥细胞+杆细胞)类正态状曲线
另
视锥细胞的位置接近于视神经中央,视杆细胞的位置在视锥细胞周围
这个可以解释星星消失的原因
色相环为何闭环,紫色为什么又过渡回红色
紫色B和红色R中间的洋红M,依赖于三色视锥细胞的合成!
洋红在光学上不对应任何波长的光!(即并不真正存在)
而色相环是描述人类感受的颜色环
知乎:为什么没有绿毛的哺乳动物
佐证:长锥细胞和中锥细胞很早以前是同一种,动物分不出绿和黄
狮子以为自己的颜色是保护色,但狮子的猎物也没有分化视锥细胞
PS的视图>校准,有红色盲型和绿色盲型
(在设计中这个功能可以看你的设计方不方便色盲的使用)
有些游戏还有色盲模式
在人眼看来一样的颜色,在其他动物看来有可能是两个颜色?
色彩描述系统
现代色环:RGB色彩描述系统
符合人类色彩感知原理,但不符合人描述色彩的习惯
HSB色彩描述系统
H:Hue色相;S:Saturation饱和度;B:Brightness明度
符合人描述色彩习惯
色相单位是度,RYGCBM分别对应0,60,120,180,240,300度
CMYK系统
非光色系统
原色颜料:即只吸收光原色的颜料
Cyan吸Red反Bule&Green
Megenta吸Green反Red&Bule
Yellow吸Blue反Rend&Green
这样就可以对颜料进行配色!配出在反弹RGB光的RGB色
根据原理:三原色能配其他色,其他色不能配三原色
以前说的红黄蓝不对,应该要反射两种光(在吸收一种才对)
如果给你红黄蓝,理论上不能配出所有颜色!
但实际上,能配出绝大多数颜色了,行之有效
配紫色可能有点问题,但用紫色不常见
打印机用的CMYK
视觉色彩恒常性与相对色感
知乎:蓝黑还是白金(裙)
蓝色裤子进红光酒吧-人脑会认为是蓝裤或者黑裤
黄光环境人脑补蓝,蓝光环境人脑补黄
想要强行还原,就在黄光环境下把某个颜色加黄,蓝色环境下把某个颜色加蓝
逆反人脑的“调整”
也是某佑来了讲的“白色zn现象”
颜色单词
红Red,(橙Orange,)黄Yellow,绿Green,
青蓝Cyan(SaiAn),深蓝Bule,(紫蓝Violet,)洋红Megenta
(Violet紫罗兰色,Yellow柠檬黄,Blue深蓝而非天空蓝)
色域空间
显示屏显示的颜色<自然界的可见光颜色
新版V-Ray,金属应该这么调——金属度(metalness)专题讲座
从计算机图形学中漫反射的定义看金属材质
万物都有漫反射,漫反射是什么:次表面散射的宏观现象
everything has diffuse,everything has fresnel.
(老韩以前调金属是fresnel ior调高,关菲涅尔是弟弟行为2333)
非金属,反射+散射,【兰伯特模型】
金属,散射被完全吸收,即无漫反射,意味着漫反射颜色要拉成黑色,无漫反射特性
菲涅尔IOR折射率,与现实不同?金属的1.X要调到20-40,隔行如隔山,【VR之父vlado】
实例
金子,拉黑漫反射,给金色反射,IOR到25或以上。具体查表
玻璃,折射率1.55左右
非金属,必反射灰度。其反射对通道没有趋向性
怎么用数值还原?
https://refractiveindex.info,专门查折射率的网站
Shelf-3D,Book-Metals,Page-Cu
3通道下的n值和k值都不同。n值-IOR,k值-,
旧方法:用官方插件Complex_ior。新版本引入金属性材质后,就过时了
新方法:用金属性,查表(话说这里填漫反射颜色了)
vraymasters.cn/magazine/understanding-metalness/中有篇“了解金属性”的文章
这里面有个表,金属性参数都是1
3ds照填就好
Sketchup里色彩空间要调到线性的(RGB而非SRGB),再填数据
线性材质滑板,中间的灰128,则是非线性滑板!?
为什么用数值还原又要有漫反射呢?
金属性的1和0可切换金属与非金属
这样一来,加入金属性材质后,用这种方法记录
即用diffuse代替reflect记录颜色趋向,可省掉一个通道
PBR材质体系【Physically-Based Rendering】
为什么是滑竿而非开关?
半导体有可能是1到0之间?知乎叛逆者的一篇文章,但不确定
但应该是这辈子用不上了
Gamma校正和线性工作流
Gamma校正
为什么要做gamma校正
1.人对光强度的感知是非线性的
2.数字图像所能采集和回放的灰阶层次有限,要省着用,术语叫节约带宽
美术灰阶与物理灰阶
两种灰阶图
美术上的中灰,美术上较于直观,美术中灰约是纯白的20%左右(21.8%)
物理上的中间调,物理光强均匀增强不符合人类主观印象
伽马校正含义
由于色阶有限,用物理灰阶分段则暗部过渡不均匀
gamma就是把两种灰阶函数联系起来的函数校正,把光强灰阶非线性校正为美术灰阶
y=x^gamma
sRGB(stand RGB)是一个gamma约等于2.2的色彩空间
导出与显示
导出的8位每通道(2^8=256)数据,bmp,jpg,png这些都经过了校正,抽象来讲是“美术数据”
(RGB导出时,gamma=0.454时,是一条向上凸的gamma阶函数图像)
如果直接按色阶显示,会偏亮。这时显示器会重新gamma校正压回来,减低发光
(此时gamma=2.2,函数往下压。2.2和0.454互为倒数,两次gamma校正后值不变,变回原图)
误用结果
物理数据用于显示,给显示屏处理,因为便于控制发光。或者打印?
美术数据用于存储,因为便于存储更多人眼所更需要的数据
若把物理数据用于存储,则暗部信息存储得少,显示时暗部过渡不均匀
若把美术数据用于显示,则未经过校正的美术数据中的中灰(20%纯白)会被当做128来显示
显示成更亮的物理中灰,即画面整体变亮!
线性工作流
没有使用线性工作流
光线衰减快,高光易曝,室内易暗
这里就是犯了上面所说的“误用”的错误
vRay按道理是物理引擎,要给物理数据。但给的贴图却是美术数据,把偏亮的贴图给了渲染器
若调到贴图正常,则表现为灯光衰减快
线性工作流流程
首先,导入贴图时把gamma值变回1,叫De-Gamma
然后,数据显示时会被屏幕压暗,然后用gamma校正提回来
PS的线性工作流
缩放、柔边缘画笔,高斯模糊都是错的?
在8位每通道的环境下做物理计算,都是错的。结果会更暗更黑
缩放、高斯模糊
如一个黑白棋盘格,现实中离远(缩小)了看应该得到物理中灰,但屏幕会显示美术中灰
怎么得到正确平均色?在32位每通道下运算即可!
保存
32位环境工作满意后,cn新建新图层,csae盖印所有图层,复制到新文件,切回8位再保存
3ds的线性工作流流程(一般来说什么都不知道的话就是会正常自动gamma)
3ds渲染帧窗口
自定义>首选项>Gamma和LUT>默认就是线性工作流正确参数(启用,Gamma2.2,勾选影响颜色、材质选择器)
但是,同时意味着调整颜色时的RGB通道数值不再拥有任何参考意义
VRay渲染帧窗口
按下伽马曲线
渲染设置>颜色映射(专家模式)
默认Gamma2.2没错,莱茵哈德(Reinhard)1.0=线性倍增
不够选子像素贴图,钳制输出,不要勾选线性工作流!(再勾就会de-gamma两次)
模式,在线性倍增(/Reinhard1.0)下都一样。非线性倍增看情况
导入贴图/导出图片时,的窗口有个gamma自动,默认就会校正贴图颜色。8位自动给2.2gamma,32位不给。
重点
不是所有贴图都需要de-gamma
光泽度,IOR,法线图这种8位每通道的图,不需要。导入时【不要】选择自动gamma!
(与颜色有关,都要de-gamma,与数值有关,不要de-gamma)
法线图VRayHDRI可以随时调整gamma值
(斜波举例-VRayDisplacmanMod-VR置换修改器)
【重要技巧】看VR法线贴图未添加贴图时和自己添加的法线图的色调是否一致
用法线图而非凹凸时,记得把30改回100
9012年了,有同学还在用魔棒抠图
用快速选择
调整边缘改名为选择并遮住
新增:选择主体(AI)
选择并遮住模式
视图:F切换预览模式,不透明度调整遮住蒙版不透明度
快速选择:alt临时切换,e正负切换,[]控制大小等
边缘修改技巧
平滑不能直接给,先羽化模糊,再用对比度卡掉,可得到赶紧的平滑边缘
移动边缘去掉颜色边
再细:B:蒙版笔刷(黑白笔刷)
净化颜色:净化边缘的"异颜色"(会修改掉原图)
永远不要用自发光材质做主光源,不然会产生光斑
VR计算漫反射表面亮度分两步
1.直接光照(Lighting)
2.全局照明(GI,Global IIIumination)
计算原理
直接光照
快且准确,要计算区域和光源直接连线即可计算出来
GI
计算非常麻烦,要计算的区域要向场景发出非常多的随机样本来收集信息
亮斑和暗斑产生直接原因
如果场景中有面积非常小但是非常亮的表面(是表面而非灯光)
那么从区域发出的随机样本未必能达到那些表面
若达到的少,则产生黑斑;若达到的多,则产生亮斑
自发光材质会导致明显的光斑
VRay自发光材质虽然会发光但不属于灯光,发光的只是表面,提供的是GI的照明!
首次引擎:发光贴图:体现为光斑
首次引擎:暴力计算:体现为噪点
没有用自发光也产生光斑?
筒灯模型内的灯光在360度打光时,使灯筒壁表面非常亮,这种表面本质上类似于自发光材质
从而产生光斑
解决方法:筒灯内部不用点光源或球等,用聚光灯或IES灯
VR-4.0-Next新版本那些事
整体更快
VR自适应灯光(灯特别多时速度相对以前增加越快)
在渲染面板-VRay-专家模式的全局开关那里,旧版是完整灯光求值
多重重要性采样
自适应穹顶灯光
9012年了,还在“渲小图,出大图”?
VRay出图拆分两个步骤
“跑光子”,GI预采样
“出正图”,正视图AA采样+着色采样
一般出图流程
引擎发光贴图配灯光缓存,两者都是预采样算法
顺序是先跑灯光缓存,再跑发光贴图
1.出现一堆小点, Building light cache... 是跑灯光缓存过程
2.方块把小点扫成小马赛克 Prepass n of m... 是跑发光贴图过程
3.然后这遍扫描会比较慢 Rendering image... 是正式出图过程
4.最后还有一遍降噪过程
什么是出小图,渲大图?
出小图,但要用极高参数,发光贴图和灯光缓存调得特别高,得到光子文件并保存
.vrmap是发光贴图文件。.vrlmap是灯光缓存文件
然后给大图尺寸,但其他质量参数不必太高了,用之前得到的光子文件来渲
这样渲染没有预采样信息,直接出大图
牺牲掉的:是反弹光的质量
非照片级可接受,而且已经用了发光贴图配灯光缓存,已经是不准确的间接光了
控制GI细分【更简单省时间的方法】
灯光缓存:
Subdivs细分(其平方就是计算射线的数量)(高质量就是2000),与图幅无关
发光贴图:
MinRate最小速率-最简单的地方,每个像素取多少个样本(4位底的n次方,-3即4^-3=1/64,或者说64个像素共用一个样本)
MaxRate最大速率-最复杂的地方,每个像素取多少个样本(4位底的n次方,0即4^0=1)
Subdivs细分,一个样本要射出多少条射线(其平方就是计算射线的数量)
那么就是说,可以控制细分,让不同大小图幅的图,取一样多的样本
VR十周年聚会视频
“如果我们想得到物理准确的结果,就得用无偏渲染”
“我可不想花十二小时就等**一张渲染图”
有偏算法:采集GI间接光时用灯光缓存配发光贴图
无偏算法:VR切成Bxxx Force
“Everything has Fresnel”
“看见没有(美钞),半透明。就用双面材质,好用极了。能出来影子”
“...代理物体...”
“次表面散射”
“物理摄像机”
Christopher Nichols
技术性博客
Bilibili___V-Ray中文资讯站
【VrNext上】软件评书,VR next的幕后故事-高光、反射光泽度合并
VR出生日:2002.3.13
VR 4---VR Next (four-for)
新特性:
提速25%
光线追踪库(求交点速度提升1倍)
场景渲染速度最多快7倍
自适应灯光与自适应穹顶灯光
自适应开关在渲染设置的全局开关中
自适应穹顶灯光在灯光设置面板的穹顶灯光中
幕后Story
1.Code:The inverse>The inverse probability
2.非物理会出现的错误,反射但透光的片,高光不同反射光泽度
【VrNext下】为啥高光、反射光泽度合并了,自适应穹顶灯光什么意思
多重重要性采样
Light(灯光)、BRDF(材质)之间寻求平衡
Specular、Reflection的区别
Specular+Reflection得到反射实际效果的总贡献
两者是对灯光、对环境的两个采样
Specular是对灯光的反射,Reflection是对环境的反射
Specular是相当于Lighting,Reflection相当于Global illumination
Specular是对灯光重要性采样(Light),Reflection是对材质重要性采样(BRDF)
Specular有关于旧版的高光光泽度,Reflection有关于旧版的反射光泽度
Lighting可以直接套公式,如灯光有平方反比定律(亮度和距离)
那么如果高光光泽度和反射光泽度不同,又或者有非物理的透光片
就会造成Specular层和Reflection层不平衡,产生方块/噪点