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 不在中间的一张瓷砖

五、作者的话

关于更新:

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

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

关于提问:

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

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

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

相关推荐
虾球xz2 小时前
游戏引擎学习第20天
前端·学习·游戏引擎
red_redemption6 小时前
自由学习记录(23)
学习·unity·lua·ab包
/**书香门第*/10 小时前
Cocos creator 3.8 支持的动画 7
学习·游戏·游戏引擎·游戏程序·cocos2d
向宇it1 天前
【unity小技巧】unity 什么是反射?反射的作用?反射的使用场景?反射的缺点?常用的反射操作?反射常见示例
开发语言·游戏·unity·c#·游戏引擎
Heaphaestus,RC1 天前
【Unity3D】获取 GameObject 的完整层级结构
unity·c#
芋芋qwq1 天前
Unity UI射线检测 道具拖拽
ui·unity·游戏引擎
tealcwu1 天前
【Unity服务】关于Unity LevelPlay的基本情况
unity·游戏引擎
大眼睛姑娘1 天前
Unity3d场景童话梦幻卡通Q版城镇建筑植物山石3D模型游戏美术素材
unity·游戏美术
鹿野素材屋1 天前
Unity Dots下的动画合批工具:GPU ECS Animation Baker
unity·游戏引擎
小春熙子2 天前
Unity图形学之着色器之间传递参数
unity·游戏引擎·技术美术·着色器