着色器设计器
本文档介绍如何使用 Visual Studio 着色器设计器来创建、修改和导出名为“着色器”的自定义视觉效果。
即使不了解高级着色器语言 (HLSL) 编程,也可以使用着色器设计器来创建游戏或应用的自定义视觉效果。 若要在“着色器设计器”中创建着色器,只需将其作为图形进行布局。 即添加到表示数据和操作的设计图面节点,然后在二者之间建立连接来定义操作处理数据的方式。 在每个操作节点处,提供了到该点的效果预览,使你能够对其结果进行可视化。 数据通过节点流向表示着色器输出的最后一个节点。
支持的格式
着色器设计器支持以下着色器格式:
格式名称 | 文件扩展名 | 支持的操作(查看、编辑、导出) |
---|---|---|
有向图着色器语言 | .dgsl | 查看、编辑 |
HLSL 着色器(源代码) | .hlsl | 导出 |
HLSL 着色器(字节码) | .cso | 导出 |
C++ 标头(HLSL 字节码数组) | .h | 导出 |
入门
本节描述如何将 DGSL 着色器添加到 Visual Studio C++ 项目中,并提供可帮助你入门的基本信息。
注意
图像项(例如着色器图形)的自动生成集成仅支持 C++ 项目。
将 DGSL 着色器添加到您的项目中
确保你已安装使用图形所需的必备 Visual Studio 组件。 组件称为图像和三维模型编辑器。
若要安装它,通过从菜单栏中选择“工具”>“获取工具和功能”打开 Visual Studio 安装程序,然后选择“单个组件”选项卡。选择“游戏和图形”类别下的“图像和三维模型编辑器”组件,然后选择“修改”。
在“解决方案资源管理器”中,打开要向其添加着色器的 C++ 项目的快捷菜单,然后选择“添加”>“新项”。
在“添加新项”对话框中的“已安装”下,选择“图形”,然后选择“视觉着色器图(.dgsl)”。
注意
如果没有看到“添加新项”对话框中的“图形”类别,且你已安装“图像和三维模型编辑器”组件,则图形项不支持你的项目类型。
指定着色器文件的“名称”和需要的创建“位置”。
选择“添加”按钮。
默认着色器
每次创建 DGSL 着色器时,它最初为最小着色器,仅具有连接到“最终颜色”节点的一个“点颜色”节点。 尽管此着色器完整且可工作,但没有多少用。 因此,创建有效着色器的第一步通常是删除“点颜色”节点,或将其从“最终颜色”节点断开连接以为其他节点留出空间。
使用着色器设计器
以下各节描述了如何将着色器设计器与自定义着色器一起使用。
着色器设计器工具栏
着色器设计器工具栏包含有助于使用 DGSL 着色器图的命令。
影响着色器设计器状态的命令位于主 Visual Studio 窗口中的“着色器设计器模式”工具栏上。 设计工具和命令均位于着色器设计器设计图面上的“着色器设计器”工具栏上。
以下是“着色器设计器模式”工具栏:
下表介绍了“着色器设计器模式”工具栏上的项,按其从左至右的显示顺序列出:
工具栏项 | 说明 |
---|---|
Select | 启用关系图中节点与边缘的交互。 在此模式下,可以选择节点并移动或删除它们,也可以建立边缘或中断它们。 |
平移 | 相对于窗口框架移动着色器图。 若要进行平移,请选择设计图面上的一个点,然后将其四处移动。 在“选择”模式下,可以按住 Ctrl 来暂时激活“平移”模式。 |
缩放 | 相对于窗口框架显示更多或更少的着色器图详细信息。 在“缩放”模式下,选择设计图面上的一个点,然后将其向右或向下移动可放大,向左或向上移动可缩小。 在“选择”模式下,可以按住 Ctrl,使用鼠标滚轮来缩小或放大。 |
缩放到合适大小 | 在窗口框架中显示完整的着色器图。 |
实时呈现模式 | 启用实时呈现时,即使没有执行用户操作,Visual Studio 也将重绘设计图面。 此模式用于处理随时间变化的着色器。 |
用球体预览 | 启用后,球体的模型将用于预览着色器。 一次只能启用一个预览形状。 |
用立方体预览 | 启用后,立方体的模型将用于预览着色器。 一次只能启用一个预览形状。 |
用圆柱体预览 | 启用后,圆柱体的模型将用于预览着色器。 一次只能启用一个预览形状。 |
用圆锥体预览 | 启用后,圆锥体的模型将用于预览着色器。 一次只能启用一个预览形状。 |
用茶壶体预览 | 启用后,茶壶体的模型将用于预览着色器。 一次只能启用一个预览形状。 |
用平面预览 | 启用后,平面的模型将用于预览着色器。 一次只能启用一个预览形状。 |
工具箱 | 交替显示或隐藏“工具箱”。 |
属性 | 交替显示或隐藏“属性”窗口。 |
高级 | 包含高级命令和选项。 导出:允许以多种格式导出着色器。 导出为:将着色器导出为 HLSL 源代码或已编译的着色器字节码。 有关如何导出着色器的详细信息,请参阅如何:导出着色器。 图形引擎:允许选择用于显示设计图面的呈现器。 使用 D3D11 呈现:使用 Direct3D 11 呈现着色器设计器设计图面。 使用 D3D11WARP 呈现:使用 Direct3D 11 Windows 高级光栅化平台 (WARP) 呈现着色器设计器设计图面。 查看:允许选择有关着色器设计器的其他信息。 帧速率:启用后,会在设计图面的右上角显示当前帧速率。 帧速率为每秒绘制的帧数。 在启用“实时呈现模式”选项时,此选项才有用。 |
提示
可以选择“高级”按钮再次运行上一个命令。
使用节点和连接
使用“选择”模式来添加、删除、重新定位、连接和配置节点。 以下介绍了如何执行这些基本操作:
在“选择”模式下执行基本操作
下面介绍如何操作:
若要将节点添加到图中,请在“工具箱”中将其选中,然后移动到设计图面。
若要从图中删除节点,请将其选中,然后按 Delete。
若要重新定位节点,将其选中,然后移动到新位置。
若要连接两个节点,请将一个节点的输出终端移动到另一节点的输入终端。 仅可连接具有兼容类型的终端。 终端之间的线显示该连接。
若要删除连接,请在任一连接的终端的快捷菜单上,选择“断开链接”。
若要配置节点的属性,请选择该节点,然后在“属性”窗口中,为属性指定新值。
预览着色器
为了帮助了解着色器在应用中的显示方式,可以配置效果的预览方式。 为了达到近似应用中的效果,可以选择要呈现的多个形状之一、配置纹理和其他材料参数、启用基于时间的动画效果,并从不同的角度检查预览。
形状
着色器设计器包括六个形状 - 球体、立方体、圆柱体、圆锥体、茶壶体和平面,可使用这些形状预览着色器。 视着色器而定,某些形状可能会提供更好的预览效果。
若要选择预览形状,在“着色器设计器模式”工具栏上,选择所需的形状。
纹理和材料参数
许多着色器依赖于纹理和材料属性,为应用中的每种对象生成唯一外观。 若要查看着色器在应用中的外观,可以设置用于呈现预览的纹理和材料属性,以匹配在应用中可能采用的纹理和参数。
将不同的纹理绑定到一个纹理寄存器中,或修改其他材料参数:
在“选择”模式下,选择设计图面的空白区域。 这将使“属性”窗口显示全局着色器属性。
在“属性”窗口中,为要更改的纹理和参数属性指定新值。
下表显示可以修改的着色器参数:
参数 | 属性 |
---|---|
纹理 1 - 纹理 8 | 访问:如果允许从模型编辑器设置属性,则为“公共”;否则为“私有”。 文件名:与此纹理寄存器关联的纹理文件的完整路径。 |
材料环境 | 访问:如果允许从模型编辑器设置属性,则为“公共”;否则为“私有”。 值:间接(或环境)光照引起的当前像素的漫射颜色。 |
材料漫射 | 访问:如果允许从模型编辑器设置属性,则为“公共”;否则为“私有”。 值:一种颜色,描述当前像素如何漫射直接光照。 |
材料放射 | 访问:如果允许从模型编辑器设置属性,则为“公共”;否则为“私有”。 值:由自发光照引起的当前像素的颜色量。 |
材料反射 | 访问:如果允许从模型编辑器设置属性,则为“公共”;否则为“私有”。 值:一种颜色,描述当前像素如何反射直接光照。 |
材料光泽度 | 访问:如果允许从模型编辑器设置属性,则为“公共”;否则为“私有”。 值:用于定义当前像素的反射高光的强度的指数。 |
基于时间的效果
某些着色器具有基于时间的组件,可对效果进行动画处理。 若要显示操作中的效果,必须每秒更新几次预览。 默认情况下,只在更改着色器时更新预览;若要更改此行为,以实现查看基于时间的效果,则必须启用实时呈现。
若要启动实时呈现,在着色器设计器工具栏上,选择“实时呈现”。
检查效果
许多着色器会受视角或定向光照等变量的影响。 若要检查这些变量更改时效果会如何响应,可以自由地旋转预览形状,并观察着色器的表现。
若要旋转形状,按住 Alt 键,然后在设计图面上选择任意点,并移动它。
导出着色器
在应用中使用着色器之前,必须将其导出为 DirectX 理解的格式。
可以将着色器导出为 HLSL 源代码或已编译的着色器字节码。 HLSL 源代码导出到文件扩展名为 .hlsl 的文本文件中。 可将着色器字节码导出到文件扩展名为 .cso 的原始二进制文件,或者导出到将着色器字节码编码为数组的 C++ 标头 (.h) 文件。
有关如何导出着色器的详细信息,请参阅如何:导出着色器。
键盘快捷键
命令 | 键盘快捷键 |
---|---|
切换到“选择”模式 | Ctrl+G,Ctrl+Q S |
切换到“缩放”模式 | Ctrl+G,Ctrl+Z Z |
切换到“平移”模式 | Ctrl+G,Ctrl+P K |
全选 | Ctrl+A |
删除当前选定内容 | 删除 |
取消当前选择 | Escape (Esc) |
放大 | Ctrl+向前滚动鼠标滚轮 加号 (+) |
缩小 | Ctrl+向后滚动鼠标滚轮 减号 (-) |
向上平移设计图面 | 向后滚动鼠标滚轮 PgDn |
向下平移设计图面 | 向前滚动鼠标滚轮 PgUp |
向左平移设计图面 | Shift+向后滚动鼠标滚轮 向左滚动鼠标滚轮 Shift+PgDn |
向右平移设计图面 | Shift+向前滚动鼠标滚轮 向右滚动鼠标滚轮 Shift+PgUp |
将键盘焦点移到另一节点 | 箭头键 |
选择具有键盘焦点的节点(将该节点添加到选择组中) | Shift+空格键 |
切换选择具有键盘焦点的节点 | Ctrl+空格键 |
切换当前所选内容(如果未选中任何节点,则选择具有键盘焦点的节点) | 空格键 |
向上移动当前选定内容 | Shift+向上键 |
向下移动当前选定内容 | Shift+向下键 |
向左移动当前选定项 | Shift+向左键 |
向右移动当前选定内容 | Shift+向右键 。 |
相关主题
Title | 说明 |
---|---|
处理游戏和应用的三维资产 | 概述了可用来处理纹理和图像、三维模型和着色器效果的 Visual Studio 工具。 |
图像编辑器 | 介绍如何使用 Visual Studio 图像编辑器处理纹理和图像。 |
模型编辑器 | 描述如何使用 Visual Studio 模型编辑器处理三维模型。 |