浮点
| 精度 | 位数 | 多维形式 | 应用场景 |
|---|---|---|---|
| float | 32 | float2, float3, float4 |
位置、UV等需要高精度的计算 |
| half | 16 | half2, half3, half4 |
方向、法线、颜色等一般性精度需求,或移动端优化需要 |
| fixed | - | fixed2, fixed3, fixed4 |
设计初衷:普通非HDR颜色值、简单数值表示 |
| real | - | real2, real3, real4 |
(仅SRP) 通用精度类型: 移动端和Switch平台下表示half, 其余平台为float |
提示
补充
fixed: 在传统移动平台(如GLES2.0等),fixed是 11位定点数;在现代平台上:fixed通常会被当作half处理。URP下fixed类型已不可使用half: 当 处于 移动/Switch平台 或 启用 统一着色器精度模型 (UNITY_UNIFIED_SHADER_PRECISION_MODEL) 或 使用 DXC编译器 时,half等价于min16float。(详见Common.hlsl)real:定义在Common.hlsl
整型 int
- 基本用途:表示整数(0,1,2,…),主要用于数组索引
- 平台差异:
- Direct3D9/OpenGL ES2.0:自动转为float处理(硬件不支持)
- Direct3D11/OpenGL ES3.0+:可原生支持整形
矩阵类型
float2x2、float3x3、float4x4:分别代表2x2、3x3、4x4的浮点数矩阵,用于变换计算等。
同理还有real、half、fixed类型的矩阵,后两者比较少见。
采样器
| 采样器类型 | 描述 | 常见用途 | 对应纹理类型 | 是否支持Mipmap | 是否可用于阴影 |
|---|---|---|---|---|---|
sampler |
通用采样器(通常用于2D纹理) | 旧版本或兼容性写法 | 2D纹理 | 是 | 否 |
sampler2D |
2D纹理采样器 | 漫反射贴图、法线贴图、遮罩贴图等 | 2D纹理 | 是 | 否 |
sampler3D |
3D纹理采样器 | 体积纹理、颜色查找表(LUT)、次表面散射模拟 | 3D纹理 | 是 | 否 |
samplerCube |
立方体贴图采样器 | 环境反射、天空盒、光照探针 | 立方体贴图 | 是 | 否 |
sampler2DShadow |
带深度比较功能的2D阴影贴图采样器 | 阴影映射(如方向光、点光源产生的阴影) | 2D深度纹理(ShadowMap) | 是 | 是 |
samplerCubeShadow |
带深度比较的立方体阴影贴图采样器 | 点光源阴影(带方向的全方位阴影) | 立方体深度纹理(ShadowMap) | 是 | 是 |
sampler2DArray |
2D纹理数组采样器 | 多层材质混合、地形渲染、动画纹理集 | 2D纹理数组 | 是 | 否 |
samplerBuffer |
缓冲区纹理采样器(一维大数组) | 存储大量只读数据,如顶点属性或其他缓冲数据 | 缓冲区纹理(Buffer Texture) | 否 | 否 |
| UPR下采样器详见:URP下的纹理和纹理采样器 |