UnityShader源码2017
佛经forever
这个作者很懒,什么都没留下…
展开
-
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 · 1641 阅读 · 0 评论 -
UnityShader源码2017---学习笔记与自我拓展029
源自Mobile-VertexLit这个shader一坨,是很多shader的fallback最终根源一共4个pass(vertex,vertexLM,vertexLMRGBM,ShadowCaster)vertex是逐顶点光照的时候会执行的一个pass,没有lightmapvertexLM是逐顶点光照的时候会执行的一个pass,有lightmap,lightmap的encode是被作为了dLDR...原创 2018-07-13 18:25:54 · 208 阅读 · 0 评论 -
UnityShader源码2017---学习笔记与自我拓展037
源自Decal只是单独这个shader,其实没有什么特别的,就是用DecalTex的A通道,去线性插值maintex和decaltex的rgb。 这里重点说一下这篇文章里的思路这里先不说NormalCopy的由来,等写CB的时候在一起说吧。先来推算一下computescreenpos的吧。权当给自己捋一遍。inline float4 ComputeScreenPos(fl...原创 2018-07-20 14:13:07 · 327 阅读 · 0 评论 -
UnityShader源码2017---学习笔记与自我拓展028-3
这次来整理下ShadeSH9,不讨论其中的数学。看了看源码,突然一阵阵后悔。。。。好像这个太复杂了。。。要不。。。我就翻篇吧。。。想想想想想想想想想想想想想了想,算了,自己整理一下自己对SH的理解算了先在shader里写一下ShadeSH9输出的结果(worldN我这里用的测试物体没有进行过缩放,所以就那么写了吧)这里可以看出仅仅ShadeSH9计算的不是完全黑色的。。(这里的4个是点光源,not...原创 2018-07-13 14:54:16 · 526 阅读 · 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 · 994 阅读 · 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 · 400 阅读 · 0 评论 -
UnityShader源码2017---学习笔记与自我拓展035
源自 AlphaTest-VertexLit 和 Alpha-VertexLit --------------------------------AlphaTest-VertexLit -------------------------------------------------这个是unity shader框架的一个fallback的shader,也就是说如果自己写的sha...原创 2018-07-18 17:21:31 · 207 阅读 · 0 评论 -
UnityShader源码2017---学习笔记与自我拓展028-2
这篇来梳理一下ShadeVertexLightsfloat3 ShadeVertexLights (float4 vertex, float3 normal){ return ShadeVertexLightsFull (vertex, normal, 4, false);}所以着重看一下ShadeVertexLightsFull先看一下注释// Used in Vertex pass: C...原创 2018-07-13 11:32:45 · 261 阅读 · 0 评论 -
UnityShader源码2017---学习笔记与自我拓展028-1
这篇集中梳理一下关于顶点光源的话题。这也是上篇留下的ShadeSH9等。先从API和Doc下手。简单翻译一下:(如果有什么特殊的疑问请自己在unity里测试一下吧,比如这种问题:我所有的light都是not Important,那么最亮的那个直线光还是per-pixel么?等等。。)1.只要被设置成Not Important 的light一律按照per-vertex和SH光照处理2.最亮的直线光按...原创 2018-07-12 17:54:44 · 312 阅读 · 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 · 221 阅读 · 0 评论 -
UnityShader源码2017---学习笔记与自我拓展033
Alpha-ParallaxSpec,AlphaTest-Bumped,AlphaTest-BumpSpec,AlphaTest-Diffuse,AlphaTest-Glossy 就忽略了,这几个都是最常见的了原创 2018-07-17 19:47:36 · 160 阅读 · 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 · 199 阅读 · 0 评论 -
UnityShader源码2017---学习笔记与自我拓展030
源自Alpha-Bumped之前都总结了了一些,现在发现好多shader的源码没有什么可以写的了。这个shader是个surf shader看一下UnpackNormal这个方法吧突然想起来了,这个已经说过了...原创 2018-07-13 18:34:09 · 160 阅读 · 0 评论 -
UnityShader源码2017---学习笔记与自我拓展031
源自Alpha-BumpSpec,Alpha-Diffuse,Alpha-Glossy没有啥可以做记录的原创 2018-07-13 19:02:00 · 181 阅读 · 0 评论 -
UnityShader源码2017---学习笔记与自我拓展050
源自Internal-MotionVectors.shader这个shader里,基本思路就是得到上一帧的位置和当前帧的位置做插值,就是motionvector的计算方式但是目前我手动测试的结果跟unity自带的结果不一致。。。暂时萌了。。 这个shader的注释看一下这里我自己的测试记录就不上了,没有得到测试的结果。。。哭了。。 ...原创 2018-09-04 19:46:24 · 217 阅读 · 0 评论 -
关于一些视频颜色空间的笔记记录
先来说一下,YCbCr。 shader的话就去看看VideoDecode.shader就行了------------------------------------选自wiki----------------------------------YCbCr或Y'CbCr有的時候會被寫作:YCBCR或是Y'CBCR,是色彩空間的一種,通常會用于影片中的影像連續處理,或是數字攝影系統...原创 2018-08-29 14:47:39 · 1287 阅读 · 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 · 356 阅读 · 0 评论 -
UnityShader源码2017---学习笔记与自我拓展048
源自Sprites-Default,Sprites-Diffuse,Sprites-Mask先说一下Properties里的一些特殊的toy[PerRendererData]先来看一下文档里的说明简单的翻译一下,从MaterialPropertyBlock里而不是冲material里查询texture属性。于此操作对应的就是要在shader里的这个属性前添加[PerRender...原创 2018-08-16 18:33:00 · 3323 阅读 · 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 · 258 阅读 · 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 · 617 阅读 · 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 · 606 阅读 · 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 · 424 阅读 · 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 · 208 阅读 · 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 · 312 阅读 · 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 · 148 阅读 · 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 · 239 阅读 · 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 · 523 阅读 · 0 评论 -
UnityShader源码2017---学习笔记与自我拓展028
源自Mobile-VertexLit-OnlyDirectionalLights看了20多个源码了,第一次产生了想摔unity的感觉。这个shader写了写什么乱八七躁的。乍眼一看,以为是个surfaceshader,细看才发现是个vf。然后看看他的v2f结构体。。struct v2f_surf { float4 pos : SV_POSITION; float2 pack0 : TEXCOO...原创 2018-07-03 14:07:55 · 310 阅读 · 1 评论 -
UnityShader源码2017---学习笔记与自我拓展012
源自VertexColors没有什么可以说的。。。原创 2018-05-30 18:24:14 · 169 阅读 · 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 · 386 阅读 · 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 · 404 阅读 · 0 评论 -
UnityShader源码2017---学习笔记与自我拓展009
源自CubeCopy这个很普通的shader。。。原创 2018-05-29 17:21:05 · 166 阅读 · 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 · 213 阅读 · 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 · 224 阅读 · 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 · 2021 阅读 · 0 评论 -
UnityShader源码2017---学习笔记与自我拓展023
源自Mobile-Diffuse本来不想继续看这个shader的,实在没有啥好说的,但是。但是。但是。。。#pragma surface surf Lambert noforwardadd把这里的noforwardadd之流的一起总结一下吧。在官方文档里是这么写的#pragma surface surfaceFunction lightModel [optionalparams]我对号入座surf...原创 2018-06-11 17:28:56 · 1996 阅读 · 1 评论 -
UnityShader源码2017---学习笔记与自我拓展005
源自Internal-ErrorShader这个更没有可说的,就是输出一个紫色。当然你可以diy自己丢失shader时的shader。原创 2018-05-26 16:10:36 · 277 阅读 · 0 评论 -
UnityShader源码2017---学习笔记与自我拓展004
源自Internal-Colored这个shader也没有什么可说的知道[]的用法就好了,大家都知道。原创 2018-05-26 16:01:51 · 356 阅读 · 0 评论 -
UnityShader源码2017---学习笔记与自我拓展003
源自Internal-Clear这个没有什么好看的,都挺丑的,只有一个CGINCLUDE ENDCG块的使用。关于stencil部分以后单独开文章说吧原创 2018-05-26 15:53:02 · 187 阅读 · 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 · 2274 阅读 · 0 评论