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