
Shader杂谈
文章平均质量分 64
刘培玉--大王
老婆孩子热炕头~~江山代有才人出,希望可以给各位浪尽一份薄力~
展开
-
编写PostEffect后期的shader
如果之前在OnRenderImage写后期,经常会用cg去写后期。但是代码放到PostEffect中发现,就只有一个莫名其妙的三角。是因为,PostEffect中的uv计算,和pos计算与我们平时使用的方式不同。还有关于_MainTex的使用。...原创 2022-07-15 19:19:04 · 183 阅读 · 0 评论 -
Unity自定义阴影-获取光源处深度图
获取光源处深度图前言将光源处深度图转化为可采样格式Shader中使用前言如果我们要自定义阴影,通过之前的文章,我们知道我们需要知道光源处的深度图和物体在光源处的深度,然后进行对比。然而在项目中,假如我们使用了unity阴影,则说明已经有了这张深度图。如果我们重新在渲染一个光源处的深度图,就会使多出一倍的渲染消耗。如果我们能拿到已经有的那个深度图问题就轻松多了。将光源处深度图转化为可采样格式通过CommandBuffer转换shadowmap的采样格式:CommandBuffer.SetShado原创 2021-06-23 20:50:01 · 763 阅读 · 0 评论 -
Unity Gamma空间和Linear空间转换代码
Gamma与Linear转换Cg版本个人理解Gamma空间当初的疑惑线性空间结束语Cg版本引自: UnityCG.cginc//--Gamma到Linear转换inline half3 GammaToLinearSpace (half3 sRGB){ // Approximate version from http://chilliant.blogspot.com.au/2012/08/srgb-approximations-for-hlsl.html?m=1 return sRG原创 2021-01-26 15:45:51 · 3205 阅读 · 0 评论 -
Unity Shader Color、HSV、HDRColor以及HDRColor面板转换源码分析
Shader ColorRGB颜色HSV颜色简介RGB与HSV的转换RGB TO HSVHSV TO RGBHDRRGB颜色这个就是祖传手艺了,RGB三原色,不多说。他的应该是这样的,没错一个正方体HSV颜色简介作为一个程序员,对于 颜色的理解就是RGBA,但是当我们跟美术大大进行沟通时,他们老是给整什么饱和度,色相之类的外星话。我们给他说你通过调节RGB的值做效果,大眼瞪小眼了。其实对于美术而言他们更熟悉的HSV(也叫HSB)模型:H 为 色相(hue):取值范围0-360, 在0~360°的原创 2021-01-23 18:21:44 · 6230 阅读 · 4 评论 -
CG函数源码汇总-->Cg 3.1 Toolkit Documentation
CG函数汇总absacosallanyasinatanatan2bitCountbitfieldExtractbitfieldInsertbitfieldReverseceilclipclampcoscoshcrossddxddydegreesdeterminantdistancedotexpexp2faceforwardfindLSBfindMSBfloatToIntBitsfloatToRawIntBitsfloorfmodfracfrexpfwidthintBitsToFloatinverseisfi转载 2020-11-17 11:50:48 · 792 阅读 · 1 评论 -
Unity Shader 杂记--那些令人窒息的算法--持续更新
屏住呼吸--小心死亡噪音获取边缘噪音获取边缘如图所示,我们通过一张噪声图来实现这种溶解的效果,可以对于溶解边缘的获取,也就是图中2的区域,使用怎样的计算方式获取呢?记得一开始做这当溶解的时候,是做了两次阀值判断,假设噪声图的a为x,则当x<0.2时为图中1,当x<0.3且x>0.2时为图中2,当x>0.3时为图3,确实当时就是用if语句判断的,在大佬面前这个写法会被鄙视,所以今天分享一下两一种没有if判断的方式: //---假设遮罩图的a通道的值为Mask,过度控制的阀值为T原创 2020-08-04 20:55:02 · 508 阅读 · 0 评论 -
Shader杂记---GLSL To Cg
1.替换iGlobalTime为_Time.y2.替换iResolution.xy替换为_ScreenParams.xy3.替换vec2为float24.替换mat2为float225.替换vec3(1)为float3(1,1,1)6.替换Textrue2D为Tex2D7.替换atan(x,y)为atan2(y,x)8.替换mix()为lerp()9.替换为mul()10.mainImage(out vec4 fragColor, in vec2 fragCoord) 相当于float4原创 2020-07-17 16:30:19 · 692 阅读 · 0 评论