Shader入门
来源:互联网 发布:松下fpxh编程样列 编辑:程序博客网 时间:2024/05/22 09:01
Shader 入门 ● 1
什么是Shader?
shader(着色器)是一款运行在GPU上的图像渲染程序。在Unity中 shader 被看做渲染过程,而Material则被看做为渲染结果。
工作流程如下:
Application Stage:
3D Application or Game --> 3D API:OpenGL or Direct3D-->GPU Front End-->Geometry Stage:
Vertex Shader-->Primitive Assembly-->Tessellation Shader-->Geometry Shader-->Clipping-->Screen Mapping-->Rasterizer Stage:
Rasterization&Interpolation-->Fragment Shader-->Raster Operations-->Frame Buffer-->Screen-->对于新手入门而言,大概了解该流程,知道3D模型制作出来后的Mesh未经渲染过程为一个一个的点,点与点相互连接成线,变成一个个的三角形。如:
可见。而后将三角形计算上色渲染。这个简单的流程即可,上述步骤 此篇不作详述。
Shader的语言支持三种:CG、HLSL、GLSL,其中CG的平台支持最广。Shader的架构
shader的架构如下:
Shader "name"{ Properties{ } SubShader{ Pass{ } } } }
其中”name”为Shader名,在Unity中可视为该shader的路径 一般为Path的形式。Properties中定义的是变量,Unity中为 Inspector中的属性列表。SubShader为运算块,同一个Shader可以有多个SubShader,但只会执行一个,第一个无法执行则执行下一个。Pass为通道,一般代码块放在此处。
SubShader 中的东西
模型:
SubShader{ [Tag] [LOD] [RenderSetup] Pass{}}
1、Tag
SubShader的标签放在Pass外,可以不设,每个标签都有其默认值。常用标签有:
Queue(渲染次序,个人把它看做Depth深度,它的预设值为Background:1000、Geometry:2000、AlphaTest:2450、Overlay:4000,越近越先渲染,默认为Geometry)、ForceNoShadowCasting(是否投射阴影)、PreviewType(预设模型,可设为Plane、SkyBox等,预览显示)
2、LOD
LOD为”Levels of Detail”的简称,意为细节层次技术。LOD技术指根据物体模型的节点在显示环境中所处的位置与重要度,决定物体渲染的资源分配,降低非重要物体的面数和细节数,从而获取高效率的渲染运算,可将其看为资源分配权重数。LOD存在范围、超过范围该SubShader不会被执行。作者只见过一种用法,即设立多个SubShader,每个SubShader的LOD大小不同,然后由外部程序改变最大值,shader.maximumLOD,达到不同max,物体渲染方式不同的效果。
- Shader入门
- unity-Shader入门指南
- shader 的入门
- Unity3D Shader入门指南
- OpenGL--shader入门
- shader 入门 图形学心得
- Unity3D Shader 入门
- Shader入门指南【1】
- Shader入门指南【2】
- Unity Shader入门
- Unity Shader入门介绍
- unity shader入门
- Unity3D Shader 入门
- Shader入门学习手记
- u3d shader入门写法
- UnityShader入门 积雪Shader
- Unity3D Shader 入门
- Shader入门的杂七杂八
- BZOJ_2038 小Z的袜子(莫队算法)
- [KDTree] [BZOJ2716] [Violet 3] 天使玩偶
- JAVA面试题解惑系列(十)——话说多线程
- cas sso 配置完整例子
- java基础知识记录--java代码查错 (摘自张孝祥整理java面试题)
- Shader入门
- Java面试题系列第一篇
- 《把时间当作朋友》--李笑来
- Mybatis-environments(English)
- 《Python Web开发实战》踩地雷记17/3/24
- python机器学习-聚类KMeans
- Hive 之Table、External Table、Partition(五)
- 七大基本排序算法C/C++(已优化及测试)
- QT--foreach的用法