着色器设计器

本文档介绍如何将 Visual Studio 着色器设计器用于创建、修改和导出称为 着色器 的自定义可视化效果。

您可以使用着色器设计器为您的游戏或应用程序创建自定义可视化效果,即使您不知道 HLSL 编程。 若要在着色器设计器创建着色器,只需将其作为图形布置;即向表示数据和操作的设计图面添加 节点,然后将其连接以确定这些操作处理数据的方式。 在每个操作节点,提供效果预览到该点,以便可以可视化其结果。 数据流经节点朝向表示着色器的输出的最后一个节点。

支持的格式

着色器设计器支持这些着色器格式:

格式名

文件扩展名

支持的操作(查看、编辑、导出)

定向关系图着色器语言

.dgsl

“查看,编辑”

HLSL 着色器(源代码)

.hlsl

导出

HLSL 着色器 (bytecode)

.cso

导出

C++ 标头(HLSL 字节码数组)

.h

导出

入门

本节描述如何向Visual Studio 项目添加 DGSL 着色器,并提供基本信息帮助您入门。

将 DGSL着色器添加到您的项目中

  1. 解决方案资源管理器中,打开您希望将着色器添加到的项目的快捷菜单,然后选择添加新建项

  2. 添加新项 对话框中,在 已安装下,选择 图形,然后选择 视觉着色器图 (.dgsl)

  3. 指定着色器文件的 名称 和刚希望将创建的 位置

  4. 选择**“添加”**按钮。

默认着色器

每次创建 DGSL 着色器时,它就开始作为具有 点颜色 节点连接到 最终颜色 节点的最小着色器。 尽管此着色器是完整并且可工作的,它不再执行。 因此,在创建有效的着色器的第一步通常是删除节点 点颜色 ,或将其从 最终颜色 节点断开来留出空间给其他节点。

使用着色器设计器。

以下部分描述如何使用着色器设计器与自定义着色器一起工作。

着色器设计器工具栏

“着色器设计器”工具栏包含帮助您使用 DGSL 着色器关系图的命令。

影响着色器设计器状态的命令位于主 Visual Studio 窗口的**“着色器设计器模式”工具栏。 设计工具和命令位于设计图面着色器设计器的“着色器设计器”**工具栏。

这是**“着色器设计器模式”**工具栏:

着色器设计器模式工具栏。

此表描述**“着色器设计人员模式”**工具栏上的项目,这些项目按她们从左至右出现的顺序列在订单中。

工具栏项

说明

选择

启用与关系图上节点和边缘的交互。 在此模式下,可以选择节点和移动或删除它们,并且可以建立边缘或中断它们。

平移

相对窗架启用着色器关系图的移动。 在设计图面中平移并选择点,然后将其四处移动。

“选择”模式下,可以临时按住 Ctrl 来激活“平移”模式。

缩放

相对于窗架启用更多或小于着色器关系图详细信息的显示。 在“缩放”模式下,选择在设计图面上的点然后将其向右或下移放大,或向左或上移缩小。

“选择”模式下,可以通过使用鼠标轮按住 Ctrl来放大或缩小。

适合缩放

显示在窗架的完整着色器关系图。

实时呈现模式

在启用实时呈现时,Visual Studio 重绘该设计图面,即使在没有用户操作执行时。 此模式在使用可以随着时间的发展而变化的着色器时有用。

用球体预览

在启用时,球体的模型用于预览着色器。 一次只能启用一个预览形状。

用立方体预览

在启用时,立方体的模型用于预览着色器。 一次只能启用一个预览形状。

用圆柱体预览

在启用时,圆柱体的模型用于预览着色器。 一次只能启用一个预览形状。

用圆锥体预览

在启用时,圆锥体的模型用于预览着色器。 一次只能启用一个预览形状。

用茶壶体预览

在启用时,茶壶体的模型用于预览着色器。 一次只能启用一个预览形状。

用平面预览

在启用时,平面的模型用于预览着色器。 一次只能启用一个预览形状。

工具箱

或者是显示或隐藏“工具箱”窗口。

属性

或者是显示或隐藏“属性”窗口。

高级

包含高级命令和选项。

导出

以多种格式启用一个着色器的导出。

导出为

导出着色器为 HLSL 源代码或编译后的着色器字节码。 有关如何导出着色器的更多信息,请参见 如何:导出着色器

图形引擎

启用用于显示该设计图面的呈现器的选择。

“使用 D3D11 呈现”

使用 Direct3D 11 以呈现“着色器设计器”设计图面。

“使用 D3D11WARP 呈现”

使用 Direct3D 11 Windows“高级化平台”(WARP) 呈现“着色器设计器”设计图面。

视图

启用有关着色器设计器的附加信息的选择。

帧速率

在启用时,设计图面的右上角显示当前帧速率。 帧速率为每秒绘制场景的帧数。

当您启用“实时呈现模式” 选项时,此选项才有用。

提示

您可以选择“高级”按钮再次运行最后一个命令。

将节点和连接使用

使用**“选择”**模式添加、删除、重新定位、连接和配置节点。 这里展示的是如何执行这些基本操作:

在选择模式下执行基本操作

  • 方法:

    • 若要向关系图添加节点,请在**“工具箱”**中选择它,然后将其移动到设计图面。

    • 若要从关系图中移除节点,选择然后按 Delete。

    • 若要重新定位节点,请选择该节点,然后将其移动到新位置。

    • 若要连接两个节点,请将一个节点的输出终端移到另一个节点的输入终端。 仅可以连接具有兼容类型的终端。 在终端之间的行显示连接。

    • 若要移除连接,在其中一个已连接终端的快捷菜单上,选择**“中断链接”**。

    • 若要配置节点的属性,请选择节点,然后在**“属性”**窗口中,指定属性的新值。

预览着色器

为帮助您了解如何在您的应用程序中显示着色器,可以配置预览效果的方式。 若要类似于您的应用程序,可以选择多个要呈现的形状,配置纹理和其他材料参数,启用基于时间的效果动画,并从不同的角度检查预览。

形状

着色器设计器包含六个形状—球体、立方体、圆柱体、圆锥体、茶壶体和平面—您可以用于预览您着色器。 根据着色器,某些形状可能提供了更好的预览。

选择预览形状

  • 在**“着色器设计器模式”**工具栏上,选择所需的形状。

纹理和材料参数

许多着色器依赖于纹理和材质属性,以在您的应用程序中为每种对象生成唯一的外观。 若要了解着色器在您的应用程序类似的地方,可以设置用于呈现预览的纹理和材料属性,从而匹配您的应用程序中可能使用的纹理与字符串。

将其他纹理绑定到纹理寄存器,或者修改其他材料参数

  1. 在**“选择”模式中,选择设计图面的空白区域。 这会导致“属性”**窗口显示全局着色器属性。

  2. 在**“属性”**窗口中,为想要更改的纹理和参数属性指定新的值。

这是可以修改的着色器参数:

访问

文件名

材料环境

访问

材料漫射

访问

材料放射

访问

材料反射

访问

材料光泽度

访问

基于时间的效果

某些着色器对该效果进行动画处理的基于时间的元素。 若要显示进行中与该效果类似的地方,必须每秒多次更新预览。 默认情况下,当着色器更改时,仅更新预览;若要更改此行为,以便查看基于时间的效果,您必须启用实时呈现。

启用实时呈现

  • 在“着色器设计器”工具栏上,选择**“实时呈现”**。

检查效果

许多着色器受变量影响,例如视角或定向照明。 若要随着变量更改检查该效果如何响应,可以自由旋转预览形状并观察着色器的表现。

旋转形状

  • 按住 Alt,然后选择设计图面上的任何点并移动该点。

导出多个着色器

可以在您使用应用程序的着色器之前,必须以 DirectX 理解的格式导出它。

您可以导出着色器作为 HLSL 源代码或编译后的着色器字节码。 将 HLSL 源代码导出为含有 .hlsl 文件名扩展名的文本文件。 着色器 bytecode 可导出上述任一对一 .cso 文件扩展名的基元的二进制文件,或对 c. c++ 标头 (.h) 输入着色器 bytecode 到数组的文件。

有关如何导出着色器的更多信息,请参见 如何:导出着色器

键盘快捷方式

命令

键盘快捷方式

选择“选择”模式。

Ctrl+G,Gtrl+Q

S

切换到“缩放”模式

Ctrl+G, Ctrl+Z

Z

切换到“平移”模式

Ctrl+G, Ctrl+P

K

全选

Ctrl+A

删除当前选定内容

Delete

取消当前选择

转义符

放大

Ctrl+ 向前滚动鼠标轮

加号 (+)

缩小

Ctrl- 向后滚动鼠标轮

减号 (-)

向上平移设计图面

向后滚动鼠标轮

PageDown

向下平移设计图面

向前滚动鼠标轮

PageUp

向左平移设计图面

Shift+鼠标轮(向后)

左鼠标轮

Shift + PageDown

向右平移设计图面

Shift+鼠标轮(向前)

右鼠标轮

Shift + PageUp

将键盘焦点移到另一个节点

方向键

选择具有键盘焦点的节点(将节点添加到选择组)

Shift+空格键

切换具有键盘焦点的节点的选定内容

Ctrl+Spacebar

切换当前位置(如果没有选择这些节点,请选择具有键盘焦点的节点)

空格键

将当前选择向上移动

Shift+向上键

将当前选择向下移动

Shift+下箭头

将当前选择向左移动

Shift+向左键

将当前选择向右移动

Shift+向右键

相关主题

标题

说明

为游戏和应用程序使用三维资产

提供您可以使用的 Visual Studio 工具的概览,以处理纹理和图像、三维模型和着色器效果。

图像编辑器

描述如何使用 Visual Studio 图像编辑器以纹理和图像运行。

模型编辑器

描述如何以三维模型使用 Visual Studio 模型编辑器。