1#include "Shading/ShaderNodes/ShaderOutputNode.h"
7 if (inputPins[0]->IsLinked())
10 inputPins[0]->other->Evaluate(GetParams(function, &ln));
16 function->AddLine(
GLSLLine(
"vec3 " + VAR(
"norm") +
" = normalize(Normal);"));
17 function->AddLine(
GLSLLine(
"vec3 " + VAR(
"lightDir") +
" = normalize(_LightPosition - FragPos.xyz );"));
18 function->AddLine(
GLSLLine(
"float " + VAR(
"diff") +
" = max(dot(" + VAR(
"norm") +
", " + VAR(
"lightDir") +
"), 0.0f);"));
19 function->AddLine(
GLSLLine(
"vec3 " + VAR(
"diffuse") +
" = " + VAR(
"diff") +
" * _LightColor;"));
20 function->AddLine(
GLSLLine(
"vec3 " + VAR(
"result") +
" = (vec3(0.2, 0.2, 0.2) + " + VAR(
"diffuse") +
")" + \
21 " * vec3(" + SDATA(0) +
", " + SDATA(1) +
", " + SDATA(2) +
");"));
22 line->line = VAR(
"result");
28 color[0] = data[
"color.r"];
29 color[1] = data[
"color.g"];
30 color[2] = data[
"color.b"];
31 color[3] = data[
"color.a"];
37 data[
"type"] =
"ShaderOutput";
38 data[
"color.r"] = color[0];
39 data[
"color.g"] = color[1];
40 data[
"color.b"] = color[2];
41 data[
"color.a"] = color[3];
45void ShaderOutputNode::UpdateShaders()
47 sharedData->d0 = color[0];
48 sharedData->d1 = color[1];
49 sharedData->d2 = color[2];
52void ShaderOutputNode::OnRender()
55 inputPins[0]->Render();
57 if (!inputPins[0]->IsLinked())
59 if(ImGui::ColorPicker4(
"Object Color", color))
61 sharedData->d0 = color[0];
62 sharedData->d1 = color[1];
63 sharedData->d2 = color[2];
69 ImGui::Dummy(ImVec2(100, 40));
73ShaderOutputNode::ShaderOutputNode(
GLSLHandler *handler)
77 color[0] = color[1] = color[2] = color[3] = 1.0f;
78 headerColor = ImColor(SHADER_OUTPUT_NODE_COLOR);
79 inputPins.push_back(
new SNEPin(NodeEditorPinType::Input, SNEPinType::SNEPinType_Float3));
83ShaderOutputNode::~ShaderOutputNode()
a class to store JSON values