此主题尚未评级 - 评价此主题

Windows Phone 8 的着色器模型支持

2013/3/11

适用于:仅限于 Windows Phone 8。

在 Windows Phone 8 上,开发人员可以在使用 Direct3D 的应用中使用自定义顶点着色器和像素着色器。Windows Phone 8 设备上的自定义着色器的受支持功能和限制由着色器模型 4_0_level_9_3 定义。有关着色器模型的更多信息,请参见着色器模型 vs. 着色器配置文件

4_0_level_9_3 着色器模型包含 Direct3D 9-era 着色器模型 2.0 的所有功能,同时带有一些重要差异。

  • 对于 DirectX,必须使用高级着色语言编写着色器。有关更多信息,请参见 HLSL

  • 支持静态和动态流控制。

  • 顶点着色器在长度上可能相当于 256 个相等的着色器汇编程序指令。

  • 像素着色器在长度上可能相当于 512 个相等的着色器汇编程序指令。

HLSL 是为编写 GPU 着色器代码而优化的像 C 一样的编程语言。当用 HLSL 为 Windows Phone 8 应用编写着色器代码时,您应考虑以下内容:

  • 必须使用 FXC.exe(效果编译器工具)脱机编译着色器代码。Visual Studio 默认使用它,也可以从命令行调用它。不支持运行时着色器编译。

  • 4_0_level_9_3 的着色器编译器目标是针对顶点着色器的 vs_4_0_level_9_3 和针对像素着色器的 ps_4_0_level_9_3。有关着色器编译器目标的更多信息,请参见指定编译器目标

  • 4_0_level_9_3 着色器模型的语义与为 Direct3D 9 编写的语义相同,因此大多数系统价值语义(通过 Direct3D 10 和着色器模型 4.0 引入)都不可用。SV_Position、SV_Target 和 SV_Depth 是例外,它们都受支持。有关语义的更多信息,包括系统价值语义,请参见语义

  • 在编写可能接近指令计数限制的较大着色器的情况下,当编译着色器以获取和检查产生的汇编程序代码输出时,您可以使用“/Fc”进行切换。有关效果编译器工具的命令行选项的更多信息,请参见语法

本文是否对您有所帮助?
(1500 个剩余字符)
© 2013 Microsoft. 版权所有。