V
主页
【Unity3D Shader】穿墙透视
发布人
【Unity3D Shader】穿墙透视 技术实现: 1、圆形遮罩函数 void Ellipse(float2 UV, float Width, float Height, out float Out) { float d = length((UV * 2 - 1) / float2(Width, Height)); Out = saturate((1 - d) / fwidth(d)); } 2、数值映射函数 void Remap(float In, float2 InMinMax, float2 OutMinMax, out float Out) { Out = OutMinMax.x + (In - InMinMax.x) * (OutMinMax.y - OutMinMax.x) / (InMinMax.y - InMinMax.x); } 3、缓动函数(控制遮罩的动画) float easeOutBounce(float x) { float n1 = 7.5625; float d1 = 2.75; if (x < 1 / d1) { return n1 * x * x; } else if (x < 2 / d1) { return n1 * (x -= 1.5 / d1) * x + 0.75; } else if (x < 2.5 / d1) { return n1 * (x -= 2.25 / d1) * x + 0.9375; } else { return n1 * (x -= 2.625 / d1) * x + 0.984375; } } 1、屏幕帧缓存抓出来一张贴图 GrabPass { "_GrabTex" } 2、顶点着色器内:o.grabPos = ComputeGrabScreenPos(o.vertex); 片段着色器内:i.grabPos.xy /= i.grabPos.w; //手动除以齐次坐标 3、通过数值映射函数Remap()将玩家位置映射到屏幕中心,数值约为(0.5f, -1.5f),映射后的值作为圆心的offset偏移量使用 4、使用圆形遮罩函数Ellipse()时,可固定Width或者Height为变量,则另一个量需要先获得屏幕的宽高比例,例如 "_ScreenParams.y / _ScreenParams.x",再将得出的比例乘上变量,以保证正圆的显示
打开封面
下载高清视频
观看高清视频
视频下载器
【Unity3D Shader】迷雾特效_深度视野
【Unity3D Shader】植物生长_顶点动画
【Unity3D Shader】可交互花_可交互草地
【Unity3D Shader】模型溶解消散
【Unity3D Shader】植物摆动
【Unity3D Shader】漂浮方块
【Unity3D Shader】X光扫描_XRay透视
【Unity3D Shader】小球进布
【Unity3D Shader】球体渐变方块
【DirectX HLSL】可交互花_可交互草地
【Unity3D Shader】保护罩
【Unity3D Shader】水面交互涟漪
【Unity3D 教程】平滑模型的法线_法线挤出模型描边
【Unity3D Shader】笼中窥梦_模板测试
【Unity3D Shader】雪地交互痕迹
【Unity3D Shader】模型虚线描边
【Unity3D Shader】瓶中的晃动液体
(unity游戏特效)大世界特效摸鱼,画贴图真开心阿
【Unity3D Shader】信号毛刺_信号干扰
【Unity3D Shader】场景扫描_深度检测
【Unity3D Shader】弧形道路
【Unity3D Shader】NPR_卡通渲染
【Unity3D Shader】毛发_绒毛
【DirectX HLSL】漂浮方块
【DirectX HLSL】模型扫描
【DirectX HLSL】简单水体
屏幕空间残影
[Unity URP]像素化场景渲染demo
【DirectX HLSL】信号毛刺_信号干扰
【Unity3D Shader】模型扫描
【Unity3D Shader】卡通水体_风格化水体
unity URP管线 桑原滤镜后处理效果展示
miku:【看好了,小猴子, 定身术就是这么用的!】【游戏特效师发癫记录】beats it !!
程序化简单村落布局
程序化寻路系统
(unity游戏特效)慢镜头小刀光—鸣潮—今汐重击复刻
【深入浅出】【TA必会】GPU架构与渲染优化-光栅化篇
为什么总要编译着色器,着色器到底是个啥?
【DirectX HLSL】模型溶解消散
【unity 特效练习】国风3连击 借鉴形式: 鸣潮 今汐