栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 游戏开发 > Unity3D

【unity笔记】L2Unity Shader基础

Unity3D 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【unity笔记】L2Unity Shader基础

本章导图

一、Unity Shader概述 1.效果的实现需要材质和Unity Shader一起实现 2. 流程为:
  • (1)创建一个材质
  • (2)创建一个Unity Shader(包含了着色器代码,纹理属性,渲染标签设置),并赋给材质
  • (3)在材质面板中调整Unity Shader的属性,控制最终效果
3.材质
  • 步骤一:创建材质
    面板如下:

  • 步骤二:创建unity shader

默认纹理设置:

unity shader详细信息栏

针对不同图形api编译的shader代码

  • 步骤三:将shader赋给材质
二、Shader Lab 1、定义:一种为抽象层Unity Shader服务的语言

2.语法
  • shader“ ”:填写shader的名字,加‘/’表示层级关系

  • properties:定义着色器所需的各种属性,可以让对应属性出现在材质面板中。其中,数字类型的默认值就是一个数字;color和vector属性的默认值是一个圆括号包围的一个四维向量;2d,cube,3d这三种纹理类的默认值为字符串(内置纹理名称)结构如下:

    实例:

  • SubShader:子着色器:为不同类型的显卡定义不同的着色指令,以满足不同配置的要求。其中,可分为标签(一个键值对,告诉渲染引擎何时以及如何渲染这个对象),状态设置(设置显卡的状态,是否开启混合/深度测试等),Pass(定义的一个完整的渲染流程,有普通Pass,UsePass,GrabPass)三部分,结构如下:

    标签:

    状态设置:

    Pass:

PASS可用于提高代码的复用性。其中,Name部分必须全部大写,Pass的Tag和SubShader的相比只能表示渲染方式。

  • Fallback:如果上述的SubShader都不能运行,那么执行Fallback对应的shader

三、Unity Shader形式
  • 真正意义上的shader代码都需要包含在shaderLab语义块中,有两种着色器代码类型:表面着色器和顶点/片元着色器
1.表面着色器(主要是Unity后台执行的,不需要过多干预)

2.顶点/片段着色器(在Pass语义块中,而非SubShader,灵活性很高)

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/900681.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号