fx/hlsl 着色器的下拉 UI 小部件
我制作了一个 HLSL 着色器(fx 格式),并希望在其 UI 中添加一个枚举/列表参数 - 作为布尔标志列表的更好替代方案。
因此,而不是:
- [x]“使用自定义贴图”
- [x]“使用自定义贴图 alpha”
- [x]“使用漫反射 alpha”
- [x]“使用镜面 alpha”
- [x]“使用法线 alpha”
具有:
- 来源:[ “使用自定义地图”]
包含所有 5 个选项以及代码级别上所选项目的索引。
“DirectX 标准注释和语义参考”提到了 ListPicker 小部件,但我找不到任何示例或描述如何使用它。
问题是:
- 是否可以在着色器的 UI 中拥有一个类似下拉菜单的自定义小部件?
- 如何实现?
I've made a HLSL shader (fx format) and would like to add a enum/list paremeter to its UI - as a better alternative to the list of boolean flags.
So instead of :
- [x] "Use custom map"
- [x] "Use custom map alpha"
- [x] "Use diffuse alpha"
- [x] "Use specular alpha"
- [x] "Use normal alpha"
have:
- Source: [ "Use custom map" ]
with all 5 choices and the index to selected item on the code level.
"DirectX Standard Annotations and Semantics Reference" mentions about the ListPicker widget but I can't find any example or description how to use it.
The questions are:
- Is it possible to have a custom dropdown-like widget in the shader's UI?
- How to achieve it?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
SAS 允许您设置此类参数,但着色器本身完全忽略它。它纯粹是供另一个系统在需要时使用的元数据……它不处理 UI 的渲染。如果你想要一个用户界面,那么你必须阅读这个语义&注释数据并使用它来绘制 UI。要么使用识别语义/注释结构的应用程序......
SAS allows you to set parameters like these but it is entirely ignore by the shader itself. It is purely meta-data for another system to use if/when it needs too ... it does NOT handle rendering of the UI. If you want a UI then you have to read this semantic & annotation data and use it to draw a UI. Either that or use an application that recognises the semantics/annotations structure ...