<!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> <title>ShaderEdit</title> <link rel="stylesheet" type="text/css" href="ext/fa/css/fa-solid.css" /> <link rel="stylesheet" type="text/css" href="ext/fa/css/fontawesome.css" /> <link rel="stylesheet" type="text/css" href="shaderedit.css" /> <!--<script type="text/javascript" src="http://meta2d.com/libs/wabi.dev.min.js"></script><!----> <!--<script type="text/javascript" src="ext/wabi/wabi.dev.min.js"></script><!----> <!--<script type="text/javascript" src="ext/wabi/wabi.unpooled.dev.js"></script><!----> <!--<script type="text/javascript" src="ext/wabi/wabi.unpooled.js"></script><!----> <script type="text/javascript" src="ext/wabi/wabi.unpooled.edit.js"></script><!----> <!--<script type="text/javascript" src="ext/wabi/wabi.min.js"></script><!----> <script type="text/javascript"> const { component, componentVoid, elementOpen, elementClose, elementVoid, text, route, store, update } = wabi const cvoid = componentVoid const eopen = elementOpen const eclose = elementClose const evoid = elementVoid //store.update = function(k){ store.set(k, store.get(k)) } </script> <script type="text/javascript" src="ext/noisejs/perlin.js"></script> <script type="text/javascript" src="ExpressionParser.js"></script> <script type="text/javascript" src="NodeGraph.js"></script> <script type="text/javascript" src="Shaders.js"></script> <script type="text/javascript" src="RenderUtils.js"></script> <script type="text/javascript" src="Rendering.js"></script> <script type="text/javascript" src="UIControls.js"></script> <script type="text/javascript" src="NodeUI.js"></script> <script type="text/javascript" src="NodePinUI.js"></script> <script type="text/javascript" src="EditorDragDrop.js"></script> <script type="text/javascript" src="Editor.js"></script> <script type="text/javascript" src="Definitions.js"></script> </head> <body> <script type="text/javascript"> editorInit(); funcCreate("red", 3, []) funcSetCur("red") var node_output_red = nodeMap[funcGetCurData().outputNode] nodeArgSetValue(node_output_red, 0, [0.8, 0.2, 0, 1.0]) funcCreate("passthru4", 4, [{ dims: 4, name: "input" }]) funcSetCur("passthru4") var node_output_passthru4 = nodeMap[funcGetCurData().outputNode] nodeSetArgVariable(node_output_passthru4, 0, "input") funcSetCur("main") var node_output = nodeMap[funcGetCurData().outputNode] switch (1) { case 0: var node_tex2D = nodeConstruct("tex2D") var node_h2n = nodeConstruct("math") var node_pbr = nodeConstruct("func") node_pbr.rsrc = "PBR_Metallic" node_h2n.rsrc = "height2normal" //nodeSetArgSwizzle(node_h2n, 0, "xyww") -- TODO fix expression node_tex2D.rsrc = "perlinGrayscale4" node_tex2D.showPreview = true nodeArgSetLink(node_output, 0, node_pbr) nodeArgSetValue(node_pbr, 0, [0.25, 0.7, 0.9]) nodeArgSetLink(node_pbr, 1, node_h2n) nodeArgSetValue(node_pbr, 2, [0]) nodeArgSetValue(node_pbr, 3, [0.05]) nodeArgSetLink(node_h2n, 0, node_tex2D) nodeSetArgVariable(node_tex2D, 0, "vTexCoord0") nodeColsInsertCol(1, [node_pbr]) nodeColsInsertCol(2, [node_h2n]) nodeColsInsertCol(3, [node_tex2D]) break case 1: var node_texBC = nodeConstruct("tex2D") var node_texN = nodeConstruct("tex2D") var node_texM = nodeConstruct("tex2D") var node_texR = nodeConstruct("tex2D") var node_pbr = nodeConstruct("func") var node_unpacknrm = nodeConstruct("math") node_pbr.rsrc = "PBR_Metallic" node_unpacknrm.rsrc = "unpacknormal" node_texBC.rsrc = "wall1BaseColor" node_texN.rsrc = "wall1Normal" node_texM.rsrc = "wall1Metallic" node_texR.rsrc = "wall1Roughness" nodeSetArgVariable(node_texBC, 0, "vTexCoord0") nodeSetArgVariable(node_texN, 0, "vTexCoord0") nodeSetArgVariable(node_texM, 0, "vTexCoord0") nodeSetArgVariable(node_texR, 0, "vTexCoord0") nodeArgSetLink(node_output, 0, node_pbr) nodeArgSetLink(node_pbr, 0, node_texBC) nodeArgSetLink(node_pbr, 1, node_unpacknrm) nodeArgSetLink(node_pbr, 2, node_texM) nodeArgSetLink(node_pbr, 3, node_texR) nodeArgSetLink(node_unpacknrm, 0, node_texN) nodeColsInsertCol(1, [node_pbr]) nodeColsInsertCol(2, [node_texBC, node_unpacknrm, node_texM]) nodeColsInsertCol(3, [node_texN, node_texR]) break } //console.log(nodesGenerateShader(node_output)) </script> </body> </html>