Shader基础

Posted chenggg

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Shader基础相关的知识,希望对你有一定的参考价值。

shader中常用的数据类型:

3种基本数值类型:float、half和fixed。 
这3种基本数值类型可以再组成vector和matrix,比如half3是由3个half组成、float4x4是由16个float组成。

float:32位高精度浮点数。 
half:16位中精度浮点数。范围是[-6万, +6万],能精确到十进制的小数点后3.3位。 
fixed:11位低精度浮点数。范围是[-2, 2],精度是1/256。 
Sampler2D:2D纹理属性

Tags :tags标签是三种类型的shader都具有的标签,它决定了硬件什么调用该子着色器

Tags标签里面默认的“RenderType”=”Opaque”,是告诉系统应该在渲染非透明物体时调用这个SubShader
“RenderType”=”Transparent”表示在渲染含有透明效果的物体时调用该Sunshader,
 
Tags里面还有许多其他的我们可选的标签
①.”Queue”:定义渲染顺序。预制的值有这些 
    ”Background”。值为1000。比如用于天空盒。
    ”Geometry”。值为2000。大部分物体在这个队列。不透明的物体也在这里。
    ”AlphaTest”。值为2450。已进行AlphaTest的物体在这个队列。 
    ”Transparent”。值为3000。透明物体。 
    ”Overlay”。值为4000。比如镜头光晕。 
    用户可以定义任意值,比如”Queue”=”Geometry+10”
②“RenderType”:定义渲染类型。预制的值有这些
    ”Opaque”:绝大部分不透明的物体都使用这个; 
    ”Transparent”:绝大部分透明的物体、包括粒子特效都使用这个; 
    ”Background”:天空盒都使用这个; 
    ”Overlay”:GUI、镜头光晕都使用这个; 
③”ForceNoShadowCasting”:定义物体是否有阴影效果
    “true”。表示有阴影
    “false”。表示没有阴影

  

以上是关于Shader基础的主要内容,如果未能解决你的问题,请参考以下文章

Cg入门20:Fragment shader - 片段级模型动态变色(实现汽车动态换漆)

Shader2.0的顶点着色器和片段着色器

Shader HLSL片段说明

Visual Studio 2012 和 2010 中基于 Opengl Sierpinski Shader 的 C 代码

Cg入门16:Fragment shader - 片段级光照

Cg入门17:Fragment shader - 片段级光照(添加阴影)