- 博客(39)
- 资源 (1)
- 收藏
- 关注
原创 URP颜色空间转换函数位置
URP的颜色空间转换函数,都放在了\com.unity.render-pipelines.core@7.3.1\ShaderLibrary\Color.hlsl记录下,方便查找
2020-09-09 12:02:51
388
原创 UNITY URP环境色 和 built-in 环境色的函数区别
好久没写blog,最近刚升级到2019,把项目切换到URP,尝试看看能提升多少性能.在转换shader的过程中(全部手动转换T T),发现环境色 Ambient Color的函数变化了.URP官方的文档中给予了三个新变量real4unity_AmbientSky;real4unity_AmbientEquator;real4unity_AmbientGround;Built-in中函数是UNITY_LIGHTMODEL_AMBIENT但尴尬的是用上面3个任意一个去替换原始...
2020-07-29 12:29:25
1891
4
原创 在小米mix黑鲨系列手机上,Shader效果bug
在pc Unity端安卓环境 测试正常后发现在小米黑鲨系列手机 shader显示效果错误.经过一上午的排除对比,不停的出真机包.找到了问题的所在: 错误效果 fixed mixNdotL = max(dot(tangentNormal, -i.worldLightDir), 0); 正确效果 fixed mixNdotL = sa...
2020-06-19 00:12:13
550
原创 unity 透明shader注意事项
如果透明物体要开启双面,并且有一些额外的效果.这时采用一个pass做完,真机会有mesh破碎,黑块等等错误,问题其实就在于Front和Back两层的关系没有处理好.经过一些尝试我发现不管怎么处理,在单个pass下 双面透明都会有破碎的现象.解决方式: pass分拆.Front和Back分别写一个pass即可解决.附带一个额外的好处就是两层可以写不同的效果....
2020-03-05 20:48:54
253
原创 UI shader 增加mask遮罩的支持
年前最后一贴,祝自己在明年能获得更多的Exp.在为ui写shader时 一定要考虑到 ui mask 的问题, 加入对应的裁剪代码.[Toggle(UNITY_UI_ALPHACLIP)] _UseUIAlphaClip ("Use Alpha Clip", Float) = 0ZTest [unity_GUIZTestMode]#include "UnityUI.cginc"...
2020-01-19 12:48:44
900
原创 Unity Shader Tags 位置不同的区别
Tags 有两种写法 一是写在Subshader 下 二是写在Pass下 以前一直没注意两者见的区别.今天偶然发现区别非常的大,而且非常的实用.一句话概括: Subshader下的Tags 在把一个材质球更换shader后,材质球的Render Queue 会自动改为Tags中写的Queue. Pass下的Tags 在材质球更换shader...
2019-11-06 16:49:00
234
原创 在TextMesh下 实现擦黑板效果
先上效果最开始的思路上是想通过一张贴图来做Mask遮罩,然后移动这张图来实现擦除效果.要做贴图就要有UV.在开始动手后,才发现Text Mesh的UV几乎是乱序的.也就是不能使用字体的默认UV去映射Mask.见下图.既然默认的不能用,咋整,就创建一个新的UV来映射Mask吧.U和V考虑的是不同的创建方法:U = lerp(0, 0.3 , i.posWorld.x+_...
2019-10-10 14:45:26
449
2
原创 UnpackScaleNormal函 使用遇到的问题
今天吃了没文化的亏,复盘下half3 UnpackScaleNormal(half4 packednormal, half bumpScale)这个函数用来使用法线贴图,同时用bumpScale变量控制法线的强度.那么问题来了,写进去后,bumpScale就是无效果,也无任何报错.滚来滚去查了1小时,想起去看这个函数的结构如下half3 UnpackScaleNormal(ha...
2019-09-24 16:26:35
1992
原创 Unity Shader ShadowCaster Pass
备忘在此unity2017.4版本的shadowcaster pass,加上此pass后,物体可以产生投影.为何把这个pass单独写出,因为fallback/Diffuse或其他的默认shader,虽然也能产生同样的效果,但还是想尽量可控 Pass { Name "ShadowCaster" Tags { "LightMode" = "ShadowCa...
2019-08-22 16:41:20
2521
原创 Unity Particle System Custom Date 测试
复盘下 Custom Date 的使用过程(初次学习若有错,欢迎大佬指正)Custom Date 是输出参数给shader的接口 ,相当于shader 中的Properties 需要配合Render下的Custom Vertex Streams一起使用,Custom Vertex Streams(自定义顶点流)是输出何种参数给shader的路径或者说一个管道,相当于shader中的a2v.举...
2019-05-07 19:42:01
2986
原创 uv控制
v.uv += (v.uv.xy*_FlowMap_ST.xy+(_FlowMap_ST.zw+_FlowSpeed.xy));笔记,方便查找
2019-03-04 11:45:24
459
原创 cull off 导致的错误显示
cull off 灯光和法线dot 产生的阴影中就会有蜜汁赛博朋克感.(模型法线特殊处理过,有多层UV)cull back 解决
2019-01-08 17:42:02
599
原创 "LightMode"="ForwardBase"的坑
如果不在tags里写入"LightMode"="ForwardBase" 灯光的向量取值会出错.......md查了几个小时才查出来.
2018-08-29 18:58:58
4367
1
原创 导入模型顶点色信息的坑
找了半个多小时,发现 float4 vertexColor:COLOR; 这里的COLOR写成Color 虽然写错了但是并不会报错,导致一直找不到错误.
2018-08-21 21:23:45
3273
原创 shader 贴图隐藏缩放偏移
[NoScaleOffset]_MainTex("Main Texture UV3",2D)="white"{}
2018-08-20 10:11:07
1072
原创 Shader学习笔记 - uv贴图扭曲平移自发光效果
今天终于可以学以致用一把~~~在之前TA大神写的shader上我稍稍改了改.本意是加一个简单的流光效果,脑海中想的是加一张贴图滚UV就得,然后越写越收不住,添加了速度,扭曲强度,流光总强度几个参数,还把流光的贴图UV做了一个混合,达到扭曲的效果.效果本身很简单,用shader forge 也能简单实现.代码就不贴了.谨此纪念第一次用代码实战....
2018-05-10 16:45:43
1621
2
原创 Shader学习笔记(17) 顶点偏移水面动画
Shader"wx/water"{ Properties{ _MainTex("Main Tex",2D)="white"{} _Color("Color Tint",Color)=(1,1,1,1) _Magnitude("Distortion Magnitude",Float)=1 _Frequency("Distortion Frequency.
2018-05-08 19:02:23
1268
转载 Shader 学习笔记(16) 帧动画Shader
学习帧动画的思路,附图这套算法不支持CLAMP模式的贴图.实际用起来肯定会出乱子,所以网上看了其他大神的帧动画Shader写法,找到一个蛮好的附在这里,原文为:点击打开链接.为了方便我把大神的代码贴在这里Shader "Custom/SpriteAnimation"{ Properties { _MainTex("main tex" ,2D) = ""{} ...
2018-04-27 17:14:33
339
原创 Shader 学习笔记(15) Glass毛玻璃效果
用到了一个新的PASS:GrabPass.效果图如下:因为是先截取屏幕后,进行一个混合运算,黄色方块虽然在plane的前方,但还是会有扭曲的效果.如果要实现清澈河流的效果.可能还是用Render Texture 更加的合适.也更节省性能.切线空间转换这里现在还不是很懂.当前只是把代码扒下来.有空回头再看几遍空间转换.Shader"wx/Glass"{ Properties{ _MainTex...
2018-04-26 18:00:22
1300
原创 Shader 学习笔记(14) Fresnel 效果
菲涅尔效果.书上的公式,效果图和原书相比,代码上我稍微调整了下:1 添加了菲涅尔颜色,让效果更显而易见. 2 添加了菲涅尔范围控制,原书中是固定值,我改为范围变量.代码如下:Shader"wx/Fresnel"{ Properties{ _Color("Color Tint",Color)=(1,1,1,1) _FresnelScale("Fresnel Scale",Range(0,1...
2018-04-20 18:21:10
2743
原创 Shader 学习笔记(13) CUBEmap折射效果
基于CUBEmap的折射效果,本质上物体还是不透明的实体.只是在映射CUBEmap时,加入一个折射比的计算.对cubemap映射到物体上的效果做一个折射扭曲算法.并不是通常意义上的光穿过透明物体后产生的折射效果.当折射比为1时,就是无折射效果,模拟一个透明的物体.但如果场景中有个其他物体,产生了遮挡深度关系.那么这个效果就非常的假了,引申下,如果实时抓取环境效果,比如利用反射探针,那么应该会有可以...
2018-04-20 14:46:28
721
原创 Shader 学习笔记(12) Cubemap反射
学到这里有时候还是会懵逼,从这里开始书中的内容不会全部详细说明了.有些函数需要自己查才能知道含义和用法.下面放上我写的cubemap反射效果,和书中相比,减少了对阴影衰减的控制.我还是喜欢纯粹一点的.先上效果图学习过程中,有一些疑问,查了资料后精简了一些代码.关于UnityObjectToWorldNormal,这个函数,在查了UnityCG.cginc后发现返回的值已经做了归一化处理.Shade...
2018-04-19 16:45:25
723
原创 Shader 学习笔记(11) RenderType为Transparent的混合透明
透明度混合可以实现真正的透明,本例中采用的混合方式为Blend SrcAlpha OneMinusSrcAlpha.Blend命令后接着写入不同的混合方式.混合方式有多种组合(后续单独写一篇).SrcAlpha OneMinusSrcAlpha的混合后效果的公式为Shader "wx/AlphaBlendMat"{ Properties{ _Color("Main Tint",Color)=...
2018-04-16 15:48:21
1980
原创 Shader 学习笔记(10) Transparent Cutout效果
开始学习透明和半透明相关Shader效果,对于美术来讲是非常重要的部分.Transparent Cutout在视觉效果和实体物体一样.透明度只能选择0和1.最终的返回的frag值在A上 还是默认的1.0Shader "wx/Alpha Test"{ Properties{ _Color("Main Tint",Color)=(1,1,1,1) _MainTex("Main Tex",2...
2018-04-16 11:22:24
4174
原创 Shader 学习笔记(9) Ramp贴图
// Upgrade NOTE: replaced '_Object2World' with 'unity_ObjectToWorld'Shader "wx/Ramp"{ Properties{ _Color("Color",Color)=(1,1,1,1) _RampTex("Ramp Tex",2D)="white"{} _Specular("Specular",Color)...
2018-04-12 17:55:40
4445
原创 Shader 学习笔记(8) 法线贴图
struct a2v { float4 vertex:POSITION; float3 normal:NORMAL; float4 tangent:TANGENT; float4 texcoord:TEXCOORD0; }; struct v2f { float4 pos:SV_POSITION; ...
2018-04-11 17:49:41
491
原创 Shader 学习笔记(8) Bilnn-Phong 光照
v2f vert(a2v v){ v2f o; o.pos=UnityObjectToClipPos(v.vertex); o.worldNormal=mul(v.normal,(float3x3)unity_WorldToObject); ...
2018-04-10 11:50:44
449
原创 Shader 学习笔记(7) 基本光照模型中高光反射
公式 CGPROGRAM #pragma vertex vert #pragma fragment frag #include "Lighting.cginc" fixed4 _Diffuse; fixed4 _Specular; ...
2018-04-10 11:26:54
289
原创 Shader 学习笔记(6) 半兰伯特光照模型
公式 fixed4 frag(v2f i):SV_Target{ fixed3 ambient=UNITY_LIGHTMODEL_AMBIENT.xyz; fixed3 worldNormal=normalize(i.worldNormal); fixed3 worldLight=normalize(_World...
2018-04-10 09:48:15
353
原创 Shader 学习笔记(5) 逐顶点漫反射光照模型
漫反射光照模型公式Shader "wx/b5"{ Properties{ _Diffuse ("Diffuse",Color)=(1,1,1,1) } SubShader{ Pass{ Tags {"LightMode"="ForwardBase"} //定义lightmode为ForwardBa...
2018-04-09 18:33:06
402
原创 Shader 学习笔记(4)
CGPROGRAM#pragma vertex vert#pragma fragment fragstruct a2v { float4 vertex :POSITION; float3 color :COLOR; float3 normal:NORMAL;};//使用一个结构体定义顶点着色器的输出 v2f=vertex shader to fragment,输...
2018-04-09 11:24:11
291
原创 Shader 学习笔记(3)
Shader "wx/3"{ Subshader{ Pass{ CGPROGRAM #pragma vertex vert //声明 vert 函数 包含顶点着色器代码 #prgame fr...
2018-04-08 18:06:55
205
原创 Shader 学习笔记(2)
Shader "wx/Simple Vertex Shader"{ SubShader{ Pass{ CGPROGRAM #pragma vertex vert #pragma fragment frag fl...
2018-04-04 00:40:13
178
原创 Shader 学习笔记(1)
Properties{ //参数定义语句_Color ("Color Tint",Color)=(1,1,1,1) //定义一个名为Color Tint 的颜色参数,默认值为白色_MainTex("Main Tex",2D)="white"{} //定义一个纹理,名字为Main Tex,默认纹理颜色为白色_Specular ("Specular",Co...
2018-04-01 12:53:20
846
转载 "Particles/Additive" shader 源码
Shader "Particles/Additive" {Properties {_TintColor ("Tint Color", Color) = (0.5,0.5,0.5,0.5)_MainTex ("Particle Texture", 2D) = "white" {}_InvFade ("Soft Particles Factor", Range(0.01,3.0)) ...
2018-03-12 14:42:31
5920
原创 多个按钮监听
using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEngine.SceneManagement;using UnityEngine.UI;public class sceneload : MonoBehaviour { private Text text
2017-10-24 17:06:56
769
原创 坦克游戏初学代码整理1
using System.Collections;using System.Collections.Generic;using UnityEngine;public class TanksMovement : MonoBehaviour { public float speed = 5; public float angularspeed = 10; private
2017-10-10 18:16:16
476
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人