【官方 Shader Graph 插件发布帖】

效果图不就是 mac 的?

transform节点该怎么实现?

拓展自定义节点时,通过input_basic新增节点代码,并执行generate.js脚本,生成了节点的ts文件,并更新了import;新节点的block、inputlinepin,outputlinepin都创建成功的,但是一连线就报错connectPin undefined,断点排查了上下文都是有数据的,重启编辑器就没报错了,这个麻烦看看呢



@Knox @iwae 这个还蛮影响自定义节点的应用的,辛苦看看呢!

反馈给编辑器了

好嘞!感谢!

能否给一下你自定义的脚本?我这边复现一下?

async function AddCustom(content) {
// content代码传入,随便取一个节点代码即可,例如input_baisc里的Boolean
// 新增一个custom_baisc.chunk文件,用于存放新节点,或者直接写入input_bsic.chunk也可以
const customChunk = path.join(__dirname, ../shader-templates/chunks/custom_baisc.chunk);

const oldContent = fs.readFileSync(customChunk, ‘utf-8’);

const oldContentArray = oldContent.split(’}'); const newContent = `${oldContentArray[0] + content}\n}`;

fs.writeFileSync(customChunk, newContent);

const generateDir = path.join(__dirname, ‘./generate.js’);
// 执行generate.js文件
exec(node ${generateDir}, (err, stdout, stderr) => {
if (err) {
console.log(‘exec error’, err);
} else {
console.log(‘stdout’, stdout, stderr, stderr);
}
});
// 刷新文件
const fileName = getFileName(newName);
const prsPath = (Editor.Project?.path ? Editor.Project.path : Editor.remote.projectPath).replace(
/\/g,
‘/’,
);
const newFilePath = path.join(
prsPath,
/extensions/shader-graph/shader-node/assets/operation/generated/custom/basic,
${fileName}.ts,
);

const indexFilePath = path.join(
prsPath,
‘/extensions/shader-graph/shader-node/assets/operation/index.ts’,
);

Editor.Message.request(‘asset-db’, ‘refresh-asset’, newFilePath);
Editor.Message.request(‘asset-db’, ‘refresh-asset’, indexFilePath);

const info = {
imported: true,
};

const uuid = await Editor.Message.request(‘asset-db’, ‘query-uuid’, newFilePath);

Editor.Message.send(‘asset-db:asset-add’, uuid, info);

return true;
}

把 ts 代码发邮件给我吧

@Knox 新增自定义节点的方法在这,或者直接在custom_basic.chunk里新增一个节点,


再在终端里执行node generate.js文件
然后在编辑器里直接创建该节点,连线,也会报错

我这边正常没啥报错,不行你调试一下,看看 forge.ts 63 行报的是什么错误

forge.ts的63行是inputPin!.connectPins.push(outPin);的inputPin undefined;
源头应该是scene.js里的updateMaterial调用的shaderGraph.generateMasterNode;
但是shader-graph里的generateMasterNode像是执行到了内存里的shader-graph文件,打得日志和断点都没有效果

得是先打开编辑器,然后再变更chunk,执行generated,随后在编辑器里操作,这样会报错

我是打开编辑器后,再插件执行后再回到编辑器的

请问一下, 如何在这个工具中获取 比如:顶点数据,position normal, 以及各种 mvp Matrix呢?
可以通过这个工具获取 深度图吗?

ShaderGraph 什么时候可以支持 2.x 版本的引擎?

抱歉,目前没有计划支持

我添加了变量,可是材质哪里没有显示出来,是为什么啊,我记得之前382就是这样操作的没问题啊,这个是384

我也是这样,我是383

@352026213 @stk.bossliu

感谢反馈:

可以同步这个 pr 进行修复:修复 383 以后设置属性,材质效果无法同步的问题 by knoxHuang · Pull Request #25 · cocos/cocos-creator-extensions · GitHub

1赞