图形学和shader
zwlstc
what I can not create , what I do not understand
展开
-
Pbr和一般光照模型的区别
pbr (physically based rendering) ,基于物理的渲染。首先明确一点,物体有颜色是因为那些没有被物体吸收的光线(表现为物体的颜色)射入你的眼睛,你才感知到了颜色。从光照模型的角度来说,射入你眼睛的有两种光,一种是直接的反射光(表现为光本来的颜色),一种是折射进入物体后又散射出来的所谓漫反射光(即被吸收过了的光,也就是贴图的颜色)pbr和原始的blinn-phon...原创 2019-01-24 08:56:33 · 6438 阅读 · 0 评论 -
法向半球内单位向量(切空间) 转世界空间表示
已知此切线空间的法线在世界空间中的表示N,求此切线空间构成的半球形空间任意单位向量(θ,φ)在世界空间中的表示首先根据N,计算该向量所在切线空间另外两个正交基的世界空间表示。先设一个临时向量Vtemp(0,1,0) ( it works....)则切线单位向量Vt = cross(Vtemp,N) 副切线单位向量Vbt=cross(N,Vt);然后,看图.....原创 2019-01-25 21:53:49 · 956 阅读 · 0 评论 -
ShadowMap 中的 Shadow Asne
阴影技术中最简单的一种(其他的可以算作他的变种)是所谓的shadow mapping(适用于平行光)他需要事先为场景中的物体,在以光源为视角的视口内,渲染一张深度图。在那个视口里,只有最靠近光源的片元才能将自己的深度写入这张深度图。随后,就正式开始渲染场景了。在正式的片元着色器中,需要先求出片元在光源坐标系内的位置,用xy当作uv坐标值去采样深度图里的深度值,同时用z值和这个深度值比较...原创 2019-01-22 11:31:59 · 593 阅读 · 0 评论 -
Gamma矫正,先有鸡还是先有蛋的故事
先上图 此图出于LearnOpenGl CN。原文可能由于翻译的关系,导致内容其实并不好理解。翻阅了不少资料后(其实就是冯乐乐老师的入门精要,逃...),想对gamma矫正做一个简单的总结。先剖析一下这张图的含义(此图其实不是重点)。首先,横轴代表,给计算机提供的颜色的物理强度rgb(图片上储存的信息或是shader的输出),纵轴是计算机实际会为这个值提供多少物理强度中间直的小点虚...原创 2019-01-21 10:52:22 · 573 阅读 · 0 评论 -
视差映射 Parallax Mapping
这种技术和法线贴图结合使用,可以给物体表面增加惊人的细节,这边只谈实现上的注意点。首先是最简单的一种,一般不会采用的那种,但用来理解最核心的思想是极好的。(视差映射在实现时,通常采用的是深度图而非高度图,储存的信息是当前像素凹下去的程度)如图所示,A点即是当前片元着色器正在处理的片元位置。如果不应用任何视差映射技术,则此时应该用A的uv值去相关贴图里采样。但,现在为了体现这个点的位...原创 2019-01-22 20:52:38 · 1515 阅读 · 0 评论 -
直观理解SSAO原理
SSAO ,screen space ambient occlusion 屏幕空间环境光遮蔽。一般光照模型中,环境光用于模拟光线的二次散射,从而使得不受直接光照的地方也能有相应的亮度。很明显,犄角旮旯里,不应该有太多的光被散射出来,所以犄角旮旯和露出表面的环境光不应该相同。而在光照模型中,环境光是一个定值。所以ssao出现了,他解决的就是 如何定量犄角旮旯应该吸收(二次散射不出去...原创 2019-01-23 17:29:03 · 11093 阅读 · 1 评论