UnityShader入门学习(三)——Unity的Shader

这篇具有很好参考价值的文章主要介绍了UnityShader入门学习(三)——Unity的Shader。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1 Unity Shader介绍

1.1 Unity Shader的基础:ShaderLab

unity shader,Shader学习,unity,着色器,shader
unity shader,Shader学习,unity,着色器,shader

1.2 Unity Shader属性块

Shader ""
{
	Properties
	{
		_Int("Int", Int) = 2
		_Float("Float", float) = 1.5
		_Range("Range", range(0.0, 2.0)) = 1.0
		_Color("Color", Color) = (1, 1, 1, 1)
		_Vector("Vector", Vector) = (1, 4, 3, 8)
		_MainTex("Texture", 2D) = "white"{}
		_3D("3D", 3D) = "black"{}
	}
}

1.3 Unity Shader SubShader

unity shader,Shader学习,unity,着色器,shader

Tags

Tags可以写在SubShader的一开始(所有的Pass用),也可以写在Pass块的内部(该Pass用)
unity shader,Shader学习,unity,着色器,shader

渲染设置

同Tags一样也可以写在Pass中或者写在Pass外面(SubShader一开始)
unity shader,Shader学习,unity,着色器,shader

Pass介绍

Pass里面可以定义Pass名称
Pass里面的Tags还可以有额外的设置
unity shader,Shader学习,unity,着色器,shader
还有CG语言所写的代码,主要是顶点片元着色器,使用以下关键字包裹
CGPROGRAM
ENDCG

FallBack

unity shader,Shader学习,unity,着色器,shader

2 SurfaceShader介绍

SurfaceShader实际上是在顶点、片元着色器的基础上又进行了一层的封装,我们可以通过Show GenerateCode来查看到。(我们可以看到编译后的顶点、片元着色器是非常复杂的)

SurfaceShader的结构和前面的顶点、片元着色器的结构是一样的。主要区别在于SubShader中。
unity shader,Shader学习,unity,着色器,shader
unity shader,Shader学习,unity,着色器,shader
unity shader,Shader学习,unity,着色器,shader

3 UnityShader != 真正的Shader

Unity Shader实际上指的就是一个ShaderLab文件。以.shader作为后缀的一种文件。在Unity shader里面,我们可以做的事情远多于一个传统意义上的Shader。

在传统的shader中,我们仅可以编写特定类型的Shader,例如顶点着色器,片元着色器等。在Unity Shader中,我们可以在同一个文件里面同时包含需要的顶点着色器和片元着色器代码。

在传统shader中,我们无法设置一些渲染设置,例如是否开启混合,深度测试等,这些是开发者在另外的代码中自行设置的。而Unity shader中,我们通过一行特定的指令就可以完成这些设置。

在传统shader中,我们需要编写冗长的代码设置着色器的输入和输出,要小心的处理这些输入输出的位置对应关系等。而在Unity shader中,我们只需要在特定语句块中声明一些属性,就可以依靠材质来方便的改变这些属性。而对于模型自带的数据(如顶点,纹理坐标,法线等),Unity Shader也提供了直接访问的方法,不需要开发者自行编码来传给着色器。文章来源地址https://www.toymoban.com/news/detail-590708.html

到了这里,关于UnityShader入门学习(三)——Unity的Shader的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【UnityShader入门精要学习笔记】第五章(1)年轻人的第一个Shader

    本系列为作者学习UnityShader入门精要而作的笔记,内容将包括: 书本中句子照抄 + 个人批注 项目源码 一堆新手会犯的错误 潜在的太监断更,有始无终 总之适用于同样开始学习Shader的同学们进行有取舍的参考。 现在我们将学习如何编写一个 顶点/片元着色器 一个Unity Shader的

    2024年02月20日
    浏览(35)
  • 2023-08-22 Unity Shader 开发入门2 —— Shader 开发介绍

    ​ 计算机图形程序接口(Graphics API)是一套可编程的开放标准,不论 2D 还是 3D 游戏都需要这部分的底层 API 支持。 ​ 它本质上是软件,并不是硬件,是前人提前写好的调用系统硬件(GPU)绘制图形的代码。可以简单理解成是显卡厂商定义的一系列的底层的进行图形操作的加

    2024年02月11日
    浏览(26)
  • Unity Shader 入门(零基础到敢上手敲Shader)

    目录  创建Shader 一.Standard Surface Shader 二.Unlit Shader 三.Image Effect Shader 四.Compute Shader 五.Ray Tracing Shader 着色器语言 Shader默认代码格式和一些常用API讲解 标准表面着色器,它是一种基于物理的着色系统,可以理解为 它是通过对物理现象的简单模拟,可以实现生活中各种物品的效

    2024年02月04日
    浏览(31)
  • Unity Shader 入门笔记(四)

    目录 前言 一、光照模型 1. 简介 2. 发展历程 3. 局部光照模型和全局光照模型 3.1. 局部光照模型 3.2. 全局光照模型 二、Unity Shader实现标准光照模型 1. 逐顶点的光照模型 1.1. 实现效果如下: 1.2. 实现代码参考: 2. 逐像素的光照 2.1. 实现效果: 2.2. 实现代码参考: 三、参考链接

    2024年02月19日
    浏览(31)
  • Unity Shader 入门笔记(二)

    前言 前一篇 Unity Shader 入门笔记 (一) 中,我们学习和了解了Shader程序是什么以及Unity Shader代码的主要结构和相关含义,本篇文章中我们将进一步学习和了解Shader程序如何编写。 1. 写一个简单的Shader程序 1.1. 代码运行效果 1.2. 代码解释 我们在上面的代码中使用了 POSITION ,

    2024年01月22日
    浏览(30)
  • Unity Shader 入门笔记 (一)

    前言 这个笔记系列并不会过多涉及图形学数学基础和渲染流水线的相关知识,但要求你具备相关知识,因此强烈建议你在学习和查阅此笔记前了解基础的图形学基础知识和渲染流水线相关知识。这里强烈推荐 闫令琪 老师开设的 Games101课程 :Lecture 01 Overview of Computer Graphics_哔

    2024年01月24日
    浏览(32)
  • Unity_Shader入门详解

    在Unity中创建Shader,有Stander Shader、Unlit Shader、Image Effect Shader、Compute Shader、Ray Tracing Shader Stander Shader :Unity内置的标准着色器,支持高光、透明度、法线贴图等特性,比如金属,塑料,木材,皮肤,也支持光照、阴影、反射、折射、透明雾化等... Unlit Shader :不受光照影响的着

    2024年02月10日
    浏览(30)
  • 《Unity Shader 入门精要》笔记07

    Unity中通常使用两种方法来实现透明效果:第一种是试用 透明度测试(Alpha Test) ,这种方法其实无法得到真正的半透明效果;另一种是 透明度混合(Alpha Blending) 。 由于深度缓冲的存在,可以让不透明物体不考虑他们渲染顺序也能得到正确的排序效果。但是实现透明效果需

    2024年02月07日
    浏览(32)
  • 【Unity Shader】从入门到着魔(1)基本概念:什么是网格?材质?Shader?

    如上图,模型的三角形面就叫做网格(Mesh),网格的本质是一堆顶点数据的规则排序,在Unity和UE中由三角形表示,Maya等DCC软件(Digital Content Creation)中则通常由四边形表示(俩个三角形刚好组成一个四边形)。 在Unity中我们新建一个Cube,

    2024年02月09日
    浏览(30)
  • 1.Unity之Shader新手入门

    Unity Shader着色器的基本概念 如何使用Unity Shader着色器 示例:如何使用Unity Shader着色器创建复杂的效果 总结 什么是Unity中的Shader着色器? Shader着色器是用来控制物体外观的编程代码,它可以改变物体的颜色、纹理、光照、凹凸等,以及实现各种复杂的效果。Unity中有很多种类

    2024年02月04日
    浏览(27)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包