zoukankan      html  css  js  c++  java
  • Unity Shader笔记

    参考资料 : 

    Shader介绍 https://blog.csdn.net/a133900029/article/details/80553642

    屏幕画线,线框渲染 https://blog.csdn.net/u013917120/article/details/79246711

    LineRenderer画线  https://www.cnblogs.com/feiyanstudio/articles/7326672.html

    unityShader常见函数  https://blog.csdn.net/laverfever/article/details/23962411

    unityShader中的三大测试  https://blog.csdn.net/qq_38651460/article/details/80248021

    1.RenderState  分为公共状态  和  Pass通道专有状态

    <1> Cull  Back | Front | Off

    <2> ZTest  (Less |  Greater   ...) 比对深度缓存 , 判断是否渲染

    <3> ZWrite  On  | Off  是否记录深度  Off 通常用于半透明物体 

    <4> AlphaTest (Less  | Greater)    透明时就不用混合模式了  节约运算

    <5> Blend (SourceBlendMode    DestBlendMode)    设置alpha混合模式

    <6> Fog {Fog Commands}

    {

        Mode Linear

        Color (1,1,1,1)

        Density 1000

    }

    <7> ColorMask RGB

    <8>  Offset  设置深度偏移  当深度相同时

    <9> Color  设置顶点光照关闭时的颜色------------------------------------------------------关键词  顶点光照  ,  有延迟光照  正向渲染  顶点光照

    还有许多状态,用于控制光照状态等,用于Pass通道专门定制的状态

    2. 关于顶点着色器 和 片段着色器的一个思考----------片段着色器是如何处理顶点处理器传来的数据的

    https://blog.csdn.net/linuxheik/article/details/78644763

    https://blog.csdn.net/chunxiao860815/article/details/50550155

    3.关于MVP矩阵的作用说明

    https://blog.csdn.net/a133900029/article/details/80558765

    4.关于关键字uniform

    uniform float4 _ZeroPoint;
    uniform float _Distance;
    uniform float4 _ColorNear;
    uniform float4 _ColorFar;

    https://www.jianshu.com/p/94acad173437

    5.shader中的屏幕坐标,视口空间,设备空间,裁剪空间

    https://blog.csdn.net/linuxheik/article/details/86691167

    6.卡通着色

    https://blog.csdn.net/wolf96/article/details/43019719

    https://blog.csdn.net/qq_24153371/article/details/81837905?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromBaidu-1&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromBaidu-1

    7.关于构建切线空间TBN矩阵   tangent.w  unity_WorldTransformParams.w的用处

    https://forum.unity.com/threads/what-is-tangent-w-how-to-know-whether-its-1-or-1-tangent-w-vs-unity_worldtransformparams-w.468395/

    8.镜面反射实现,裁剪平面变换,裁剪反转

    https://www.jianshu.com/p/30291574ab6a

    9.tex2Dproj与tex2D的区别

    float4 uv1 = i.ref; uv1.xy += bump * _ReflDistort;
    //half4 refl = tex2Dproj( _ReflectionTex, UNITY_PROJ_COORD(uv1) );
    half4 refl = tex2D(_ReflectionTex, uv1/uv1.w);

    10.自定义生成网格,比如用于制作拖尾

         http://www.xuanyusong.com/archives/780

         热扭曲效果

         https://blog.csdn.net/puppet_master/article/details/70199330

    11.Camera Clear Flag

    Solid Color:

    清空前面全部相机DepthBuffer

    清空前面全部相机ColorBuffer,使用Background 属性的颜色代替

    Skybox :

    清空前面全部相机DepthBuffer

    清空前面全部相机ColorBuffer,使用Skybox 天空盒颜色值代替

    Depth Only :

    清空前面全部相机DepthBuffer

    保留前面全部相机ColorBuffer

    Don’t Care :

    保留前面全部相机DepthBuffer

    12.cg标准函数

    https://blog.csdn.net/puppet_master/article/details/52605643

    13.Unity Projector 投影机

    When rendering a projector Unity sets two extra matrices, _Projector and _ProjectorClip.
    _Projector maps the x and y axis of the projector's clip space to u and v coordinates that are typically used for sampling a radial falloff texture.
    _ProjectorClip maps the z axis of the projector's view space to a u coordinate (possibly duplicating it in v) that can be used to sample a ramp texture that defines the projector falloff with distance. The value of u will be 0 at the projector near plane and 1 at the projector far plane.

    Edit: These transforms will be stacked on top of the model and projector view matrix so you just multiply them by your object space vertex position to get the correct result.

    14.屏幕后处理原理

    使用特定的材质去渲染一个刚好填充整个屏幕的四边形面片,这个四边形面片的四个顶点就对应了近裁剪面平面的四个角

    15.贴花制作,生成网格,自定义裁剪,从深度图重建世界坐标,Reverse-Z等,CommandBuff的意义实例---真·Deferred Decal

    https://blog.csdn.net/puppet_master/article/details/84310361

    https://blog.csdn.net/puppet_master/article/details/77489948

    16.MRT

    https://blog.csdn.net/ylbs110/article/details/53457576

    17.自定义延迟渲染,默认是standard

    https://blog.csdn.net/qq_38275140/article/details/86360563

    18.卷积

    卷积可以当成是一种新的运算,在图像处理中非常常用,可以实现边缘检测和模糊等操作

    https://www.zhihu.com/question/22298352?rf=21686447

    博客中这句话的意思:这样相当于实现了 [公式] 这个矩阵在原来图像上的划动(准确来说,下面这幅图把 [公式] 矩阵旋转了 [公式] ):

    将卷积矩阵绕中心旋转了180度,因为卷积这个运算的运算过程是 :

    在对图像中的某个像素进行卷积时,我们会把卷积核的中心放置于该像素上,

    翻转核之后再依次计算核中每个元素和其覆盖的图像像素值的乘积并求和,得到的结果

    就是该位置的新像素值

    19.高斯模糊,卷积计算的优化

    https://blog.csdn.net/puppet_master/article/details/52783179

    这句------

    假设屏幕分辨率是M*N,我们的高斯核大小是m*n,那么进行一次后处理的时间复杂度为 O(M*N*m*n)。

    我们的高斯模糊操作,如果整个图像进行采样,那么会进行M*N*m*n次采样操作,而如果是先横向,再竖向,那么我们在横向方向需要M*m*n次采样操作,而在竖向方向需要N*m*n次采样操作,总共的时间复杂度就是 O((M+N)*m*n)。从M*N降到M+N,一般地,M和N为屏幕分辨率,比如1024*768,那么,这样一个操作就大大降低了时间复杂度!!!不过需要一点点空间作为中间结果的缓存,不过这点缓存对于性能的优化还是很值得的。

    写错了,实际上是将时间复杂度降低到了O((m+n)*M*N),然后就是计算过程并没有构建卷积核矩阵,而是按照卷积的思路进行计算,简化了计算过程

    20.GPU精粹系列导读

    https://blog.csdn.net/poem_qianmo/article/details/79689041

    https://www.bilibili.com/video/av79798154/

    21.粒子shader

    https://blog.csdn.net/wjj616806129/article/details/96006771

    22.特效shader护盾/能量场交界高亮特效

    https://blog.csdn.net/lengyoumo/article/details/105398606

    23.偏导数的应用ddx,ddy

    https://blog.csdn.net/chy555chy/article/details/80177015

  • 相关阅读:
    JQuery选择器
    JQuery语法
    数据库分页查询
    webservice开发说明文档
    javaweb项目中的文件上传下载功能的实现
    表单中input的type用法详解
    关于所谓大数据的一些疑惑
    spring boot 常见的第三方集成
    spring boot + apache camel 传输文件
    spring boot 1.x配置,不断完善中
  • 原文地址:https://www.cnblogs.com/white-L/p/10603912.html
Copyright © 2011-2022 走看看