Skip to content

Commit

Permalink
feat: drop support if statement in shader node editor
Browse files Browse the repository at this point in the history
  • Loading branch information
Yuki Shimada committed Jun 13, 2024
1 parent 92f4204 commit 20ee705
Showing 1 changed file with 19 additions and 35 deletions.
54 changes: 19 additions & 35 deletions src/foundation/materials/core/ShaderGraphResolver.ts
Original file line number Diff line number Diff line change
Expand Up @@ -277,7 +277,6 @@ ${prerequisitesShaderityObject.code}
}

// generate shader code by topological sorted nodes, varInputNames and varOutputNames
let ifCondition = '';
for (let i = 0; i < materialNodes.length; i++) {
const materialNode = materialNodes[i];
const functionName = materialNode.shaderFunctionName;
Expand All @@ -289,42 +288,27 @@ ${prerequisitesShaderityObject.code}
}

let rowStr = '';
if (functionName === 'ifStatement') {
ifCondition = varInputNames[i][0];
} else {
if (functionName.match(/^blockBegin_/)) {
rowStr += `if (${ifCondition}) {\n`;
ifCondition = '';
}

// Normal Node Process Begin
if (
materialNode.getInputs().length !== varInputNames[i].length ||
materialNode.getOutputs().length !== varOutputNames[i].length
) {
continue;
}
const varNames = varInputNames[i].concat(varOutputNames[i]);
if (varNames.length > 0) {
// Call node functions
rowStr += `${functionName}(`;
for (let k = 0; k < varNames.length; k++) {
const varName = varNames[k];
if (varName == null) {
continue;
}
if (k !== 0) {
rowStr += ', ';
}
rowStr += varNames[k];
if (
materialNode.getInputs().length !== varInputNames[i].length ||
materialNode.getOutputs().length !== varOutputNames[i].length
) {
continue;
}
const varNames = varInputNames[i].concat(varOutputNames[i]);
if (varNames.length > 0) {
// Call node functions
rowStr += `${functionName}(`;
for (let k = 0; k < varNames.length; k++) {
const varName = varNames[k];
if (varName == null) {
continue;
}
rowStr += ');\n';
}
// Normal Node Process End

if (functionName.match(/^blockEnd_/)) {
rowStr += '}\n';
if (k !== 0) {
rowStr += ', ';
}
rowStr += varNames[k];
}
rowStr += ');\n';
}

shaderBody += rowStr;
Expand Down

0 comments on commit 20ee705

Please sign in to comment.