Unity | Shader基础知识(第十集:shader常用外部资产单词速成)

目录

一、外部资产简介

二、常用的外部资产单词

三、常用的外部资产单词和引入内部

四、图片资产外部调整的具体讲解

1.Tiling,中文:铺地砖

2.Offset,中文:偏移

五、作者的话


一、外部资产简介

在第六集中,我们加入过外部颜色资源。

Unity | Shader基础知识(第六集:语法<如何加入外部颜色资源>)-CSDN博客

在第七集中,我们加入过外部图片资源。

Unity | Shader基础知识(第七集:案例<让图片和外部颜色叠加显示>)_unity颜色叠加-CSDN博客

以上两部分主要应用了一下外部资源,今天把常见的合起来总结一下。另外讲一下图片中的Tiling和Offset是什么意思。

二、常用的外部资产单词

图1 外部资产

cs 复制代码
    Properties
    {
       //颜色
        _Color ("颜色", Color) = (1,1,1,1)

        //图片
        _Tex("2D图片",2D) = "white"{}
        _Tex3("3D图片",3D) = "white"{}
        _Cube("Cube图片",CUBE)=""{}

        //数字
        _Float("Float数字",Float) = 0.5
        _Int("Int数字",Int) = 1
        _Range("范围",Range(0,100))=1
        _Vector("坐标",Vector)=(1,1,1,1)
    }

三、常用的外部资产单词和引入内部

以上是我们设置了一些初始值,但是这些并没有放到我们shader里面开始应用。

shader对很多格式都不支持的,所以我们仔细观察,它只有两个大类,一个是数字,一个是图片,所以在放进shader里面的时候,我们要重新初始化一遍。

cs 复制代码
Shader "Custom/NewSurfaceShader"
{
    Properties
    {
        //颜色
        _Color ("颜色", Color) = (1,1,1,1)

        //图片
        _Tex("2D图片",2D) = "white"{}
        _Tex3("3D图片",3D) = "white"{}
        _Cube("Cube图片",CUBE)=""{}

        //数字
        _Float("Float数字",Float) = 0.5
        _Int("Int数字",Int) = 1
        _Range("范围",Range(0,100))=1
        _Vector("坐标",Vector)=(1,1,1,1)
    }
    SubShader
    {
        //这里是CG语言
        CGPROGRAM

        //****************************
        //这里就是把格式重写一遍,注意看,名称和上面是一样的
        //四个数字代表颜色
        fixed4 _Color;

        //普通图片
        sampler2D _Tex;
        //3D图片
        sampler3D _Tex3;
        //Cube图片
        samplerCUBE _Cube;

        //一个数字
        float _Float;
        int _Int;
        //这里是不需要很大的小数
        half _Range;
        float4 _Vector;
        //********************************

        ENDCG
    }
}

四、图片资产外部调整的具体讲解

放图片大家一般都是会的,这里主要讲解一下Tiling和Offset(如图2所示)
图2 2D图片外部资产

1.Tiling,中文:铺地砖

其实这个翻译已经很贴切了,下面具体讲一下。

假如我们有一面墙,我们想在上面贴一个图,我们可以选择贴一张花纹(如图3所示),也可以选择贴一堆花纹(如图4所示)。

up不会P图,(如图2所示)这张图意思就是,还是这面墙,但我只铺一张大大的瓷砖。
图2 贴一张(蓝色) 图3 贴一堆

这时候可能有人问:

用一张瓷砖贴不满怎么办?那就继续放大瓷砖,直到能贴满,然后把多出来的地方裁掉。

所以,我们只限定瓷砖的数量,不限定瓷砖的大小,就是Tiling。

x得意思是,横着能贴个瓷砖。y得意思是竖着能贴几张瓷砖。

2.Offset,中文:偏移

例如,我们只贴一张瓷砖,正常来说肯定是贴在中间的(如图4所示),但是我不希望它在中间(如图4所示),怎么办?就调整offset的大小来移动位置。
图4 不在中间的一张瓷砖

五、作者的话

关于更新:

这部分内容目前是计划持续更新,尽可能保持之前的节奏,一周一更。

前段时间工作非常忙,加上过年,就断了。

关于提问:

因为每个人的问题都不太一样,有时候无法根据现象判断出到底哪里出问题了。所以如果我能猜出来就给大家回,猜不出来,我也会回复我猜不出来。

如果大家提问知识点相关的问题,比如哪里没看懂,哪里讲的不清楚,我会修改文章重新在文章里加这部分内容,也会新写文章专门来进行讲解。

最后,大家新年快乐,希望新的一年大家平平安安,事事顺利,心想事成。

相关推荐
逐·風5 小时前
unity关于自定义渲染、内存管理、性能调优、复杂物理模拟、并行计算以及插件开发
前端·unity·c#
_oP_i6 小时前
Unity Addressables 系统处理 WebGL 打包本地资源的一种高效方式
unity·游戏引擎·webgl
代码盗圣10 小时前
GODOT 4 不用scons编译cpp扩展的方法
游戏引擎·godot
Leoysq15 小时前
【UGUI】实现点击注册按钮跳转游戏场景
游戏·unity·游戏引擎·ugui
PandaQue17 小时前
《潜行者2切尔诺贝利之心》游戏引擎介绍
游戏引擎
_oP_i18 小时前
unity中 骨骼、纹理和材质关系
unity·游戏引擎·材质
Padid1 天前
Unity SRP学习笔记(二)
笔记·学习·unity·游戏引擎·图形渲染·着色器
Tp_jh1 天前
推荐一款非常好用的C/C++在线编译器
linux·c语言·c++·ide·单片机·unity·云原生
dangoxiba2 天前
[Unity Demo]从零开始制作空洞骑士Hollow Knight第十八集补充:制作空洞骑士独有的EventSystem和InputModule
游戏·unity·c#·游戏引擎·playmaker
无敌最俊朗@2 天前
unity3d————屏幕坐标,GUI坐标,世界坐标的基础注意点
开发语言·学习·unity·c#·游戏引擎