文章目录
- 前言
- 一、Shader Model
- 二、Shader编译目标级别
-
- 法1: #pragma target 3.0
- 法2:#pragma require integers geometry
- 三、测试代码
前言
针对不同平台的特性,所做的一些功能
一、Shader Model
- ShaderModel 由微软提出,要求显卡厂商按 SM 级别提供对应的功能与指令支持
- 不同的SM包含不同的指令集与Shader规范
- 高版本的SM时低版本的超集
- 微软Shader帮助文档
二、Shader编译目标级别
法1: #pragma target 3.0
Shader编绎目标级别,默认值为2.5
可以通过#if (SHADER_TARGET < 30)来做分支判断
● 2.0:
● 2.5: derivatives
● 3.0: 2.5 + interpolators10 + samplelod + fragcoord
● 3.5(相当于OpenGL ES3.0): 3.0 + interpolators15 + mrt4 + integers + 2darray + instancing
● 4.0: 3.5 + geometry
● 4.5(相当于OpenGL ES3.1): 3.5 + compute + randomwrite
● 4.6: 4.0 + cubearray + tesshw + te

本文详细介绍了Unity中Shader的Shader Model及其编译目标级别,包括#pragma target和#pragma require的用法,用于根据不同的平台特性选择合适的Shader功能。通过示例代码展示了如何在Shader中进行条件判断,以实现不同配置平台的支持。同时,提到了Shader LOD控制来调整Shader的质量和性能。
最低0.47元/天 解锁文章
1526

被折叠的 条评论
为什么被折叠?



