UnityShader源码2017---学习笔记与自我拓展
自己学习源码的记录
佛经forever
这个作者很懒,什么都没留下…
展开
-
UnityShader源码2017---学习笔记与自我拓展050
源自Internal-MotionVectors.shader这个shader里,基本思路就是得到上一帧的位置和当前帧的位置做插值,就是motionvector的计算方式但是目前我手动测试的结果跟unity自带的结果不一致。。。暂时萌了。。 这个shader的注释看一下这里我自己的测试记录就不上了,没有得到测试的结果。。。哭了。。 ...原创 2018-09-04 19:46:24 · 206 阅读 · 0 评论 -
UnityShader源码2017---学习笔记与自我拓展051
源自UIshader这里就不分文章一一记录了,写一起了stencil不管是google和baidu都有一堆,着重注意一下readmask和writemask就好1.说一下这个_TextureSampleAdd这个float4是由引擎去传值的。如果UI的tex是Alpha8 ,那么这个值就是(1,1,1,0),否则就是(0,0,0,0)测试如下图为啥要这么做,据说是为了f...原创 2018-09-12 17:17:59 · 1597 阅读 · 0 评论 -
UnityShader源码2017---学习笔记与自我拓展041
源自Lightmap-Bumped,Lightmap-BumpSpec,Lightmap-Diffuse,Lightmap-Glossy,Lightmap-VertexLit_LightMap ("Lightmap (RGB)", 2D) = "lightmap" { LightmapMode }很扎眼的LightmapMode。。。但是unity就是没有说明这个。。。。或许我查找的方式...原创 2018-07-26 09:48:19 · 136 阅读 · 0 评论 -
UnityShader源码2017---学习笔记与自我拓展042
源自Skybox,Skybox-Cubed,Skybox-Procedural先看一下SkyBox这个shader里的一个方法float3 RotateAroundYInDegrees (float3 vertex, float degrees){ float alpha = degrees * UNITY_PI / 180.0; float sina, cosa; ...原创 2018-07-26 10:41:31 · 285 阅读 · 0 评论 -
UnityShader源码2017---学习笔记与自我拓展043
源自Particle Add , Particle Alpha Blend,Particle AddMultiply,Particle AddSmooth,Particle Blend,Particle VertexLit Blended这几个shader的不同点基本上就在blend和alpha的计算上。 好多东西一直都不愿意去写,但是群里好多人,每隔一段时间就会问一次。。。o(︶︿︶...原创 2018-07-27 13:54:23 · 408 阅读 · 0 评论 -
UnityShader源码2017---学习笔记与自我拓展044
源自 Particle Anim Alpha Blend 这是一个伟大的shader。这里不讲原理,请移步这里,这里,这里,和这里。 假设已经看懂了上面的那4篇。我们看一下这个shader的用法。struct appdata_t { float4 vertex : POSITION; fixed4 color : COLOR; float4 tex...原创 2018-08-03 18:08:14 · 194 阅读 · 0 评论 -
UnityShader源码2017---学习笔记与自我拓展045
源自Internal-BlitCopy,Internal-BlitCopyDepth,Internal-CombineDepthNormals讲一下unity的潜规则Shader "Hidden/Internal-CombineDepthNormals" {}只有以Hidden/开头的shader,都会在shader列表中隐藏起来。 BlitCopy从名字上看应该是Blit(...原创 2018-08-07 19:23:24 · 585 阅读 · 0 评论 -
UnityShader源码2017---学习笔记与自我拓展046
源自Internal-Flare,Internal-DepthNormalsTexture,Internal-ConvertTexture忽略Internal-Flare,着实忽略Internal-DepthNormalsTexture中是各种RenderType的SubShaderCOMPUTE_VIEW_NORMAL 在UnitCG.cginc里找到了定义#define...原创 2018-08-15 17:19:15 · 575 阅读 · 0 评论 -
UnityShader源码2017---学习笔记与自我拓展047
源自Internal-Halo,Internal-StencilWrite,Internal-GUIRoundedRect,Internal-GUITexture,Internal-GUITextureBlit,Internal-GUITextureClip,Internal-GUITextureClipText忽略Internal-Halo,Internal-StencilWrite,Int...原创 2018-08-16 10:47:07 · 234 阅读 · 0 评论 -
UnityShader源码2017---学习笔记与自我拓展048
源自Sprites-Default,Sprites-Diffuse,Sprites-Mask先说一下Properties里的一些特殊的toy[PerRendererData]先来看一下文档里的说明简单的翻译一下,从MaterialPropertyBlock里而不是冲material里查询texture属性。于此操作对应的就是要在shader里的这个属性前添加[PerRender...原创 2018-08-16 18:33:00 · 3219 阅读 · 0 评论 -
UnityShader源码2017---学习笔记与自我拓展049
源自VideoDecodeOSX,VideoDecodeAndroid,VideoDecode 前面两个shader可以看出,在Flip_RGBARect_To_RGBA这个pass里,就是正常的sample。而在Flip_RGBASplitRect_To_RGBA这个pass里,从uv的处理上看是把视频的rgb和a分开了,视频的左半边是rgb,右半边是a,由于需要切换为opengl下,我...原创 2018-08-29 10:00:13 · 342 阅读 · 0 评论 -
关于一些视频颜色空间的笔记记录
先来说一下,YCbCr。 shader的话就去看看VideoDecode.shader就行了------------------------------------选自wiki----------------------------------YCbCr或Y'CbCr有的時候會被寫作:YCBCR或是Y'CBCR,是色彩空間的一種,通常會用于影片中的影像連續處理,或是數字攝影系統...原创 2018-08-29 14:47:39 · 1086 阅读 · 0 评论 -
UnityShader源码2017---学习笔记与自我拓展038
源自Flare这个,就是一个ZTest Always Blend One One的一个普通的shader简单写点别的把,试一下Unity的len Fare吧新建一个Asset-------Lens Fare,各参数的意义看API吧简单的设置一下 然后把这个flare扔个一个not important 的point light上结果就是这样的其实...原创 2018-07-23 10:32:03 · 186 阅读 · 0 评论 -
UnityShader源码2017---学习笔记与自我拓展039
源自 Illumin-Bumped,Illumin-BumpSpec,Illumin-Diffuse,Illumin-Glossy,Illumin-Parallax,Illumin-ParallaxSpec,Illumin-VertexLit记得很久很久以前。。。。long long ago那还是4.x的年底,shader中如果这么写Shader "Self-Illumin/New U...原创 2018-07-24 14:22:36 · 969 阅读 · 0 评论 -
UnityShader源码2017---学习笔记与自我拓展040
源自Reflect-Bumped,Reflect-BumpNolight,Reflect-BumpSpec,Reflect-BumpVertexLit,Reflect-Diffuse,Reflect-Glossy,Reflect-Parallax,Reflect-ParallaxSpec,Reflect-VertexLit 这一次是Reflect系列的。主要就是对一个Cubemap进行...原创 2018-07-25 14:00:32 · 225 阅读 · 0 评论 -
UnityShader源码2017---学习笔记与自我拓展035
源自 AlphaTest-VertexLit 和 Alpha-VertexLit --------------------------------AlphaTest-VertexLit -------------------------------------------------这个是unity shader框架的一个fallback的shader,也就是说如果自己写的sha...原创 2018-07-18 17:21:31 · 196 阅读 · 0 评论 -
UnityShader源码2017---学习笔记与自我拓展036
源自Normal-Bumped,Normal-BumpSpec,Normal-Diffuse,Normal-DiffuseDetail,Normal-DiffuseFast,Normal-Glossy,Normal-Parallax,Normal-ParallaxSpec,Normal-VertexLit一下可以忽略这么多shader有点高兴,简单的看一下个别shader里藏着的个别新鲜toy...原创 2018-07-18 17:41:15 · 392 阅读 · 0 评论 -
UnityShader源码2017---学习笔记与自我拓展037
源自Decal只是单独这个shader,其实没有什么特别的,就是用DecalTex的A通道,去线性插值maintex和decaltex的rgb。 这里重点说一下这篇文章里的思路这里先不说NormalCopy的由来,等写CB的时候在一起说吧。先来推算一下computescreenpos的吧。权当给自己捋一遍。inline float4 ComputeScreenPos(fl...原创 2018-07-20 14:13:07 · 313 阅读 · 0 评论 -
UnityShader源码2017---学习笔记与自我拓展033
Alpha-ParallaxSpec,AlphaTest-Bumped,AlphaTest-BumpSpec,AlphaTest-Diffuse,AlphaTest-Glossy 就忽略了,这几个都是最常见的了原创 2018-07-17 19:47:36 · 149 阅读 · 0 评论 -
UnityShader源码2017---学习笔记与自我拓展034
源自AlphaTest-SoftEdgeUnlit.shader这个shader的作用,注释说的很明确。简单的翻译一下。Renders doubled sides objects without lighting. Useful for grass, trees or foliage.This shader renders two passes for all geometry...原创 2018-07-18 17:08:04 · 207 阅读 · 0 评论 -
UnityShader源码2017---学习笔记与自我拓展032
源自Alpha-Parallax.shader关于这个shader最重要的部分就是视差偏移ParallaxOffset这一块了void surf (Input IN, inout SurfaceOutput o) { half h = tex2D (_ParallaxMap, IN.uv_BumpMap).w; float2 offset = ParallaxOffset...原创 2018-07-17 19:37:32 · 495 阅读 · 0 评论 -
UnityShader源码2017---学习笔记与自我拓展001
源自FrameDebuggerRenderTargetDisplay发现一个很好玩的function---ProcessColor。fixed4 ProcessColor (half4 tex){ half4 col = tex; col -= _Levels.rrrr; col /= _Levels.gggg-_Levels.rrrr; col *= _Channels; i...原创 2018-05-26 14:32:17 · 1410 阅读 · 0 评论 -
UnityShader源码2017---学习笔记与自我拓展002
源自font.sahder#pragma multi_compile _ UNITY_SINGLE_PASS_STEREO STEREO_INSTANCING_ON STEREO_MULTIVIEW_ONUNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);这个是VR部分的吧,一直都没有机会玩弄VR,这个就先抛弃吧。(太儿戏了)后没有机会再补上(这句话的意思基本等于。。...原创 2018-05-26 15:46:44 · 2246 阅读 · 0 评论 -
UnityShader源码2017---学习笔记与自我拓展003
源自Internal-Clear这个没有什么好看的,都挺丑的,只有一个CGINCLUDE ENDCG块的使用。关于stencil部分以后单独开文章说吧原创 2018-05-26 15:53:02 · 176 阅读 · 0 评论 -
UnityShader源码2017---学习笔记与自我拓展004
源自Internal-Colored这个shader也没有什么可说的知道[]的用法就好了,大家都知道。原创 2018-05-26 16:01:51 · 339 阅读 · 0 评论 -
UnityShader源码2017---学习笔记与自我拓展005
源自Internal-ErrorShader这个更没有可说的,就是输出一个紫色。当然你可以diy自己丢失shader时的shader。原创 2018-05-26 16:10:36 · 252 阅读 · 0 评论 -
UnityShader源码2017---学习笔记与自我拓展006
源自CubeBlend首先映入眼帘的是稍微解释一下[NoScaleOffset]吧,就是在material的面板上没有tilling和offset控制部分的GUI显示。然后我看到了half4 _TexA_HDR;half4 _TexB_HDR;这个应该是unity声明的吧,比如想_MainTex_ST这样的规则我搜了一大群,找到了一点点信息。说如此声明的变量,它是一个float4类型的,所包含的信...原创 2018-05-29 15:56:17 · 1984 阅读 · 0 评论 -
UnityShader源码2017---学习笔记与自我拓展007
源自CubeBlur有一个参数_Texel ("Texel", Float) = 0.0078125他的默认是其实就是1./128.为啥选这个作为默认值,猜测是,cubemap的大小是128*128的使用的频率最高吧。这一块的宏定义值得学习,把整个shader里经常用到的变量或者函数用宏定义的方式简化,已达到工作效率。 #define zero half3(0., 0., 0.) ...原创 2018-05-29 16:44:31 · 206 阅读 · 0 评论 -
UnityShader源码2017---学习笔记与自我拓展008
源自CubeBlurOdd half3 face = abs(i.uvw.xyz)==one ? i.uvw.xyz : zero;如果我将上面替换成face = i.uvw.xyz;之后,Cube采样之后会变的有点模糊。之前的那个CubeBlur shader中替换之后,也会变得模糊一下。但是替换成face = i.uvw.xyz*.01;肉眼几乎看不到差别。。。但是问题出在哪里呢。。。然后开始...原创 2018-05-29 17:13:53 · 196 阅读 · 0 评论 -
UnityShader源码2017---学习笔记与自我拓展009
源自CubeCopy这个很普通的shader。。。原创 2018-05-29 17:21:05 · 156 阅读 · 0 评论 -
UnityShader源码2017---学习笔记与自我拓展010
源自ShowLightMaskProperties里面的_SrcBlend _DstBlend在下面的码中并没有用的。忽略。在vert_surf体里,看到了这么一行。o.uv.xy = v.texcoord1.xy * unity_LightmapST.xy + unity_LightmapST.zw;这么基本上就知道了这次的_MainTex是lightmap。参数中除了_MainTex,之外,还...原创 2018-05-30 16:27:42 · 383 阅读 · 0 评论 -
UnityShader源码2017---学习笔记与自我拓展011
源自TextureUVif (_StaticUV1) o.uv.xy = v.texcoord1.xy * unity_LightmapST.xy + unity_LightmapST.zw;else o.uv.xy = v.texcoord2.xy * unity_DynamicLightmapST.xy + unity_DynamicLightmapST.zw;这个就顾名思义吧,如果bak...原创 2018-05-30 18:22:15 · 370 阅读 · 0 评论 -
UnityShader源码2017---学习笔记与自我拓展012
源自VertexColors没有什么可以说的。。。原创 2018-05-30 18:24:14 · 161 阅读 · 0 评论 -
UnityShader源码2017---学习笔记与自我拓展013
源自UV1sAsPositions看着这个名字我用目光吮吸了整篇的code,没发现与shader名字相关的信息啊。。。。 struct v2f { float4 pos : SV_POSITION; float4 dummy : TEXCOORD0;}; o.dummy = v.vertex; // make OpenGL happy然后fixed4 frag (v2f i) : COLO...原创 2018-05-30 18:34:15 · 289 阅读 · 0 评论 -
UnityShader源码2017---学习笔记与自我拓展014
源自Unlit-Alpha以下都是废话。。。这个shader没有新颖的。关于fog,后面再写吧(又挖了一个坑,也不知道会不会添上)这个shader。。。满眼望去都是熟悉的味道,确认过的眼神。。。。"IgnoreProjector"="True" 忽略Projector的影响。透明物体要ZWrite Off透明物体的Queue和RenderType的标注啊Blend模式犹如回味初恋的感觉。。。...原创 2018-06-07 09:38:41 · 187 阅读 · 0 评论 -
UnityShader源码2017---学习笔记与自我拓展015
源自 Unlit-AlphaTest唯一一个知识点就是clip了Clip:Discards the current pixel if the specified value is less than zero.clip(col.a - _Cutoff);这个就等价于if(col.a-_Cutoff < 0) discard;这个例子是clip(float a)那么大家有试过clip(flo...原创 2018-06-07 10:08:43 · 156 阅读 · 0 评论 -
UnityShader源码2017---学习笔记与自我拓展016
源自Unlit-ColorUNITY_OPAQUE_ALPHA(col.a);只有一个没有见识过。#define UNITY_OPAQUE_ALPHA(outputAlpha) outputAlpha = 1.0嗯。unity用一种独特的思路。为啥要这么做呢。使用这个shader的物体是Opaque。那强制将a设置为1,目的在何。为了某些posteffect的效果(比如用a通道控制bloom)?。...原创 2018-06-07 10:27:50 · 980 阅读 · 0 评论 -
UnityShader源码2017---学习笔记与自我拓展017
源自Unlit-Normal小插曲:很早很早以前,我看到这个shader的名字,我以为是法线的使用案例,但是他又说是unlit。。。嗯。。。其实normal这里的意思就是普通的。。。没有什么特殊的知识点,这个就略过了...原创 2018-06-07 10:30:32 · 177 阅读 · 0 评论 -
UnityShader源码2017---学习笔记与自我拓展018
源自Mobile-Particle-Add这是个固定管线的shader,所以就忽略了"PreviewType"="Plane"这个tag是让材质在Inspector的显示为plane原创 2018-06-08 10:01:34 · 159 阅读 · 0 评论 -
UnityShader源码2017---学习笔记与自我拓展019
源自Mobile-Particle-Alpha忽略。。。。。忽略么。。。只blend就能说一堆。。。。关于blend,还是谷歌吧,好多资料。原创 2018-06-08 10:03:54 · 171 阅读 · 0 评论