Directx fx/hlsl着色器的下拉式UI小部件

Directx fx/hlsl着色器的下拉式UI小部件,directx,hlsl,Directx,Hlsl,我制作了一个HLSL着色器(fx格式),并希望在其UI中添加一个枚举/列表参数-作为布尔标志列表的更好替代 因此,不是: [x] “使用自定义映射” [x] “使用自定义贴图alpha” [x] “使用漫反射alpha” [x] “使用镜面反射alpha” [x] “使用普通alpha” 拥有: 来源:[“使用自定义地图”] 所有5个选项和代码级别上选定项的索引 “DirectX标准注释和语义参考”提到了ListPicker小部件,但我找不到任何示例或说明如何使用它 问题是: 在着色器

我制作了一个HLSL着色器(fx格式),并希望在其UI中添加一个枚举/列表参数-作为布尔标志列表的更好替代

因此,不是:

  • [x] “使用自定义映射”
  • [x] “使用自定义贴图alpha”
  • [x] “使用漫反射alpha”
  • [x] “使用镜面反射alpha”
  • [x] “使用普通alpha”
拥有:

  • 来源:[“使用自定义地图”]
所有5个选项和代码级别上选定项的索引

“DirectX标准注释和语义参考”提到了ListPicker小部件,但我找不到任何示例或说明如何使用它

问题是:

  • 在着色器的UI中是否可以有一个自定义的下拉式小部件
  • 如何实现

允许您设置类似于这些的参数,但着色器本身会完全忽略这些参数。它是另一个系统在需要时使用的纯元数据。。。它不处理UI的呈现。如果您想要一个UI,那么您必须读取这些语义和注释数据,并使用它来绘制UI。或者使用识别语义/注释结构的应用程序…

着色器没有UI。。。您确定不是在谈论DXUT吗?FX着色器确实有用户参数(由用户而不是应用程序传递),这些参数与UI控件关联,用户可以在其中设置/调整参数值。HLSL(FX)和CGFX也是如此。float3参数/控件定义:float3 g_ConstantColor={1.0f,1.0f,1.0f};flaot3参数/控制定义:浮点g_ConstantScale=1.0f;等等。其中之一是列表/枚举类型。是的,着色器没有UI。Sas兼容参数将着色器绑定到主机应用程序,应用程序可能会也可能不会为其创建UI。它不是主机应用程序,而是SAS(名称本身的状态)定义了参数注释的标准。这些注释是根据SAS规则定义的,并且是着色器代码的一部分。如果GPU不关心他们,那没关系。我的问题是关于格式或示例的,解释了此注释的外观,以便宿主应用程序能够为其参数创建UI控件。@mslaf:Fair。那么是什么软件在提供用户界面呢?给你一个组合框UIWidget完全取决于软件是否支持一个组合框(它不是标准的DXSAS类型)。FX Composer和XSI-坦率地说,我不知道,如果他们确实支持这样的组合,但无法找到其他方法,那就是提供与SAS文档匹配的东西。这里提到了ListPicker,没有任何解释。我很高兴看到基于这个解释的东西,并且可以在其他着色器编辑程序中使用,比如max with mental mill的插件。到目前为止,我假设我作为注释提供的信息格式错误,因此主机应用程序也不正确。无法呈现控件。但有可能主机无论如何都不会渲染它。