- 博客(25)
- 收藏
- 关注
原创 [URP]PBR光照模型Shader(持续优化ing)
从美术角度去理解,大致分为两个,直接光照模型 + 间接光照模型 + 环境阴影;写代码的时候列出所需参数,代入公式,Debug输出值观察所需颜色结果;
2023-08-09 13:38:22 909 1
原创 [HDRP]数字人解决方案
这里主要说的是HDRP的方案,URP的下篇文章再讲,视频中我用到了HDRP中HairFx的毛发插件,对应的也有URP的版本,不过锯齿闪烁非常严重,即便开了抗锯齿也很难有所改善;一番性能测试下来,大概就是,用来做演示可以,实际投入到项目中还是很困难,消耗挺大,hairfx只能说是未来可期吧,目前也仅仅支持到2021版本,2022版本以上暂不支持;至于角色的微表情,我是使用的是Blendshape事先做好shape,再使用lerp插值做的表情变化;Unity数字人捏脸挑战。
2023-07-20 11:28:28 353 2
原创 BUild in管线下的sss角色渲染shader(移动端)
剩下的就是反射之间的算法区别;我这里做了两种,方便不同需求下的使用GGX/Kelemen;默认管线下的sss材质来来回回大部分就那么几种做法,最常规的就是预积分,用一张lut图;汗水是单独写了一个方法,也可以单独做一个Pass,类似的处理方法有很多,不做过多赘述;//细节Lut图方法。
2023-07-06 10:30:35 369 1
原创 图片产生深度效果的6种方式
它通过计算射线与盒子在 3D 空间中的相交点,并基于这个相交点从纹理中采样颜色,沿视线方向挤压。这个 Shader 的核心是将输入的 HDR 环境图像通过反射方向进行采样,并且允许对反射方向进行旋转和调整 MIP 级别。,主要通过计算光线与盒子相交的点,并通过反射方向从立方体贴图(Cubemap)中采样颜色,模拟物体表面的环境反射。基于光线步进,模拟体积渲染,我这里层数故意设置高了,实际可以不用这么多;PS:这里可以将2D图改成CubeMap方式去采样;PS:里面有Cube图的采样方式,可以用作替代;
2024-10-22 13:45:49 366
原创 4 种网格线渲染(Shader)
平面),来模拟 UV 映射的效果。这样,即使模型没有 UV,线条依然能够通过物体的几何坐标来生成。的值输出指定数量的顶点。当前几何着色器通过遍历输入的三角形顶点,输出经过裁剪空间变换的顶点到。优点:不依赖模型UV;缺点:分布线不均匀,并且平面容易出现极坐标效果;来确定是否在网格线的附近,进而生成网格线条。缺点:如果该模型没有UV,那么计算就会出错;通过将局部坐标映射到不同的平面(例如。根据计算出的伪 UV 坐标,使用。控制生成几何的数量。优点:网格分布线均匀;
2024-10-17 17:26:36 335
原创 URP Simple mesh雾效
1 . 用菲尼尔控制外边缘模糊加上菲尼尔反向后的内边缘模糊,用参数两者的强度控制;2 . 用uv或者mesh的顶点的轴向消除掉两端的硬度(这里用UV);
2024-07-26 10:30:24 159
原创 Unity自定义360°全景图全流程
这一步同样也是可以直接在Unity里面通过shader去合并输出成图,感兴趣的请自行搜索相关教程;③将6面图合并成一张符合球形畸变的全景图;②将CubeMap解出6面图;步骤思路:①先采样3D场景采样输出成CubeMap文件;先采样CubeMap文件,这里必须是6面CubeMap;
2024-04-12 11:26:47 630
原创 [默认管线]2D图羽化内外发光Shader
其实说白了就是想做实时抠像,然后内外边缘给到羽化,就这么一个效果;如果是给模型做羽化,在不用Bloom的情况下可以用(1-F)去做;2D图片的话就不能这么做了;
2023-09-07 14:09:42 322 1
原创 [URP]交互水Shader(未完ing)
美术思路:获取屏幕中得一张RT图,传给Shader生成高度图,至于水的效果就按照正常流程去写,顶点起伏+水面反射(海水的话得加湍流)+ 泡沫 + 水边缘处理;目前水Shader还没写完后面有空再接着写;水还没写完,后面有空再写,后面有空再写~
2023-09-06 18:36:43 300 1
原创 [URP]阴影与环境光(常见问题)
另外补充一下投射阴影也不一定非要使用UsePass "Universal Render Pipeline/Lit/ShadowCaster"的这篇文章,文章写得很详细,但在实测中发现改代码并没有接受阴影,只有投影,排查发现在。有时候需要单独处理阴影做偏移的时候,也可以单独写一个阴影Pass;完整代码我就不复制了,直接复制罗老师代码修改下划线就行;//接受物体投射出来的阴影。这段代码中少了一个“_”,修改后应该是这样。三个都加上“_”后接受阴影才会显示正常;
2023-08-15 10:45:17 422 2
原创 [URP]URP中HairFx性能测试
后面出Demo在手机里实测下性能表现再作评价........(会持续跟进这个技术点)URP中HairFx画面表现。
2023-08-14 16:12:51 284 1
原创 [Build-in]UI轻动态shader
因为uv是xy(0,1)值,圆心不在是float2(0,0),而是float2(0.5,0.5);同时贴图设置中也需要修改平铺设置wrap mode---clamp(这个设置必须)如果你想让这个UI不被其他排序影响一直显示在最前方,可以将ZTest Always开启;
2023-08-03 15:40:50 120
原创 [Build-in]全息城市(球状Mask)
智慧城市中可能会经常要用到的一个效果,关键代码主要是:distance(x,y);这个算法会将x,y之间算出距离得出一个float的值,改值范围在0到1;我这里算的是顶点到圆心的距离,将这个值作为Mask;至于圆心是一个简单的C#脚本;
2023-08-02 19:35:47 115
原创 [默认管线]镜面效果
一个比较常用的镜面效果,性能开销比较大,mesh必须是跟plane保持轴向一致,因为用到了矩阵换算,后面会考虑做URP的效果;
2023-08-01 09:44:04 104 1
原创 [默认管线]GrabPass的应用方法
我们获取到屏幕上的这张图片后,可以随意操作,例如配合法线去扭曲这张图片使之形成各种效果(毛玻璃,眼球的晶状体,热扭曲等等),甚至在扭曲法线后配合光照矢量做出你喜欢的扭曲高光等等;这一段关键代码,目的就是为了获取屏幕上采集的这部分区域的uv 坐标位置,只有获取到这个二维float值,才能方便我们去采样这张图,继续后面的操作;我这里做了个简单的示例,同时也是之前项目用到的,因为我希望它有湍流的效果同时能扭曲背后的图像,边缘也要有一定的厚度看起来像有点体积感;
2023-07-31 10:12:54 170 1
原创 [默认管线]物理光照模型shader
美术角度:既然是移动端,那得尽可能的减少贴图采样次数,用最低的消耗尽可能的达到想要的效果,这里大头出效果的主要是靠cubemap出环境反射,加上phong反射以及表面反射后的效果;
2023-07-18 18:46:34 135 1
原创 [URP]自定义URP管线下的屏幕效果
URP和Build in管线在屏幕效果的自定义上有所不同,默认管线可以直接通过摄像机获取屏幕信息传递给shader去处理画面,将最终所得值再塞给相机;以下的效果是之前收到的一个需求:需要A物体穿入B物体时,屏幕缓慢变亮,穿过后,屏幕缓慢变暗;(我想他大概是想做穿隧道时,这样的亮度效果吧...)urp因为使用了Post Processing,很好的处理了堆栈问题,我们需要想办法在volume上添加我们想要的效果;接下来,需要在Renderer Features上添加我们需要做的渲染层;
2023-07-15 18:58:43 199 2
原创 [URP]序列帧shader(枚举全)
之前给客户写的一个比较常用的序列帧shader,方便他适用项目的各种情况;先放个URP书写模板,然后往里塞东西就行;
2023-07-13 11:05:22 234 1
原创 Unity默认管线下的线框渲染
函数接收一个包含三个三角形顶点的输入数组input,并将转换后的数据输出到LineStream类型的outStream中,说白了就是为了改变顶点结构体的细分;目的是用Geometry Shader的函数,用于将输入的三角形顶点转换为包含额外信息的LineStream。这个是项目中用到的一个小效果,主要拆分成三个:线框渲染+菲涅尔+uv流动;剩下的菲涅尔没啥可说的,公式化的东西,直接复制;以下是pass中的处理方法,我加入了uv流动;
2023-07-13 10:13:40 372 1
原创 滑动条自定义shader
unity的滑动条分割过硬,加上需求是在默认管线下,post辉光也不让用,于是自定义分割线;思路大概就是两个pass一个做底,一个做辉光线,挺简单的;
2023-06-29 11:14:55 215
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人