forked from LeenkxTeam/LNXSDK
Update Files
This commit is contained in:
@ -0,0 +1,17 @@
|
||||
from lnx.logicnode.lnx_nodes import *
|
||||
|
||||
class ColorgradingGetGlobalNode(LnxLogicTreeNode):
|
||||
"""TO DO."""
|
||||
bl_idname = 'LNColorgradingGetGlobalNode'
|
||||
bl_label = 'Colorgrading Get Global'
|
||||
lnx_section = 'colorgrading'
|
||||
lnx_version = 1
|
||||
|
||||
def lnx_init(self, context):
|
||||
self.add_output('LnxFloatSocket', 'Whitebalance')
|
||||
self.add_output('LnxVectorSocket', 'Tint')
|
||||
self.add_output('LnxVectorSocket', 'Saturation')
|
||||
self.add_output('LnxVectorSocket', 'Contrast')
|
||||
self.add_output('LnxVectorSocket', 'Gamma')
|
||||
self.add_output('LnxVectorSocket', 'Gain')
|
||||
self.add_output('LnxVectorSocket', 'Offset')
|
@ -0,0 +1,16 @@
|
||||
from lnx.logicnode.lnx_nodes import *
|
||||
|
||||
class ColorgradingGetHighlightNode(LnxLogicTreeNode):
|
||||
"""TO DO."""
|
||||
bl_idname = 'LNColorgradingGetHighlightNode'
|
||||
bl_label = 'Colorgrading Get Highlight'
|
||||
lnx_section = 'colorgrading'
|
||||
lnx_version = 1
|
||||
|
||||
def lnx_init(self, context):
|
||||
self.add_output('LnxFloatSocket', 'HightlightMin')
|
||||
self.add_output('LnxVectorSocket', 'Saturation')
|
||||
self.add_output('LnxVectorSocket', 'Contrast')
|
||||
self.add_output('LnxVectorSocket', 'Gamma')
|
||||
self.add_output('LnxVectorSocket', 'Gain')
|
||||
self.add_output('LnxVectorSocket', 'Offset')
|
@ -0,0 +1,15 @@
|
||||
from lnx.logicnode.lnx_nodes import *
|
||||
|
||||
class ColorgradingGetMidtoneNode(LnxLogicTreeNode):
|
||||
"""TO DO."""
|
||||
bl_idname = 'LNColorgradingGetMidtoneNode'
|
||||
bl_label = 'Colorgrading Get Midtone'
|
||||
lnx_section = 'colorgrading'
|
||||
lnx_version = 1
|
||||
|
||||
def lnx_init(self, context):
|
||||
self.add_output('LnxVectorSocket', 'Saturation')
|
||||
self.add_output('LnxVectorSocket', 'Contrast')
|
||||
self.add_output('LnxVectorSocket', 'Gamma')
|
||||
self.add_output('LnxVectorSocket', 'Gain')
|
||||
self.add_output('LnxVectorSocket', 'Offset')
|
@ -0,0 +1,16 @@
|
||||
from lnx.logicnode.lnx_nodes import *
|
||||
|
||||
class ColorgradingGetShadowNode(LnxLogicTreeNode):
|
||||
"""TO DO."""
|
||||
bl_idname = 'LNColorgradingGetShadowNode'
|
||||
bl_label = 'Colorgrading Get Shadow'
|
||||
lnx_section = 'colorgrading'
|
||||
lnx_version = 1
|
||||
|
||||
def lnx_init(self, context):
|
||||
self.add_output('LnxFloatSocket', 'ShadowMax')
|
||||
self.add_output('LnxVectorSocket', 'Saturation')
|
||||
self.add_output('LnxVectorSocket', 'Contrast')
|
||||
self.add_output('LnxVectorSocket', 'Gamma')
|
||||
self.add_output('LnxVectorSocket', 'Gain')
|
||||
self.add_output('LnxVectorSocket', 'Offset')
|
@ -0,0 +1,75 @@
|
||||
import bpy
|
||||
|
||||
from lnx.logicnode.lnx_nodes import *
|
||||
|
||||
|
||||
def update_node(self, context):
|
||||
#Clean all nodes
|
||||
|
||||
while len(self.inputs) > 1:
|
||||
self.inputs.remove(self.inputs[-1])
|
||||
|
||||
if (self.property0 == 'Uniform'):
|
||||
self.draw_nodes_uniform(context)
|
||||
elif (self.property0 == 'RGB'):
|
||||
self.draw_nodes_rgb(context)
|
||||
else:
|
||||
self.draw_nodes_colorwheel(context)
|
||||
|
||||
def set_data(self, context):
|
||||
|
||||
abspath = bpy.path.abspath(self.filepath)
|
||||
abspath = abspath.replace("\\","\\\\")
|
||||
with open(abspath, 'r') as myfile:
|
||||
data = myfile.read().replace('\n', '').replace('"','')
|
||||
self.property1 = data
|
||||
|
||||
class ColorgradingSetGlobalNode(LnxLogicTreeNode):
|
||||
"""TO DO."""
|
||||
bl_idname = 'LNColorgradingSetGlobalNode'
|
||||
bl_label = 'Colorgrading Set Global'
|
||||
lnx_section = 'colorgrading'
|
||||
lnx_version = 1
|
||||
|
||||
# TODO: RRESET FILE OPTION FOR THE BELOW
|
||||
property0 : HaxeEnumProperty(
|
||||
'property0',
|
||||
items = [('RGB', 'RGB', 'RGB'),
|
||||
('Uniform', 'Uniform', 'Uniform')],
|
||||
name='Mode', default='Uniform', update=update_node)
|
||||
property1 : HaxeStringProperty('property1', name="Loaded Data", description="Loaded data - Just ignore", default="")
|
||||
filepath : StringProperty(name="Preset File", description="Postprocess colorgrading preset file", default="", subtype="FILE_PATH", update=set_data)
|
||||
|
||||
|
||||
def draw_nodes_uniform(self, context):
|
||||
self.add_input('LnxFloatSocket', 'Whitebalance', default_value=6500.0)
|
||||
self.add_input('LnxColorSocket', 'Tint', default_value=[1.0, 1.0, 1.0, 1.0])
|
||||
self.add_input('LnxFloatSocket', 'Saturation', default_value=1)
|
||||
self.add_input('LnxFloatSocket', 'Contrast', default_value=1)
|
||||
self.add_input('LnxFloatSocket', 'Gamma', default_value=1)
|
||||
self.add_input('LnxFloatSocket', 'Gain', default_value=1)
|
||||
self.add_input('LnxFloatSocket', 'Offset', default_value=1)
|
||||
|
||||
def draw_nodes_rgb(self, context):
|
||||
self.add_input('LnxFloatSocket', 'Whitebalance', default_value=6500.0)
|
||||
self.add_input('LnxVectorSocket', 'Tint', default_value=[1,1,1])
|
||||
self.add_input('LnxVectorSocket', 'Saturation', default_value=[1,1,1])
|
||||
self.add_input('LnxVectorSocket', 'Contrast', default_value=[1,1,1])
|
||||
self.add_input('LnxVectorSocket', 'Gamma', default_value=[1,1,1])
|
||||
self.add_input('LnxVectorSocket', 'Gain', default_value=[1,1,1])
|
||||
self.add_input('LnxVectorSocket', 'Offset', default_value=[1,1,1])
|
||||
|
||||
def draw_nodes_colorwheel(self, context):
|
||||
pass
|
||||
|
||||
def lnx_init(self, context):
|
||||
self.add_input('LnxNodeSocketAction', 'In')
|
||||
self.add_output('LnxNodeSocketAction', 'Out')
|
||||
self.draw_nodes_uniform(context)
|
||||
|
||||
def draw_buttons(self, context, layout):
|
||||
layout.label(text="Select value mode")
|
||||
layout.prop(self, 'property0')
|
||||
if (self.property0 == 'Preset File'):
|
||||
layout.prop(self, 'filepath')
|
||||
layout.prop(self, 'property1')
|
@ -0,0 +1,73 @@
|
||||
import bpy
|
||||
|
||||
from lnx.logicnode.lnx_nodes import *
|
||||
|
||||
|
||||
def update_node(self, context):
|
||||
#Clean all nodes
|
||||
|
||||
while len(self.inputs) > 1:
|
||||
self.inputs.remove(self.inputs[-1])
|
||||
|
||||
if (self.property0 == 'Uniform'):
|
||||
self.draw_nodes_uniform(context)
|
||||
elif (self.property0 == 'RGB'):
|
||||
self.draw_nodes_rgb(context)
|
||||
else:
|
||||
self.draw_nodes_colorwheel(context)
|
||||
|
||||
def set_data(self, context):
|
||||
|
||||
abspath = bpy.path.abspath(self.filepath)
|
||||
abspath = abspath.replace("\\","\\\\")
|
||||
with open(abspath, 'r') as myfile:
|
||||
data = myfile.read().replace('\n', '').replace('"','')
|
||||
self.property1 = data
|
||||
|
||||
class ColorgradingSetHighlightNode(LnxLogicTreeNode):
|
||||
"""TO DO."""
|
||||
bl_idname = 'LNColorgradingSetHighlightNode'
|
||||
bl_label = 'Colorgrading Set Highlight'
|
||||
lnx_section = 'colorgrading'
|
||||
lnx_version = 1
|
||||
|
||||
# TODO: RRESET FILE OPTION FOR THE BELOW
|
||||
property0: HaxeEnumProperty(
|
||||
'property0',
|
||||
items = [('RGB', 'RGB', 'RGB'),
|
||||
('Uniform', 'Uniform', 'Uniform')],
|
||||
name='Mode', default='Uniform', update=update_node)
|
||||
property1 : HaxeStringProperty('property1', name="Loaded Data", description="Loaded data - Just ignore", default="")
|
||||
filepath : StringProperty(name="Preset File", description="Postprocess colorgrading preset file", default="", subtype="FILE_PATH", update=set_data)
|
||||
|
||||
|
||||
def draw_nodes_uniform(self, context):
|
||||
self.add_input('LnxFloatSocket', 'HighlightMin', default_value=0)
|
||||
self.add_input('LnxFloatSocket', 'Saturation', default_value=1)
|
||||
self.add_input('LnxFloatSocket', 'Contrast', default_value=1)
|
||||
self.add_input('LnxFloatSocket', 'Gamma', default_value=1)
|
||||
self.add_input('LnxFloatSocket', 'Gain', default_value=1)
|
||||
self.add_input('LnxFloatSocket', 'Offset', default_value=1)
|
||||
|
||||
def draw_nodes_rgb(self, context):
|
||||
self.add_input('LnxFloatSocket', 'HighlightMin', default_value=0)
|
||||
self.add_input('LnxVectorSocket', 'Saturation', default_value=[1,1,1])
|
||||
self.add_input('LnxVectorSocket', 'Contrast', default_value=[1,1,1])
|
||||
self.add_input('LnxVectorSocket', 'Gamma', default_value=[1,1,1])
|
||||
self.add_input('LnxVectorSocket', 'Gain', default_value=[1,1,1])
|
||||
self.add_input('LnxVectorSocket', 'Offset', default_value=[1,1,1])
|
||||
|
||||
def draw_nodes_colorwheel(self, context):
|
||||
pass
|
||||
|
||||
def lnx_init(self, context):
|
||||
self.add_input('LnxNodeSocketAction', 'In')
|
||||
self.add_output('LnxNodeSocketAction', 'Out')
|
||||
self.draw_nodes_uniform(context)
|
||||
|
||||
def draw_buttons(self, context, layout):
|
||||
layout.label(text="Select value mode")
|
||||
layout.prop(self, 'property0')
|
||||
if (self.property0 == 'Preset File'):
|
||||
layout.prop(self, 'filepath')
|
||||
layout.prop(self, 'property1')
|
@ -0,0 +1,72 @@
|
||||
import bpy
|
||||
|
||||
from lnx.logicnode.lnx_nodes import *
|
||||
|
||||
|
||||
def update_node(self, context):
|
||||
#Clean all nodes
|
||||
|
||||
while len(self.inputs) > 1:
|
||||
self.inputs.remove(self.inputs[-1])
|
||||
|
||||
if (self.property0 == 'Uniform'):
|
||||
self.draw_nodes_uniform(context)
|
||||
elif (self.property0 == 'RGB'):
|
||||
self.draw_nodes_rgb(context)
|
||||
else:
|
||||
self.draw_nodes_colorwheel(context)
|
||||
|
||||
def set_data(self, context):
|
||||
|
||||
abspath = bpy.path.abspath(self.filepath)
|
||||
abspath = abspath.replace("\\","\\\\")
|
||||
with open(abspath, 'r') as myfile:
|
||||
data = myfile.read().replace('\n', '').replace('"','')
|
||||
self.property1 = data
|
||||
|
||||
class ColorgradingSetMidtoneNode(LnxLogicTreeNode):
|
||||
"""TO DO."""
|
||||
bl_idname = 'LNColorgradingSetMidtoneNode'
|
||||
bl_label = 'Colorgrading Set Midtone'
|
||||
lnx_section = 'colorgrading'
|
||||
lnx_version = 1
|
||||
|
||||
# TODO: RRESET FILE OPTION FOR THE BELOW
|
||||
property0: HaxeEnumProperty(
|
||||
'property0',
|
||||
items = [('RGB', 'RGB', 'RGB'),
|
||||
('Uniform', 'Uniform', 'Uniform')],
|
||||
name='Mode', default='Uniform', update=update_node)
|
||||
property1 : HaxeStringProperty('property1', name="Loaded Data", description="Loaded data - Just ignore", default="")
|
||||
filepath : StringProperty(name="Preset File", description="Postprocess colorgrading preset file", default="", subtype="FILE_PATH", update=set_data)
|
||||
|
||||
|
||||
def draw_nodes_uniform(self, context):
|
||||
self.add_input('LnxFloatSocket', 'Saturation', default_value=1)
|
||||
self.add_input('LnxFloatSocket', 'Contrast', default_value=1)
|
||||
self.add_input('LnxFloatSocket', 'Gamma', default_value=1)
|
||||
self.add_input('LnxFloatSocket', 'Gain', default_value=1)
|
||||
self.add_input('LnxFloatSocket', 'Offset', default_value=1)
|
||||
|
||||
def draw_nodes_rgb(self, context):
|
||||
self.add_input('LnxVectorSocket', 'Tint', default_value=[1,1,1])
|
||||
self.add_input('LnxVectorSocket', 'Saturation', default_value=[1,1,1])
|
||||
self.add_input('LnxVectorSocket', 'Contrast', default_value=[1,1,1])
|
||||
self.add_input('LnxVectorSocket', 'Gamma', default_value=[1,1,1])
|
||||
self.add_input('LnxVectorSocket', 'Gain', default_value=[1,1,1])
|
||||
self.add_input('LnxVectorSocket', 'Offset', default_value=[1,1,1])
|
||||
|
||||
def draw_nodes_colorwheel(self, context):
|
||||
pass
|
||||
|
||||
def lnx_init(self, context):
|
||||
self.add_input('LnxNodeSocketAction', 'In')
|
||||
self.add_output('LnxNodeSocketAction', 'Out')
|
||||
self.draw_nodes_uniform(context)
|
||||
|
||||
def draw_buttons(self, context, layout):
|
||||
layout.label(text="Select value mode")
|
||||
layout.prop(self, 'property0')
|
||||
if (self.property0 == 'Preset File'):
|
||||
layout.prop(self, 'filepath')
|
||||
layout.prop(self, 'property1')
|
@ -0,0 +1,73 @@
|
||||
import bpy
|
||||
|
||||
from lnx.logicnode.lnx_nodes import *
|
||||
|
||||
|
||||
def update_node(self, context):
|
||||
#Clean all nodes
|
||||
|
||||
while len(self.inputs) > 1:
|
||||
self.inputs.remove(self.inputs[-1])
|
||||
|
||||
if (self.property0 == 'Uniform'):
|
||||
self.draw_nodes_uniform(context)
|
||||
elif (self.property0 == 'RGB'):
|
||||
self.draw_nodes_rgb(context)
|
||||
else:
|
||||
self.draw_nodes_colorwheel(context)
|
||||
|
||||
def set_data(self, context):
|
||||
|
||||
abspath = bpy.path.abspath(self.filepath)
|
||||
abspath = abspath.replace("\\","\\\\")
|
||||
with open(abspath, 'r') as myfile:
|
||||
data = myfile.read().replace('\n', '').replace('"','')
|
||||
self.property1 = data
|
||||
|
||||
class ColorgradingSetShadowNode(LnxLogicTreeNode):
|
||||
"""TO DO."""
|
||||
bl_idname = 'LNColorgradingSetShadowNode'
|
||||
bl_label = 'Colorgrading Set Shadow'
|
||||
lnx_section = 'colorgrading'
|
||||
lnx_version = 1
|
||||
|
||||
# TODO: RRESET FILE OPTION FOR THE BELOW
|
||||
property0: HaxeEnumProperty(
|
||||
'property0',
|
||||
items = [('RGB', 'RGB', 'RGB'),
|
||||
('Uniform', 'Uniform', 'Uniform')],
|
||||
name='Mode', default='Uniform', update=update_node)
|
||||
property1 : HaxeStringProperty('property1', name="Loaded Data", description="Loaded data - Just ignore", default="")
|
||||
filepath : StringProperty(name="Preset File", description="Postprocess colorgrading preset file", default="", subtype="FILE_PATH", update=set_data)
|
||||
|
||||
|
||||
def draw_nodes_uniform(self, context):
|
||||
self.add_input('LnxFloatSocket', 'ShadowMax', default_value=1)
|
||||
self.add_input('LnxFloatSocket', 'Saturation', default_value=1)
|
||||
self.add_input('LnxFloatSocket', 'Contrast', default_value=1)
|
||||
self.add_input('LnxFloatSocket', 'Gamma', default_value=1)
|
||||
self.add_input('LnxFloatSocket', 'Gain', default_value=1)
|
||||
self.add_input('LnxFloatSocket', 'Offset', default_value=1)
|
||||
|
||||
def draw_nodes_rgb(self, context):
|
||||
self.add_input('LnxFloatSocket', 'ShadowMax', default_value=1)
|
||||
self.add_input('LnxVectorSocket', 'Saturation', default_value=[1,1,1])
|
||||
self.add_input('LnxVectorSocket', 'Contrast', default_value=[1,1,1])
|
||||
self.add_input('LnxVectorSocket', 'Gamma', default_value=[1,1,1])
|
||||
self.add_input('LnxVectorSocket', 'Gain', default_value=[1,1,1])
|
||||
self.add_input('LnxVectorSocket', 'Offset', default_value=[1,1,1])
|
||||
|
||||
def draw_nodes_colorwheel(self, context):
|
||||
pass
|
||||
|
||||
def lnx_init(self, context):
|
||||
self.add_input('LnxNodeSocketAction', 'In')
|
||||
self.add_output('LnxNodeSocketAction', 'Out')
|
||||
self.draw_nodes_uniform(context)
|
||||
|
||||
def draw_buttons(self, context, layout):
|
||||
layout.label(text="Select value mode")
|
||||
layout.prop(self, 'property0')
|
||||
if (self.property0 == 'Preset File'):
|
||||
layout.prop(self, 'filepath')
|
||||
layout.prop(self, 'property1')
|
@ -0,0 +1,24 @@
|
||||
from lnx.logicnode.lnx_nodes import *
|
||||
|
||||
|
||||
class BloomGetNode(LnxLogicTreeNode):
|
||||
"""Return the current bloom post-processing settings. This node
|
||||
requires `Leenkx Render Path > Renderer > Realtime postprocess`
|
||||
to be enabled in order to work.
|
||||
"""
|
||||
bl_idname = 'LNBloomGetNode'
|
||||
bl_label = 'Get Bloom Settings'
|
||||
lnx_version = 2
|
||||
|
||||
def lnx_init(self, context):
|
||||
self.add_output('LnxFloatSocket', 'Threshold')
|
||||
self.add_output('LnxFloatSocket', 'Knee')
|
||||
self.add_output('LnxFloatSocket', 'Strength')
|
||||
self.add_output('LnxFloatSocket', 'Radius')
|
||||
|
||||
def get_replacement_node(self, node_tree: bpy.types.NodeTree):
|
||||
return NodeReplacement(
|
||||
'LNBloomGetNode', 1,
|
||||
'LNBloomGetNode', 2,
|
||||
{}, {0: 0, 1: 2, 2: 3}
|
||||
)
|
@ -0,0 +1,11 @@
|
||||
from lnx.logicnode.lnx_nodes import *
|
||||
|
||||
class ChromaticAberrationGetNode(LnxLogicTreeNode):
|
||||
"""Returns the chromatic aberration post-processing settings."""
|
||||
bl_idname = 'LNChromaticAberrationGetNode'
|
||||
bl_label = 'Get CA Settings'
|
||||
lnx_version = 1
|
||||
|
||||
def lnx_init(self, context):
|
||||
self.add_output('LnxFloatSocket', 'Strength')
|
||||
self.add_output('LnxFloatSocket', 'Samples')
|
@ -0,0 +1,29 @@
|
||||
from lnx.logicnode.lnx_nodes import *
|
||||
|
||||
class CameraGetNode(LnxLogicTreeNode):
|
||||
"""Returns the post-processing effects of a camera."""
|
||||
bl_idname = 'LNCameraGetNode'
|
||||
bl_label = 'Get Camera Post Process'
|
||||
lnx_version = 4
|
||||
|
||||
def lnx_init(self, context):
|
||||
self.add_output('LnxFloatSocket', 'F-Stop')#0
|
||||
self.add_output('LnxFloatSocket', 'Shutter Time')#1
|
||||
self.add_output('LnxFloatSocket', 'ISO')#2
|
||||
self.add_output('LnxFloatSocket', 'Exposure Compensation')#3
|
||||
self.add_output('LnxFloatSocket', 'Fisheye Distortion')#4
|
||||
self.add_output('LnxBoolSocket', 'Auto Focus')#5
|
||||
self.add_output('LnxFloatSocket', 'DOF Distance')#6
|
||||
self.add_output('LnxFloatSocket', 'DOF Length')#7
|
||||
self.add_output('LnxFloatSocket', 'DOF F-Stop')#8
|
||||
self.add_output('LnxBoolSocket', 'Tonemapping')#9
|
||||
self.add_output('LnxFloatSocket', 'Distort')#10
|
||||
self.add_output('LnxFloatSocket', 'Film Grain')#11
|
||||
self.add_output('LnxFloatSocket', 'Sharpen')#12
|
||||
self.add_output('LnxFloatSocket', 'Vignette')#13
|
||||
|
||||
def get_replacement_node(self, node_tree: bpy.types.NodeTree):
|
||||
if self.lnx_version not in (0, 3):
|
||||
raise LookupError()
|
||||
|
||||
return NodeReplacement.Identity(self)
|
@ -0,0 +1,14 @@
|
||||
from lnx.logicnode.lnx_nodes import *
|
||||
|
||||
class LenstextureGetNode(LnxLogicTreeNode):
|
||||
"""Returns the lens texture settings."""
|
||||
bl_idname = 'LNLenstextureGetNode'
|
||||
bl_label = 'Get Lenstexture Settings'
|
||||
lnx_version = 1
|
||||
|
||||
def lnx_init(self, context):
|
||||
self.add_output('LnxFloatSocket', 'Center Min Clip')
|
||||
self.add_output('LnxFloatSocket', 'Center Max Clip')
|
||||
self.add_output('LnxFloatSocket', 'Luminance Min')
|
||||
self.add_output('LnxFloatSocket', 'Luminance Max')
|
||||
self.add_output('LnxFloatSocket', 'Brightness Exponent')
|
@ -0,0 +1,11 @@
|
||||
from lnx.logicnode.lnx_nodes import *
|
||||
|
||||
class LetterboxGetNode(LnxLogicTreeNode):
|
||||
"""Returns the letterbox post-processing settings."""
|
||||
bl_idname = 'LNLetterboxGetNode'
|
||||
bl_label = 'Get Letterbox Settings'
|
||||
lnx_version = 1
|
||||
|
||||
def lnx_init(self, context):
|
||||
self.add_output('LnxColorSocket', 'Color')
|
||||
self.add_output('LnxFloatSocket', 'Size')
|
@ -0,0 +1,12 @@
|
||||
from lnx.logicnode.lnx_nodes import *
|
||||
|
||||
class SSAOGetNode(LnxLogicTreeNode):
|
||||
"""Returns the SSAO post-processing settings."""
|
||||
bl_idname = 'LNSSAOGetNode'
|
||||
bl_label = 'Get SSAO Settings'
|
||||
lnx_version = 1
|
||||
|
||||
def lnx_init(self, context):
|
||||
self.add_output('LnxFloatSocket', 'Radius')
|
||||
self.add_output('LnxFloatSocket', 'Strength')
|
||||
self.add_output('LnxFloatSocket', 'Max Steps')
|
@ -0,0 +1,14 @@
|
||||
from lnx.logicnode.lnx_nodes import *
|
||||
|
||||
class SSRGetNode(LnxLogicTreeNode):
|
||||
"""Returns the SSR post-processing settings."""
|
||||
bl_idname = 'LNSSRGetNode'
|
||||
bl_label = 'Get SSR Settings'
|
||||
lnx_version = 1
|
||||
|
||||
def lnx_init(self, context):
|
||||
self.add_output('LnxFloatSocket', 'SSR Step')
|
||||
self.add_output('LnxFloatSocket', 'SSR Step Min')
|
||||
self.add_output('LnxFloatSocket', 'SSR Search')
|
||||
self.add_output('LnxFloatSocket', 'SSR Falloff')
|
||||
self.add_output('LnxFloatSocket', 'SSR Jitter')
|
@ -0,0 +1,17 @@
|
||||
from lnx.logicnode.lnx_nodes import *
|
||||
|
||||
class LenstextureSetNode(LnxLogicTreeNode):
|
||||
"""Set the lens texture settings."""
|
||||
bl_idname = 'LNLenstextureSetNode'
|
||||
bl_label = 'Set Lenstexture'
|
||||
lnx_version = 1
|
||||
|
||||
def lnx_init(self, context):
|
||||
self.add_input('LnxNodeSocketAction', 'In')
|
||||
self.add_input('LnxFloatSocket', 'Center Min Clip', default_value=0.1)
|
||||
self.add_input('LnxFloatSocket', 'Center Max Clip', default_value=0.5)
|
||||
self.add_input('LnxFloatSocket', 'Luminance Min', default_value=0.10)
|
||||
self.add_input('LnxFloatSocket', 'Luminance Max', default_value=2.50)
|
||||
self.add_input('LnxFloatSocket', 'Brightness Exponent', default_value=2.0)
|
||||
|
||||
self.add_output('LnxNodeSocketAction', 'Out')
|
@ -0,0 +1,34 @@
|
||||
from lnx.logicnode.lnx_nodes import *
|
||||
import lnx.node_utils
|
||||
|
||||
|
||||
class BloomSetNode(LnxLogicTreeNode):
|
||||
"""Set the bloom post-processing settings. This node
|
||||
requires `Leenkx Render Path > Renderer > Realtime postprocess`
|
||||
to be enabled in order to work.
|
||||
"""
|
||||
bl_idname = 'LNBloomSetNode'
|
||||
bl_label = 'Set Bloom Settings'
|
||||
lnx_version = 2
|
||||
|
||||
def lnx_init(self, context):
|
||||
self.add_input('LnxNodeSocketAction', 'In')
|
||||
self.add_input('LnxFloatSocket', 'Threshold', default_value=0.8)
|
||||
self.add_input('LnxFloatSocket', 'Knee', default_value=0.5)
|
||||
self.add_input('LnxFloatSocket', 'Strength', default_value=0.05)
|
||||
self.add_input('LnxFloatSocket', 'Radius', default_value=6.5)
|
||||
|
||||
self.add_output('LnxNodeSocketAction', 'Out')
|
||||
|
||||
def get_replacement_node(self, node_tree: bpy.types.NodeTree):
|
||||
return NodeReplacement(
|
||||
'LNBloomSetNode', 1,
|
||||
'LNBloomSetNode', 2,
|
||||
{0: 0, 1: 1, 2: 3, 3: 4}, {0: 0},
|
||||
None,
|
||||
{
|
||||
1: lnx.node_utils.get_socket_default(self.inputs[1]),
|
||||
3: lnx.node_utils.get_socket_default(self.inputs[2]),
|
||||
4: lnx.node_utils.get_socket_default(self.inputs[3]),
|
||||
}
|
||||
)
|
@ -0,0 +1,14 @@
|
||||
from lnx.logicnode.lnx_nodes import *
|
||||
|
||||
class ChromaticAberrationSetNode(LnxLogicTreeNode):
|
||||
"""Set the chromatic aberration post-processing settings."""
|
||||
bl_idname = 'LNChromaticAberrationSetNode'
|
||||
bl_label = 'Set CA Settings'
|
||||
lnx_version = 1
|
||||
|
||||
def lnx_init(self, context):
|
||||
self.add_input('LnxNodeSocketAction', 'In')
|
||||
self.add_input('LnxFloatSocket', 'Strength', default_value=2.0)
|
||||
self.add_input('LnxIntSocket', 'Samples', default_value=32)
|
||||
|
||||
self.add_output('LnxNodeSocketAction', 'Out')
|
@ -0,0 +1,39 @@
|
||||
from lnx.logicnode.lnx_nodes import *
|
||||
|
||||
class CameraSetNode(LnxLogicTreeNode):
|
||||
"""Set the post-processing effects of a camera."""
|
||||
bl_idname = 'LNCameraSetNode'
|
||||
bl_label = 'Set Camera Post Process'
|
||||
lnx_version = 4
|
||||
|
||||
def lnx_init(self, context):
|
||||
self.add_input('LnxNodeSocketAction', 'In')
|
||||
self.add_input('LnxFloatSocket', 'F-stop', default_value=1.0)#0
|
||||
self.add_input('LnxFloatSocket', 'Shutter Time', default_value=2.8333)#1
|
||||
self.add_input('LnxFloatSocket', 'ISO', default_value=100.0)#2
|
||||
self.add_input('LnxFloatSocket', 'Exposure Compensation', default_value=0.0)#3
|
||||
self.add_input('LnxFloatSocket', 'Fisheye Distortion', default_value=0.01)#4
|
||||
self.add_input('LnxBoolSocket', 'Auto Focus', default_value=True)#5
|
||||
self.add_input('LnxFloatSocket', 'DoF Distance', default_value=10.0)#6
|
||||
self.add_input('LnxFloatSocket', 'DoF Length', default_value=160.0)#7
|
||||
self.add_input('LnxFloatSocket', 'DoF F-Stop', default_value=128.0)#8
|
||||
self.add_input('LnxBoolSocket', 'Tonemapping', default_value=False)#9
|
||||
self.add_input('LnxFloatSocket', 'Distort', default_value=2.0)#10
|
||||
self.add_input('LnxFloatSocket', 'Film Grain', default_value=2.0)#11
|
||||
self.add_input('LnxFloatSocket', 'Sharpen', default_value=0.25)#12
|
||||
self.add_input('LnxFloatSocket', 'Vignette', default_value=0.7)#13
|
||||
|
||||
self.add_output('LnxNodeSocketAction', 'Out')
|
||||
|
||||
def get_replacement_node(self, node_tree: bpy.types.NodeTree):
|
||||
if self.lnx_version not in range(0, 4):
|
||||
raise LookupError()
|
||||
elif self.lnx_version == 1:
|
||||
newnode = node_tree.nodes.new('LNCameraSetNode')
|
||||
|
||||
for link in self.inputs[10].links:
|
||||
node_tree.links.new(newnode.inputs[10], link.to_socket)
|
||||
|
||||
return newnode
|
||||
else:
|
||||
return NodeReplacement.Identity(self)
|
@ -0,0 +1,20 @@
|
||||
from lnx.logicnode.lnx_nodes import *
|
||||
|
||||
class LetterboxSetNode(LnxLogicTreeNode):
|
||||
"""Set the letterbox post-processing settings."""
|
||||
bl_idname = 'LNLetterboxSetNode'
|
||||
bl_label = 'Set Letterbox Settings'
|
||||
lnx_version = 2
|
||||
|
||||
def lnx_init(self, context):
|
||||
self.add_input('LnxNodeSocketAction', 'In')
|
||||
self.add_input('LnxColorSocket', 'Color', default_value=[0.0, 0.0, 0.0, 1.0])
|
||||
self.add_input('LnxFloatSocket', 'Size', default_value=0.1)
|
||||
|
||||
self.add_output('LnxNodeSocketAction', 'Out')
|
||||
|
||||
def get_replacement_node(self, node_tree: bpy.types.NodeTree):
|
||||
if self.lnx_version not in (0, 1):
|
||||
raise LookupError()
|
||||
|
||||
return NodeReplacement.Identity(self)
|
@ -0,0 +1,15 @@
|
||||
from lnx.logicnode.lnx_nodes import *
|
||||
|
||||
class SSAOSetNode(LnxLogicTreeNode):
|
||||
"""Set the SSAO post-processing settings."""
|
||||
bl_idname = 'LNSSAOSetNode'
|
||||
bl_label = 'Set SSAO Settings'
|
||||
lnx_version = 1
|
||||
|
||||
def lnx_init(self, context):
|
||||
self.add_input('LnxNodeSocketAction', 'In')
|
||||
self.add_input('LnxFloatSocket', 'Radius', default_value=1.0)
|
||||
self.add_input('LnxFloatSocket', 'Strength', default_value=5.0)
|
||||
self.add_input('LnxIntSocket', 'Max Steps', default_value=8)
|
||||
|
||||
self.add_output('LnxNodeSocketAction', 'Out')
|
@ -0,0 +1,17 @@
|
||||
from lnx.logicnode.lnx_nodes import *
|
||||
|
||||
class SSRSetNode(LnxLogicTreeNode):
|
||||
"""Set the SSR post-processing settings."""
|
||||
bl_idname = 'LNSSRSetNode'
|
||||
bl_label = 'Set SSR Settings'
|
||||
lnx_version = 1
|
||||
|
||||
def lnx_init(self, context):
|
||||
self.add_input('LnxNodeSocketAction', 'In')
|
||||
self.add_input('LnxFloatSocket', 'SSR Step', default_value=0.04)
|
||||
self.add_input('LnxFloatSocket', 'SSR Step Min', default_value=0.05)
|
||||
self.add_input('LnxFloatSocket', 'SSR Search', default_value=5.0)
|
||||
self.add_input('LnxFloatSocket', 'SSR Falloff', default_value=5.0)
|
||||
self.add_input('LnxFloatSocket', 'SSR Jitter', default_value=0.6)
|
||||
|
||||
self.add_output('LnxNodeSocketAction', 'Out')
|
4
leenkx/blender/lnx/logicnode/postprocess/__init__.py
Normal file
4
leenkx/blender/lnx/logicnode/postprocess/__init__.py
Normal file
@ -0,0 +1,4 @@
|
||||
from lnx.logicnode.lnx_nodes import add_node_section
|
||||
|
||||
add_node_section(name='default', category='Postprocess')
|
||||
add_node_section(name='colorgrading', category='Postprocess')
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user