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

软件网站是怎么做的杭州软件开发公司排名

软件网站是怎么做的,杭州软件开发公司排名,上海做淘宝网站设计,景征网站建设unity制作曲线进度条 大家好#xff0c;我是阿赵。   在使用Unity引擎做进度条的时候#xff0c;有时会遇到一个问题#xff0c;如果进度条不是简单的横向、纵向或者圆形#xff0c;而是任意的不规则形状#xff0c;那该怎么办呢#xff1f;比如这样的#xff1a; 一… unity制作曲线进度条 大家好我是阿赵。   在使用Unity引擎做进度条的时候有时会遇到一个问题如果进度条不是简单的横向、纵向或者圆形而是任意的不规则形状那该怎么办呢比如这样的 一、制作方法 1、准备的素材 这个进度条的原理很简单我们需要一张跟随这路径变化灰度的图片。这张图片大概是这样的 我这里使用了RGB通道作为灰度然后Alpha通道作为显示范围。结合在一起在Unity里面会是这样的一张图 当然图片也有另外的做法比如我们想在进度条上显示一些渐变色或者纹理可以把图片的RGB通道作为纹理图片然后Alpha通道作为灰度变化也是可以的毕竟灰度变化其实只用一个通道就够没必要用RGB三个通道。 2、计算过程 目的 1.可以使用在UI上 2.通过Image的图片作为输入 3.通过Image的颜色的RGB通道作为进度条的颜色 4.通过Image的颜色的A通道作为进度条显示的进度控制 颜色的计算很简单直接获取顶点色的RGB就可以了。如果觉得纯颜色的RGB不好看也可以再另外做一张有颜色的图片作为显示用。   接下来是遮罩进度条的效果。因为这里我直接用了图片的RGB色的灰度渐变所以我先取了一个RGB的灰度。如果像上面说的RGB颜色想自己做一个有图案的进度条图片那么其实这个进度的也可以不用RGB色而改用图片的Alpha通道作为灰度也是可以的。 不论怎样获得了一个图片的灰度值然后输入一个想控制进度的值用这个值和灰度值做减法再用Step函数控制显示的范围。如果想过渡的地方有一个渐变的效果可以使用SmoothStep函数。由于灰度是沿着路径渐变的当输入的值变化时显示范围就会沿着灰度路径而变化了。   最后把Step的结果作为显示的Alpha值结合需要显示的RGB颜色就能得到进度条最终的显示颜色和范围了。 3、灰度渐变图的制作 这个方法的难点不在于shader的编写而在于素材的制作。   我这里是用3D的方式来制作这个图片的首先建一个面片把它的横向段数设置到1000。 然后展UV面片的最左边的u坐标是0最右边的u坐标是1。然后做一张从左到右的渐变图。把渐变图赋予给面片。 最后通过路径变形把面片沿着路径拉伸得到了形状。 最后把这个模型渲染出来就得到了上面的渐变灰度图了。 这样做勉强能得到一个分布均匀的灰度图但并不是100%准确。如果想得到一个完全匹配百分比的变化的灰度图比如在进度条上画上刻度然后想输入什么百分比图片的灰度刚好到达那个百分比那还要想别的办法去做这张图。 三、Shader源码 Shader azhao/CurveProgress {Properties{[PerRendererData] _MainTex (Sprite Texture, 2D) white {}_Color (Tint, Color) (1,1,1,1)_StencilComp (Stencil Comparison, Float) 8_Stencil (Stencil ID, Float) 0_StencilOp (Stencil Operation, Float) 0_StencilWriteMask (Stencil Write Mask, Float) 255_StencilReadMask (Stencil Read Mask, Float) 255_ColorMask (Color Mask, Float) 15[Toggle(UNITY_UI_ALPHACLIP)] _UseUIAlphaClip (Use Alpha Clip, Float) 0_min(min, Range( -1 , 1)) 0_max(max, Range( 0 , 1)) 1[HideInInspector] _texcoord( , 2D ) white {}}SubShader{LOD 0Tags { QueueTransparent IgnoreProjectorTrue RenderTypeTransparent PreviewTypePlane CanUseSpriteAtlasTrue }Stencil{Ref [_Stencil]ReadMask [_StencilReadMask]WriteMask [_StencilWriteMask]CompFront [_StencilComp]PassFront [_StencilOp]FailFront KeepZFailFront KeepCompBack AlwaysPassBack KeepFailBack KeepZFailBack Keep}Cull OffLighting OffZWrite OffZTest [unity_GUIZTestMode]Blend SrcAlpha OneMinusSrcAlphaColorMask [_ColorMask]Pass{Name DefaultCGPROGRAM#pragma vertex vert#pragma fragment frag#pragma target 3.0#include UnityCG.cginc#include UnityUI.cginc#pragma multi_compile __ UNITY_UI_CLIP_RECT#pragma multi_compile __ UNITY_UI_ALPHACLIP#define ASE_NEEDS_FRAG_COLORstruct appdata_t{float4 vertex : POSITION;float4 color : COLOR;float2 texcoord : TEXCOORD0;UNITY_VERTEX_INPUT_INSTANCE_ID};struct v2f{float4 vertex : SV_POSITION;fixed4 color : COLOR;half2 texcoord : TEXCOORD0;float4 worldPosition : TEXCOORD1;UNITY_VERTEX_INPUT_INSTANCE_IDUNITY_VERTEX_OUTPUT_STEREO};uniform fixed4 _Color;uniform fixed4 _TextureSampleAdd;uniform float4 _ClipRect;uniform sampler2D _MainTex;uniform float4 _MainTex_ST;uniform float _min;uniform float _max;v2f vert( appdata_t IN ){v2f OUT;UNITY_SETUP_INSTANCE_ID( IN );UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(OUT);UNITY_TRANSFER_INSTANCE_ID(IN, OUT);OUT.worldPosition IN.vertex;OUT.worldPosition.xyz float3( 0, 0, 0 ) ;OUT.vertex UnityObjectToClipPos(OUT.worldPosition);OUT.texcoord IN.texcoord;OUT.color IN.color * _Color;return OUT;}fixed4 frag(v2f IN ) : SV_Target{float2 uv_MainTex IN.texcoord.xy * _MainTex_ST.xy _MainTex_ST.zw;float4 tex2DNode1 tex2D( _MainTex, uv_MainTex );float grayVal Luminance(tex2DNode1.rgb);float remapVal ( grayVal - ( 1.0 - (0.0 (( IN.color.a 0.01 ) - 0.0) * (( _max 1.0 ) - 0.0) / (1.0 - 0.0)) ) );float smoothstepVal smoothstep( _min , _max , remapVal);float4 color (float4(IN.color.r , IN.color.g , IN.color.b , ( tex2DNode1.a * smoothstepVal )));#ifdef UNITY_UI_CLIP_RECTcolor.a * UnityGet2DClipping(IN.worldPosition.xy, _ClipRect);#endif#ifdef UNITY_UI_ALPHACLIPclip (color.a - 0.001);#endifreturn color;}ENDCG}}}
http://www.w-s-a.com/news/237509/

相关文章:

  • 网站建设可信赖北京网站开发月薪
  • 专门做lolh的网站wordpress 模版 cho's
  • 网上做设计兼职哪个网站好点网站开发毕业周记
  • 自学商城网站建设无为网页定制
  • wordpress全站cdn手机网站调用分享
  • 淄博做网站58同城wordpress微信号订阅
  • 不同的网站 做301公共资源交易中心是干嘛的
  • 36 氪 网站如何优化怎么优化自己的网站
  • 网站兼容问题湖北网站建设优化
  • 2018新网站做外链app制作的网站
  • 外贸网站建设怎么建设pc网站做移动端适配
  • 做经销找厂家好的网站个人备案网站可以做电影站吗
  • 网站搭建怎么做网站建设培训哪家好
  • 学做美食的视频网站企业网站备案密码怎么找回
  • 销售产品做单页还是网站seo有哪些作用
  • 网站视觉规范南宁网站优化推广
  • 公司起名打分最准的免费网站学设计的学校
  • 用cn作网站行么WordPress网站打不开nginx
  • 顺德龙江网站建设百货商城自助下单网站
  • 门户网站采用较多的模式是wordpress自动搜索缩略图
  • 深圳设计功能网站做网站推广怎么做
  • 海口专业网站建设地址wordpress站点标题是什么
  • 青岛做网站那家好网页素材网
  • 宁夏银川做网站的公司网络营销有哪些推广方法
  • 免费域名网站哪个最好东莞企业网站排名
  • dz做网站网址模版
  • 做外贸网站平台中华室内设计师网
  • 三大网络架构seo是啥职业
  • 一个域名可以做中英文两个网站吗搜索引擎营销的6种方式
  • 可以做ppt的网站天津网站建设怎么样