98.3开发SP渲染插件


文档摘要

## 98.3 开发SP渲染插件 如果能通过切换一套Shader参数值,就可以将画面切换到另一种画风,是不是很方便呢! 只需要编写插件获取、修改Shader参数为一套数值,就可以实现这个功能。 仍然在 插件的基础上,将自定义按钮的点击事件,修改为设置Shader参数的功能。 1.创建插件 复制 插件文件夹,改名为 ,拷贝下面代码: 描述了自定义按钮的属性,代码如下: 将 描述的自定义按钮,添加到工具栏,并指定按钮点击事件,代码如下: 2.测试插件 点击菜单 - 刷新插件列表,默认就会启用新创建的插件。 点击自定义的工具栏按钮,就会修改Shader参数为指定的一套数值。

98.3 开发SP渲染插件

如果能通过切换一套Shader参数值,就可以将画面切换到另一种画风,是不是很方便呢!

只需要编写插件获取、修改Shader参数为一套数值,就可以实现这个功能。

仍然在helloworld插件的基础上,将自定义按钮的点击事件,修改为设置Shader参数的功能。

1.创建插件

复制helloworld插件文件夹,改名为shader-normalize,拷贝下面代码:
toolbar.qml描述了自定义按钮的属性,代码如下:

import QtQuick 2.7 import AlgWidgets 2.0 import AlgWidgets.Style 2.0 AlgButton { tooltip: "规范化shader,自动填充参数" iconName: "" text: "Shader规范化" }

main.qmltoolbar.qml描述的自定义按钮,添加到工具栏,并指定按钮点击事件,代码如下:

import QtQuick 2.7 import Painter 1.0 // Root object for the plugin PainterPlugin { // Disable update and server settings // since we don't need them tickIntervalMS: -1 // Disabled Tick jsonServerPort: -1 // Disabled JSON server // 插件加载完毕回调 Component.onCompleted: { // 将 toolbar.qml 描述的按钮,添加到工具栏 var InterfaceButton = alg.ui.addToolBarWidget("toolbar.qml"); // 给按钮加事件 if( InterfaceButton ) { InterfaceButton.clicked.connect( normalizeShader ); } } function normalizeShader() { alg.log.info( "normalizeShader") //输出shader参数组列表(参数是分组的) alg.log.info(alg.shaders.groups(0)); //遍历所有shader实例,输出shader名字和id alg.shaders.instances().forEach(function(shader) { alg.log.info(shader.label + ": " + shader.id); }); //找到使用这个shader的材质(测试发现没有被使用??) var materials = alg.shaders.materials(0); for (var key in materials) { alg.log.info("%1: %2".arg(key).arg(materials[key].value)); } //打印shader所有参数 //var parameters = alg.shaders.parameters(0); //alg.log.info(parameters); //在面板上找到group,然后打印shader指定group的参数 alg.log.info(alg.shaders.parameters(0, "Coat")); //获取参数值 var parameter=alg.shaders.parameter(0, "sssScale"); alg.log.info("%1: %2".arg(parameter.description.label).arg(parameter.value)); //设置shader参数 alg.shaders.setParameters(0, { coatEnabled: true, ao_intensity: 0.5, sssScale: 0.1 }); } }

2.测试插件

点击菜单 JavaScript-Reload Plugins Folder刷新插件列表,默认就会启用新创建的插件。
点击自定义的工具栏按钮,就会修改Shader参数为指定的一套数值。


发布者: 作者: 转发
评论区 (0)
U