forked from LeenkxTeam/LNXSDK
Group Nodes, Shaders, Textures, Displacement
This commit is contained in:
@ -109,7 +109,7 @@ def parse_attribute(node: bpy.types.ShaderNodeAttribute, out_socket: bpy.types.N
|
||||
|
||||
def parse_rgb(node: bpy.types.ShaderNodeRGB, out_socket: bpy.types.NodeSocket, state: ParserState) -> vec3str:
|
||||
if node.lnx_material_param:
|
||||
nn = 'param_' + c.node_name(node.name)
|
||||
nn = 'param_' + c.node_uid(node)
|
||||
v = out_socket.default_value
|
||||
value = [float(v[0]), float(v[1]), float(v[2])]
|
||||
state.curshader.add_uniform(f'vec3 {nn}', link=f'{node.name}', default_value=value, is_lnx_mat_param=True)
|
||||
@ -163,7 +163,17 @@ def parse_geometry(node: bpy.types.ShaderNodeNewGeometry, out_socket: bpy.types.
|
||||
# Incoming
|
||||
elif out_socket == node.outputs[4]:
|
||||
state.dxdy_varying_input_value = True
|
||||
return 'vVec'
|
||||
if state.curshader.shader_type == 'frag':
|
||||
return 'vVec'
|
||||
state.curshader.add_uniform('vec3 eye', link='_cameraPosition')
|
||||
if state.curshader.shader_type == 'tese':
|
||||
return 'normalize(eye - wposition)'
|
||||
if state.curshader.shader_type == 'vert':
|
||||
state.curshader.add_uniform('mat4 W', link='_worldMatrix')
|
||||
return 'normalize(eye - (W * spos).xyz)'
|
||||
if state.curshader.shader_type == 'tesc':
|
||||
return 'normalize(eye - wposition[gl_InvocationID])'
|
||||
return 'normalize(eye - wposition[0])'
|
||||
# Parametric
|
||||
elif out_socket == node.outputs[5]:
|
||||
state.dxdy_varying_input_value = True
|
||||
@ -450,7 +460,7 @@ def parse_lightpath(node: bpy.types.ShaderNodeLightPath, out_socket: bpy.types.N
|
||||
|
||||
def parse_value(node: bpy.types.ShaderNodeValue, out_socket: bpy.types.NodeSocket, state: ParserState) -> floatstr:
|
||||
if node.lnx_material_param:
|
||||
nn = 'param_' + c.node_name(node.name)
|
||||
nn = 'param_' + c.node_uid(node)
|
||||
value = node.outputs[0].default_value
|
||||
is_lnx_mat_param = True
|
||||
state.curshader.add_uniform('float {0}'.format(nn), link='{0}'.format(node.name), default_value=value, is_lnx_mat_param=is_lnx_mat_param)
|
||||
@ -463,3 +473,9 @@ def parse_wireframe(node: bpy.types.ShaderNodeWireframe, out_socket: bpy.types.N
|
||||
# node.use_pixel_size
|
||||
# size = c.parse_value_input(node.inputs[0])
|
||||
return '0.0'
|
||||
|
||||
|
||||
def parse_volumeinfo(node: bpy.types.ShaderNodeVolumeInfo, out_socket: bpy.types.NodeSocket, state: ParserState) -> Union[floatstr, vec3str]:
|
||||
if out_socket == node.outputs['Color']:
|
||||
return 'vec3(0.0)'
|
||||
return '0.0'
|
||||
|
||||
Reference in New Issue
Block a user