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

东明县网站建设创建自己的网址

东明县网站建设,创建自己的网址,公司网站开发费用入哪个科目,厦门seo网站建设费用文章目录 前言一、制作思路法1&#xff1a;使用纹理采样后&#xff0c;修改重铺效果法2&#xff1a;计算实现 二、粗略计算实现棋盘格效果1、使 uv.x < 0.5 区域 0 。反之&#xff0c; 0.52、使 uv.y < 0.5 区域 0 。反之&#xff0c; 0.53、使两个颜色相加4、取小数…

文章目录

  • 前言
  • 一、制作思路
    • 法1:使用纹理采样后,修改重铺效果
    • 法2:计算实现
  • 二、粗略计算实现棋盘格效果
    • 1、使 uv.x < 0.5 区域 = 0 。反之, = 0.5
    • 2、使 uv.y < 0.5 区域 = 0 。反之, = 0.5
    • 3、使两个颜色相加
    • 4、取小数部分
    • 5、乘以2
  • 三、去除 if 条件语句后的精简方法
    • 1、我们在图形计算器中看一下
    • 2、向下取整
    • 3、乘以2
    • 4、我们在属性面板使用参数控制棋盘格重复度
    • 5、使棋盘格Shader适用于Cube
    • 6、使棋盘格颜色从下到上渐变
    • 7、我们可以给棋盘格Cube加一个父对象,使缩放时,不会Cube中心为调整的位置(按需使用)
    • 8、可以在属性面板加一个颜色来调整棋盘格颜色(按需使用)
  • 四、测试代码


前言

我们展示我们Shader效果,一般放于棋盘格中来展示。我们在这篇文章中,制作棋盘格效果。


一、制作思路

法1:使用纹理采样后,修改重铺效果

法2:计算实现

我们在这篇文章中,主要计算实现该效果


二、粗略计算实现棋盘格效果

1、使 uv.x < 0.5 区域 = 0 。反之, = 0.5

if(i.uv.x < 0.5)
col1 = 0;
else
col1 = 0.5;

在这里插入图片描述

2、使 uv.y < 0.5 区域 = 0 。反之, = 0.5

if(i.uv.y < 0.5)
col2 = 0;
else
col2 = 0.5;

在这里插入图片描述

3、使两个颜色相加

在这里插入图片描述

4、取小数部分

frac(col1 + col2)

在这里插入图片描述

5、乘以2

return 2 * frac(col1 + col2);

在这里插入图片描述


三、去除 if 条件语句后的精简方法

1、我们在图形计算器中看一下

  • 当 y = x 下取整后,把 x 轴缩小为原来的二分之一,y轴也缩小为原来的二分之一
  • 即可在(0,1)之间实现 0.5以下 = 0,0.5以上 = 0.5的效果。
    在这里插入图片描述

float2 uv = floor(i.uv * 2) * 0.5;
return uv.x + uv.y;

在这里插入图片描述

2、向下取整

float col = frac(uv.x +uv.y);

在这里插入图片描述

3、乘以2

float col = frac(uv.x +uv.y) * 2;

在这里插入图片描述

4、我们在属性面板使用参数控制棋盘格重复度

  • 属性面板

_Repeat(“Repeat”,Float) = 0

  • CBUFFER 常量缓存区

CBUFFER_START(UnityPerMaterial)
float _Repeat;
CBUFFER_END

  • 在 顶点着色器 对 uv 进行传值时,使乘以_Repeat以达到修改重复度的目的

o.uv = v.uv * _Repeat;

请添加图片描述

5、使棋盘格Shader适用于Cube

因为我们的棋盘格一般为一个Cube。那么要看见内部的东西,则需要把面片的前面剔除

Cull Front

请添加图片描述

6、使棋盘格颜色从下到上渐变

因为,我们棋盘格的颜色单一且过曝,看着很不舒服。所以,我们给其加一个遮罩,让其有点渐变的区分

  • 渐变遮罩效果,我们肯定会想到使用模型的本地空间下的坐标。所以,我们用本地空间下的y坐标实现。
  • 这里需要准备在片元着色器中,传入模型顶点本地空间下的坐标

float mask = i.vertexOS.y;
return col + mask;

在这里插入图片描述

7、我们可以给棋盘格Cube加一个父对象,使缩放时,不会Cube中心为调整的位置(按需使用)

8、可以在属性面板加一个颜色来调整棋盘格颜色(按需使用)

col = col *_Color + mask;

请添加图片描述


四、测试代码

我们需要适配BRP。所以,得加一个SubShader以同样的逻辑实现该效果

Shader "MyShader/URP/P3_3_3"
{Properties{_Repeat("Repeat",Float) = 0_Color("Color",Color) = (1,1,1,1)}SubShader{Tags{"PenderPipeline"="UniversalPipeline""RenderType"="Opaque""Queue"="Geometry"}Cull FrontPass{HLSLPROGRAM#pragma vertex vert#pragma fragment frag#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Color.hlsl"#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Lighting.hlsl"struct Attribute{float3 vertexOS : POSITION;float2 uv : TEXCOORD0;};struct Varying{float3 vertexOS : TEXCOORD0;float4 vertexCS : SV_POSITION;float2 uv : TEXCOORD1;};CBUFFER_START(UnityPerMaterial)float _Repeat;float4 _Color;CBUFFER_ENDVarying vert(Attribute v){Varying o;o.vertexOS = v.vertexOS;o.vertexCS = TransformObjectToHClip(v.vertexOS);o.uv = v.uv * _Repeat;return o;}half4 frag(Varying i) : SV_Target{/*half4 col1;half4 col2;if(i.uv.x < 0.5)col1 = 0;elsecol1 = 0.5;if(i.uv.y < 0.5)col2 = 0;elsecol2 = 0.5;*/half4 col;float2 uv = floor(i.uv * 2) * 0.5;col = frac(uv.x + uv.y) * 2;float mask = i.vertexOS.y;col = col * _Color + mask;return col;}ENDHLSL}}SubShader{Tags{"RenderType"="Opaque""Queue"="Geometry"}Cull FrontPass{CGPROGRAM#pragma vertex vert#pragma fragment frag#include "UnityCG.cginc"struct appdata{float3 vertexOS : POSITION;float2 uv : TEXCOORD0;};struct v2f{float3 vertexOS : TEXCOORD0;float4 vertexCS : SV_POSITION;float2 uv : TEXCOORD1;};float _Repeat;float4 _Color;v2f vert(appdata v){v2f o;o.vertexOS = v.vertexOS;o.vertexCS = UnityObjectToClipPos(v.vertexOS);o.uv = v.uv * _Repeat;return o;}half4 frag(v2f i) : SV_Target{half4 col;float2 uv = floor(i.uv * 2) * 0.5;col = frac(uv.x + uv.y) * 2;float mask = i.vertexOS.y;col = col * _Color + mask;return col;}ENDCG}}
}
http://www.tj-hxxt.cn/news/49667.html

相关文章:

  • 华强北ic网站建设手机百度网页版
  • 广州做网站建设的公司排名公司网络推广该怎么做
  • 微信个人商城网站模板免费下载推广方式和推广渠道
  • 江津网站建设效果好不好怎么拿到百度推广的代理
  • 如何建立简单网站seo舆情优化
  • 图片比较多的网站怎么做富阳网站seo价格
  • 深圳网站建设官网近三天新闻50字左右
  • 昆明建设银行纪念币预约网站汽车推广软文
  • 以人为本网站建设空间出租seo权重优化
  • 美国做空机构浑水网站江门网站建设
  • 创建网站要申请域名吗广东省新闻
  • 网站推广平台百度关键词指数工具
  • 技术型网站做哪一种好seo关键词快速提升软件官网
  • 北京做企业网站旺道seo怎么优化网站
  • 学计算机网站建设关键词排名方案
  • 网站换主推关键词会怎么样百度电话怎么转人工
  • 深圳网站建设费用多少社群营销案例
  • 罗定市建设局网站网站推广建设
  • 元器件网站建设案例小红书推广策略
  • 企业做网站有什么好处青岛网站推广企业
  • 企业营销网站服务器1g够百度分析工具
  • 徐州百姓网seo外链怎么做能看到效果
  • 做网站项目优化方案
  • 怎么做关不掉的网站日本免费服务器ip地址
  • 河南企业网站建设价格淘宝指数查询工具
  • 网站信息化建设方案广州seo顾问
  • 做简单的网站多少钱北京网站推广营销策划
  • 百度搜索引擎入口登录网络推广关键词优化公司
  • 网站开发设计制作推广南宁百度seo推广
  • 云主机 网站指南seo网络优化日常工作内容