Unity_Shader基础篇_Unity Shader入门精要

本文深入浅出地介绍了Unity Shader的基础知识,包括渲染流水线的三个阶段、Shader的类型如顶点着色器、曲面细分着色器等。详细讲解了Unity Shader的结构,如SubShader、Pass、Properties以及标签设置。此外,还提到了Shader的常用类型如Surface Shader和Vertex/Fragment Shader,并强调了学习Shader所需的数学基础。
摘要由CSDN通过智能技术生成

1基础篇
2-4基础篇 为初学者普及基本的理论知识以及必要的数学基础
5-8初级篇 从最简单的shader开始,讲解Shader中基础的光照模型、纹理和透明效果等初级渲染效果。
9-16中极篇 讲解Unity中的渲染路径、如何计算光照衰减和阴影、如何使用高级纹理和动画等一系列内容。
17-22扩展篇 进一步扩展读者的视野。

2渲染流水线
渲染流水线的最终目的在于生成或者说是渲染一张二维纹理,即我们在电脑屏幕上看到的所有效果。他的输入是一个虚拟摄影机、一些光源、一些Shader以及纹理等。

《Render-Time Rending,Third Edition》书中将渲染流程分为3个阶段:
应用阶段(CPU 绝对控制权)(输出渲染图元)、
几何阶段(GPU)(输出屏幕空间的顶点信息)、
光栅化阶段(GPU)

Tessellation Shader 是一个可选着色器,

顶点着色器是完全可编程的,它通常用于实现定点的空间变换、定点着色的等功能。

曲面细分着色器是一个可选的着色器,它用于细分图元。

几何着色器是一个可选的着色器,它可以用于执行逐图元的着色操作,或者被用于产生更多的图元。

顶点着色器的处理单位是顶点,输入进来的每个顶点都会调用一次顶点着色器。工作主要有:坐标变换和逐顶点光照。

屏幕映射 OpenGL(左下Unity) DirectX(左上微软)

三角形遍历(检查像素是否被三角网格所覆盖,覆盖生成一个片元)(扫描变换)

片元着色器在DirectX中又被称为像素着色器,它仅可以影响单个片元,但是可以访问到导数信息。

模板测试和深度测试

GLSL使用显卡驱动的着色器编译器,
HLSL只有微软平台可以使用且要求版本一致。
CG是真正意义上的跨平台,但缺点是可能无法完全发挥出OpenGL的最新特性。

3Unity Shader基础

材质(Material)和Unity Shader共同作用才能达到需要的效果

Unity Shader定义了渲染所需的各种代码(如顶点着色器和片元着色器)、属性(如使用那些纹理等)和指令(渲染和标签设置等),而材质则允许我们调节这些属性,并将其最终付给相应的模型。

材质需要结合一个GameObject的Mesh(网格)或者Particle Systems(粒子特效)组件来工作。

Shader:
Standard Surface Shader会产生一个包含了标准光照模型的表面着色器模板。
Unlit Shader则会产生一个不包含光照的基本的顶点/片元着色器。
Image Effect Shader则为我们实现各种屏幕后处理效果提供了一个基本模块。
Compute Shader会产生一种特殊的Shader文件,这类Shader旨在利用GPU的并行性来进行一些与常规渲染流水线无关的计算。(http://docs.unity3d.com/Manual/ComputeShaders.html
Unity Shader的导入面板还可以方便地查看其使用的渲染列队(Render queue)、是否关闭批处理(Disable batching)、属性列表(Properties)等信

  • 3
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值