随笔分类 -  Shader

GPU图形绘制管线简介
摘要:(阅读GPU+编程与CG+语言之阳春白雪下里巴人所得总结) GPU图形绘制管线是描述GPU渲染(把三维世界显示为屏幕上的二维图像)的流程,主要分为三个主要阶段应用程序阶段、几何阶段、光栅阶段。 1.应用程序阶段 使用高级编程语言进行开发,和CPU、内存交互(诸如碰撞检测、场景图建立、空间八叉树更新、 阅读全文

posted @ 2019-06-27 17:04 pj2933 阅读(400) 评论(0) 推荐(0)

溶解shader
摘要:玩神界原罪2,感觉人物被建筑遮挡时,建筑的“溶解”效果很有意思,想实现一下。然后发现连溶解都没实现过,emmmmm。。。。先来把溶解实现了~ 原理就是根据一张噪声图的值是否大于某个阈值,来判断是否丢弃像素值。然后阈值从0到1就可以让物体从有到无了。然后加了一条溶解的过渡带,为了显得不那么突兀。 改变阈值从0到1再从1到0,效果如下:代码如下:// Upgrade NOTE: replac... 阅读全文

posted @ 2019-03-21 15:01 pj2933 阅读(665) 评论(0) 推荐(0)

后处理之径向模糊
摘要:游戏中为了突出画面震撼或者突出移动速度快时,可以用径向模糊来提升表现的效果。例图如下: 径向模糊的原理是取一个中心点,然后沿着中心点 像素点的方向选取几个点采样,然后该像素点输出这几个采样点的平均值。因此约靠近中心越清晰,越远则越模糊。画图工具里瞎比划一下。。。 代码里进行了一些优化,思路是将图像渲 阅读全文

posted @ 2019-02-12 18:30 pj2933 阅读(1614) 评论(0) 推荐(0)

描边shader(法线外拓)
摘要:描边的思路是需要两个pass。第一个pass让顶点沿着法线方向延伸出去,使得模型变大一圈。第二个pass正常渲染,让正常渲染的模型挡在第一个pass之上,这样就会露出延伸出去的部分,延伸出去的就是我们要的描边了。代码实现如下: 效果如下: 法线外拓有些缺陷,在棱角分明的模型中表现较差,锐利的部分,描 阅读全文

posted @ 2018-11-01 23:01 pj2933 阅读(881) 评论(0) 推荐(0)

透视效果shader(边缘光)
摘要:思路:渲染两次。 1.第一次渲染:利用Greater进行深度测试,当目标被遮挡时,用一个边缘光的效果显示。 2.第二次渲染:正常渲染。 边缘光的思路:观察方向和顶点法向量夹角越大,边缘光越明显。边缘光强度由公式rim=1-dot(view,normal)来表示。 代码实现: 阅读全文

posted @ 2018-09-07 16:07 pj2933 阅读(449) 评论(0) 推荐(0)

Cook-Torrance光照模型
摘要:Cook-Torrance光照模型将物体粗糙表面看作由很多微平面组成,每一个微平面都可以看成一个理想的镜面反射体,物体表面粗糙程度由微平面斜率的变化来表示。越粗糙的表面由斜率变化越大,反之越小。 Cook-Torrance模型将光分为两个方面考虑,漫反射光强和镜面反射光强:Ic-t=Idiff+Is 阅读全文

posted @ 2018-08-23 15:57 pj2933 阅读(2335) 评论(0) 推荐(0)

关于cg语言中求法向量 N=mul(worldMatrix_IT,normal); 的随笔
摘要:解释一下标题,N是变换到世界坐标后的法向量,worldMatrix_IT是变换矩阵worldMatrix的逆的转置矩阵,normal就是模型坐标的法向量。 对于点p,我们根据变换矩阵M(即worldMatrix)得到世界坐标的点为p',可以写为p'=Mp。在cg语言中就是p'.position=mu 阅读全文

posted @ 2018-03-07 17:38 pj2933 阅读(500) 评论(0) 推荐(0)

导航