自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(8)
  • 收藏
  • 关注

原创 水的渲染(水体)

水体渲染有很多种方法,这里写的很详细。我这里使用Flow Map的方法,先渲染水的主体,白沫以后再写。先放两张参考图:方法介绍本质上就是UV动画,需要的重要素材有两种,一是法线贴图,二是方向贴图。Flow Map的典型使用代码如下所示://get and uncompress the flow vector for this pixelfloat2 flowmap = tex2D( FlowMapS, tex0 ).rg * 2.0f - 1.0f;float cycleOffset = t

2020-05-17 15:49:22 1945

原创 伪次表面散射梳理

渲染角色的时候需要表现出皮肤的通透感,找到下面四种模拟的方法:预积分,贴图映射,matcap,模拟透光。预积分的方法把次表面散射的效果预计算成一张二维查找表,查找表的参数分别是dot(N,L)和曲率,因为这两者结合就能够反映出光照随着曲率的变化。fixed3 sss =tex2D(_SSSLUT,float2(nl*0.499+0.5,cuv));但是边缘不够通透,这种方法可能更适用于写实效果。贴图映射其实上面的预积分方法也属于贴图映射的手段。先来看看效果,原文档在这里。采样的贴图:

2020-05-16 19:22:30 1293

原创 Pbr之连通SubstancePainter和unity

美术说SP里的效果总是和unity里不一样,通过测试发现在SP里写给unity使用的材质,最后的效果比较相近,因为unity做了不少优化,首先是环境光,SP里的环境光diffuse是基于IBL,但是unity是用球谐函数获取的,具体的差别可以看我的这篇文章。SP的API可以在这里查看。下面来在SP2019里实现计算://- Allegorithmic Metal/Rough PBR shader//- ====================================//-//- Impo

2020-05-12 13:43:03 1982 2

原创 替换着色器Replacement Shader的用法

方法解释1.Tags可以自定义。2.subshader标签的使用:原本的shader:Tags { “RenderType”=“Opaque” }替换的shader:Tags { “RenderType”=“Opaque” }Tags { “RenderType”=“SomethingElse” }标签为"RenderType"=“Opaque"的,会被同样是"RenderType”="Opaque"标签的替换shader所替换。需要替换的shader,RenderType后面的键值要一样

2020-05-12 10:13:55 1123

原创 前向渲染路径下多灯光混合梳理

Shade4PointLights:计算四个逐顶点光照,只能用于BasePass,方向、颜色、衰减都已经包含在内,输出的是漫反射,需要直接加载最后的结果中。ShadeSH9:球谐光照,只能用于BasePass。AddPass:每多一个逐像素光照,就调用一次AddPass。模式要使用Blend One One(也可以使用其他混合模式),否则会覆盖BasePass。AddPass中不用计算环境光。如果只有BassPass,除了第一个最亮的平行光之外,其他都会按点光源来计算,可以通过Shade4PointL

2020-05-10 22:14:40 543

原创 Unity深度图的理论知识

深度图的解释在坐标变换中,顶点从裁剪空间到屏幕空间中间有两个步骤,一个是NDC,一个是屏幕映射。NDC在NDC之前,x,y,z,w的值跟Near和far有关,w的范围就是[Near,Far]。经过NDC,即用w除以x,y,z,此时x,y,z的值范围是[-1,1],w是1.(但在OpenGl中,z的范围是[0,1])。z就是深度值。储存到纹理中映射一下:d=z*0.5+0.5屏幕映射经过NDC后,在根据屏幕像素来把x,y映射到屏幕上。映射方法:screen_x = clip_x * pix

2020-05-09 16:15:01 1578

原创 UnityShader水墨渲染的尝试

UnityShader水墨渲染的尝试描边混合纹理先上一张原图,模型素材之类的可以在这里下载描边使用最基本的dot(n,v)来计算边缘,根据需要给控制项,这里我使用了pow来使明暗对比更强烈,又除以一个值调整过渡。half nv = max(saturate(dot(bump, viewDir)),0.0001);//这里用除法调节起来比较好控制fixed outline = po...

2020-05-05 18:37:50 3447

原创 PBR之IBL和球谐的梳理

@PBR之IBL和球谐的梳理其实pbr直接光输出的结果看起来都差不多,重点在于间接光的计算,因此引入了IBL和球谐。基础首先是反射方程:Lo(p,wo)=∫Ω fr(p,wi,wo)Li(p,wi)n⋅widwiL_o(p,w_o)=\int_\Omega\ f_r(p,w_i,w_o)L_i(p,w_i)n\cdot w_idw_iLo​(p,wo​)=∫Ω​ ...

2020-05-04 00:40:21 2072

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除