Bump node fix

This commit is contained in:
luboslenco
2021-02-01 12:59:42 +01:00
parent c609245e49
commit e830eee952
@@ -885,12 +885,15 @@ class MaterialParser {
sample_bump = false;
var nor = parse_vector_input(node.inputs[3]);
if (sample_bump_res != "") {
curshader.nAttr = true;
// curshader.nAttr = true;
curshader.write('${sample_bump_res}_x *= ($strength) * 16.0;');
curshader.write('${sample_bump_res}_y *= ($strength) * 16.0;');
curshader.write('vec3 ${sample_bump_res}_a = normalize(vec3(1.0, 0.0, ${sample_bump_res}_x));');
curshader.write('vec3 ${sample_bump_res}_b = normalize(vec3(0.0, 1.0, ${sample_bump_res}_y));');
res = 'normalize(mul(nAttr, mat3(${sample_bump_res}_a, ${sample_bump_res}_b, normalize(vec3(${sample_bump_res}_x, ${sample_bump_res}_y, 1.0)))))';
// curshader.write('vec3 ${sample_bump_res}_a = normalize(vec3(1.0, 0.0, ${sample_bump_res}_x));');
// curshader.write('vec3 ${sample_bump_res}_b = normalize(vec3(0.0, 1.0, ${sample_bump_res}_y));');
// res = 'normalize(mul(nAttr, mat3(${sample_bump_res}_a, ${sample_bump_res}_b, normalize(vec3(${sample_bump_res}_x, ${sample_bump_res}_y, 1.0)))))';
// sample_bump_res = "";
res = '(normalize(vec3(${sample_bump_res}_x, ${sample_bump_res}_y, 1.0) + $nor) * vec3(0.5, 0.5, 0.5) + vec3(0.5, 0.5, 0.5))';
sample_bump_res = "";
}
else {
@@ -898,15 +901,21 @@ class MaterialParser {
res = "n";
}
res = '($res + $nor)';
// res = '($res + $nor)';
if (!curshader.invTBN) {
curshader.invTBN = true;
curshader.nAttr = true;
curshader.add_function(ShaderFunctions.str_cotangentFrame);
curshader.write('mat3 invTBN = transpose(cotangentFrame(nAttr, -nAttr, texCoord));');
}
res = '(normalize(mul($res, invTBN)) * 0.5 + 0.5)';
// if (!curshader.invTBN) {
// curshader.invTBN = true;
// curshader.nAttr = true;
// curshader.add_function(ShaderFunctions.str_cotangentFrame);
// frag.vVec = true;
// #if (kha_direct3d11 || kha_direct3d12 || kha_metal || kha_vulkan)
// frag.write('mat3 invTBN = transpose(cotangentFrame(nAttr, vVec, texCoord));');
// #else
// frag.write('mat3 invTBN = transpose(cotangentFrame(nAttr, -vVec, texCoord));');
// #end
// }
// res = '(normalize(mul($res, invTBN)) * 0.5 + 0.5)';
return res;
}
else if (node.type == "MAPPING") {