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

免费下载网站模板爱站工具包的模块

免费下载网站模板,爱站工具包的模块,房地产开发资质,嘉兴建站网站模板文章目录 前言一、制作思路法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.yidumall.com/news/76755.html

相关文章:

  • 对方把我的网站他网站内页友情链接 站长工具检测到是无反链谷歌商店官网下载
  • 网站仿站教程网络推广服务费
  • 建设一个网站的费用构成在线资源搜索神器
  • 培训网站建设方案书怎样创建网站平台
  • 免费素材网站图库网站免费制作
  • 免费网站根目录智能识别图片
  • 移动网站的开发流程百度灰色关键词排名技术
  • 做网站下导航字号为多大成都seo培训班
  • 庆元县建设局网站app开发平台开发
  • 入门网站分析应该怎么做企业营销培训课程
  • 中国建筑app下载官网seo外推软件
  • 百度高级搜索长沙网站优化指导
  • 全网营销型网站建设武汉网站推广公司
  • 做毕设网站多少钱手机优化大师下载
  • 清风网站建设seo短视频发布页
  • 哪个网站有利于做课件如何在百度搜索到自己的网站
  • 宁波建设厅网站seo搜索引擎优化试题及答案
  • 浪网站制作百度收录批量查询
  • 网站建设是半年的持久战东莞关键词排名推广
  • 时事军事新闻网九幺seo工具
  • 新手学做网站pdf网址大全浏览器app
  • 做网站界面尺寸输入关键词搜索
  • 公司网站建设需要些什么要求培训心得简短50字
  • 济宁网站建设 优化培训真正永久免费网站建设
  • 涿州城乡建设委员会的网站营销策划公司名字
  • 一台云服务器可以做几个网站seo优化一般包括哪些内容
  • 浙江住房城乡建设厅网站首页百度搜图片功能
  • 南昌专业网站排名推广明星百度指数排行
  • 美容行业手机网站模版海南快速seo排名优化
  • 做网站怎么接广告赚钱吗网络营销外包网络推广