当前位置: 首页 > wzjs >正文

南京 公司网站制作做网站要学什么语言

南京 公司网站制作,做网站要学什么语言,广州万户网络科技有限公司,现在最好的企业网站管理系统目录 前言: 一、问题原因 二、算法修复 三、全代码 前言: 在之前的文章我已经实现了标题所述的内容功能:Unity URPShader:实现和PS一样的色相/饱和度调整参数效果-CSDN博客 但在偶然测试的时候,发现当采样的图片为…

目录

前言:

一、问题原因

二、算法修复

三、全代码


前言:

在之前的文章我已经实现了标题所述的内容功能:Unity URPShader:实现和PS一样的色相/饱和度调整参数效果-CSDN博客

但在偶然测试的时候,发现当采样的图片为白色或者是调整的颜色为白色时,会导致最终的画面渲染为黑色,今天对其进行修复。

一、问题原因

产生这样的原因在于颜色传入时,色相算法与饱和度算法计算出的颜色都是黑色,所以导致问题出错。回到PS后,在调节色相或者是饱和度时,其中白色依然不会改变,唯有亮度参数会对其进行效果改变。

二、算法修复

只需要判断输入的颜色是否时白色即可,以下时算法调整的地方:

  half isWhite = saturate(floor(color.r * color.g * color.b));if (isWhite < 0.5){//Huehalf3 hsv = RGB2HSV(color.rgb);hsv.x = frac(hsv.x + _Hue / 360.0);color.rgb = HSV2RGB(hsv);//Saturationcolor.rgb = Saturation(color.rgb, _Saturation);}

三、全代码

Shader "Background_Custom_HSV"
{Properties{_PatternTex ("贴图", 2D) = "black" { }[Header(BaseColor)][Space][HDR]_Color0 ("颜色", Color) = (1, 1, 1, 1)[Header(HSL)][Space]_Hue ("Hue", Range(-180, 180)) = 0.0_Saturation ("Saturation", Range(-100, 100)) = 0.0_Lightness ("Lightness", Range(-100, 100)) = 0.0}SubShader{Tags { "RenderType" = "Transparent" "Queue" = "Transparent" "RenderPipeline" = "UniversalPipeline" "IgnoreProjector" = "True" }Pass{Blend SrcAlpha OneMinusSrcAlphaZWrite OffCull BackHLSLPROGRAM#pragma vertex vert#pragma fragment frag#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"TEXTURE2D(_PatternTex);SAMPLER(sampler_PatternTex);CBUFFER_START(UnityPerMaterial)half3 _Color0;float _Hue;float _Saturation;float _Lightness;CBUFFER_ENDstruct Attributes{float4 positionOS : POSITION;float2 texcoord : TEXCOORD0;};struct Varyings{float4 positionHS : SV_POSITION;float2 uv : TEXCOORD0;};// RGB转HSV/HSBhalf3 RGB2HSV(half3 c){half4 K = half4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0);half4 P = lerp(half4(c.bg, K.wz), half4(c.gb, K.xy), step(c.b, c.g));half4 Q = lerp(half4(P.xyw, c.r), half4(c.r, P.yzx), step(P.x, c.r));half D = Q.x - min(Q.w, Q.y);half E = 1e-10;return half3(abs(Q.z + (Q.w - Q.y) / (6.0 * D + E)), D / (Q.x + E), Q.x);}// HSV/HSB转RGBhalf3 HSV2RGB(half3 c){half4 K = half4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0);half3 P = abs(frac(c.xxx + K.xyz) * 6.0 - K.www);return c.z * lerp(K.xxx, saturate(P - K.xxx), c.y);}half3 Saturation(half3 color, float saturation){half rgbMax = max(color.r, max(color.g, color.b));half rgbMin = min(color.r, min(color.g, color.b));half delta = rgbMax - rgbMin;// if (delta > 0)// {//     half value = rgbMax + rgbMin;//     half L = value * 0.5;//     half S = lerp(delta / value, delta / (2.0 - value), step(0.5, delta));//     half percent = saturation * 0.01;//     half alpha = 0;//     half3 final_color = 0;//     if (percent >= 0)//     {//         if (percent + S >= 1)//             alpha = S;//         else//             alpha = 1 - percent;//         alpha = 1 / alpha - 1;//         final_color = color + (color - half3(L, L, L)) * alpha;//     }//     else//     {//         alpha = percent;//         final_color = L + (color - half3(L, L, L)) * (1 + alpha);//     }//     return final_color;// }// else//     return color;half value = rgbMax + rgbMin;half L = value * 0.5;half S = lerp(delta / value, delta / (2.0 - value), step(0.5, delta));half percent = saturation * 0.01;half3 final_color = lerp(L + (color - L.xxx) * (1 + percent),color + (color - L.xxx) * (1.0 / (lerp(1.0 - percent, S, step(1.0, percent + S))) - 1.0),step(0.0, percent));final_color = lerp(color, final_color, ceil(delta));return final_color;}Varyings vert(Attributes v){Varyings o;o.positionHS = TransformObjectToHClip(v.positionOS.xyz);o.uv = v.texcoord;return o;}half4 frag(Varyings i) : SV_Target{half4 color = SAMPLE_TEXTURE2D(_PatternTex, sampler_PatternTex, i.uv);color.rgb *= i.colors.rgb;half isWhite = saturate(floor(color.r * color.g * color.b));if (isWhite < 0.5){//Huehalf3 hsv = RGB2HSV(color.rgb);hsv.x = frac(hsv.x + _Hue / 360.0);color.rgb = HSV2RGB(hsv);//Saturationcolor.rgb = Saturation(color.rgb, _Saturation);}//Valuehalf value = _Lightness * 0.01;// if (value > 0)//     color.rgb = (1 - value) * color.rgb + half3(1.0, 1.0, 1.0) * value;// else if (value < 0)//     color.rgb = color.rgb * (1.0 + value);color.rgb = lerp(color.rgb * (1.0 + value), lerp(color.rgb, half3(1.0, 1.0, 1.0), value), step(0.0, _Lightness));color.rgb = saturate(color.rgb);return color;}ENDHLSL}}FallBack "Hidden/Universal Render Pipeline/FallbackError"
}

http://www.dtcms.com/wzjs/835514.html

相关文章:

  • 网站建设需要准备什么软件wordpress修改页面标题显示不出来
  • 响应式网站和自适应网站建设教程自学网
  • 做邀请函的网站看空间
  • 网站做下载word重庆正云环保建设网站
  • 没有做网站能备案吗什么样的蓝色做网站做好看
  • 专题网站建设总要求医疗网站 seo怎么做
  • 怎么做专门卖二手衣服的网站怎样利用云盘做电影网站
  • 网站的建设方面如何免费推广自己的产品
  • 在线制作简历网站wordpress 模板 橱窗
  • 大理 网站建设东莞机械网站建设
  • wordpress个人网站主题网站自定义模块
  • 外国网站邀请做编辑网站怎么做关键词库
  • 做暧暧视频网站网站模板制作与安装教程
  • 抖音网站wordpress文章不显示
  • 怎么做游戏门户网站学校网站建设 应用情况
  • 清河做网站哪儿便宜抖音代运营一般收费
  • 如何搭建内网网站北京朝阳区租房价格
  • 网站不要了该如何处理用vs做网站教程
  • 海口网站建设方案咨询seo关键词怎么选
  • 网站建设费用主要包括哪些内容哪些网站做电商比较好
  • 怎么搭建自己的网站服务器福州手机模板建站
  • 手机网站制作视频教程网站子目录设计
  • 如何将网站提交给百度网站搭建与推广
  • 怎么识别一个网站深圳品牌策划vi设计
  • js面向对象网站开发哈尔滨制作网页公司
  • 怎么做国外的网站推广手机app软件开发推荐
  • 婚庆公司网站制作系统重装没有wordpress
  • 辽宁省辽宁省建设厅网站中关村在线对比
  • 怎么提升网站加载速度松江新城投资建设集团有限公司网站
  • 免费网站建设公司怎么让公司网站显示官网