《UnityShader入门精要》读书笔记——2.Unity Shader基础

《UnityShader入门精要》读书笔记——2.Unity Shader基础

1、Unity Shader概述

1.1、材质与Unity Shader

(1)创建一个材质。

(2)创建也给unity shader,并将它赋给材质。

(3)把材质赋给要渲染的对象。

(4)在材质面板中调整Unity shader的属性,以得到满意的效果。

UnityShader已经包含了:顶点、片元着色器、属性、渲染状态等。

 

1.2、Unity中材质

 Unity的材质需结合GameObject的Mesh或者Particle System组件来工作。

 

1.3、Unity中的Shader

 Unity提供4种模板

Standard Surface Shader:包含了标准光照模型(基于物理的渲染方法)的表面着色器模板

Unlit Shader:不包含光照(但包含雾效)的基本的顶点/片元着色器

Image Effect Shader:各种屏幕后处理效果的基本模板

Compute Shader:特殊shader文件,利用GPU辅助计算。

inspector界面

Default Maps:可以设置默认纹理

Show generated code:查看shader内容

Compile and show code:查看最终编译成的shader汇编指令,分析和优化着色器,可以选择编译平台。

 

2、Unity Shader基础:ShaderLab

Unity提供了一种专门为Untiy Shader服务的语言——ShaderLab,它是Unity为开发者提供的高层级的渲染抽象层。

 

 一个Unity Shader的基础结构如下:

Shader "ShaderName" {
    Properties {
        // 属性
    }
    SubShader {
        // 显卡A使用的子着色器
    }
    SubShader {
        // 显卡B使用的子着色器
    }
    Fallback "VertexLit"
}

Unity在背后会根据平台编译成真正的代码和Shader文件,开发者只需和Unity Shader打交道即可。

 

3、Unity Shader的结构

3.1、Shader名字

 

3.2、Shader属性(Properties)

3.3、SubShader

3.4、Fallback

3.5、ShadeLab其他语义?

 

4、Untiy Shader形式

4.1、表面着色器

4.2、顶点\片元着色器

4.3、固定函数着色器

 

5、答疑解惑

5.1、Unity Shader != 真正的Shader

5.2、Unity Shader和Cg/HLSL之间的关系

5.3、Unity Shader之GLSL实现

 

6、扩展阅读

posted @ 2020-09-10 13:57  何卫  阅读(199)  评论(0编辑  收藏  举报