Compare commits

...

14 Commits

8 changed files with 19 additions and 44 deletions

View File

@ -6,22 +6,12 @@ Welcome to Leenkx!
<br> <br>
- <a style="color:#2AE0E0;" class="text primary primary-text" href="https://leenkx.com/files/LeenkxSDK3_RC.zip">LeenkxSDKV3.6 lts</a> - Run your own private p2p torrent socket changing Leenkx javascript file directly in /lnxsdk/lib/leenkx_tools/lnxjs/Leenkx.js or by configuring the OPTS map in the create Leenkx node.
<br>
- <a style="color:#2AE0E0;" class="text primary primary-text" href="https://leenkx.com/files/lx/Leenkx.js">Leenkx.js</a>
<br>
- Run your own private p2p torrent socket changing Leenkx javascript file directly in /lnxsdk/lib/leenkx_tools/lxjs/Leenkx.js or by configuring the OPTS map in the create Leenkx node.
<br> <br>
- All works are open source ZLIB / MIT and any compatible licence that guarantee the softwares freedom from my additions to the previous maintainers - LNXJS Works as a standalone library
<br>
- LxJS Works as a standalone library
<br> <br>
- The SDK is not ready for production, use for educational purposes. Help the team by reaching out at Leenkx.com! - The SDK is not ready for production, use for educational purposes. Help the team by reaching out at Leenkx.com!
<br> <br>
- This build is based on QuantumCoder's whole new core animation system packed with new features! Timmodrians Aura library is also built into this build when audio is enabled!
<br>
- The SDK is still undergoing many changes so working on large projects is not recommended.
<br>
- Special thanks to all contributors from the following projects! - Special thanks to all contributors from the following projects!
<br> <br>
* https://github.com/armory3d/armory/graphs/contributors<br> * https://github.com/armory3d/armory/graphs/contributors<br>

View File

@ -310,9 +310,9 @@ class LeenkxAddonPreferences(AddonPreferences):
layout.label(text="Welcome to Leenkx!") layout.label(text="Welcome to Leenkx!")
# Compare version Blender and Leenkx (major, minor) # Compare version Blender and Leenkx (major, minor)
if bpy.app.version[0] != 3 or bpy.app.version[1] != 6: if bpy.app.version[0] != 4 or bpy.app.version[1] != 2:
box = layout.box().column() box = layout.box().column()
box.label(text="Warning: For Leenkx to work correctly, you need Blender 3.6 LTS.") box.label(text="Warning: For Leenkx to work correctly, use a Blender LTS version such as 4.2 | 3.6 | 3.3")
layout.prop(self, "sdk_path") layout.prop(self, "sdk_path")
sdk_path = get_sdk_path(context) sdk_path = get_sdk_path(context)

View File

@ -35,4 +35,4 @@ class LoadUrlNode(LnxLogicTreeNode):
if self.lnx_version not in (0, 1): if self.lnx_version not in (0, 1):
raise LookupError() raise LookupError()
return NodeReplacement.Identity(self) return NodeReplacement.Identity(self)

View File

@ -1,10 +0,0 @@
from lnx.logicnode.lnx_nodes import *
class DetectMobileBrowserNode(LnxLogicTreeNode):
"""Determines the mobile browser or not (works only for web browsers)."""
bl_idname = 'LNDetectMobileBrowserNode'
bl_label = 'Detect Mobile Browser'
lnx_version = 1
def lnx_init(self, context):
self.add_output('LnxBoolSocket', 'Mobile')

View File

@ -1,11 +0,0 @@
from lnx.logicnode.lnx_nodes import *
class LoadUrlNode(LnxLogicTreeNode):
"""Load the given URL in a new tab (works only for web browsers)."""
bl_idname = 'LNLoadUrlNode'
bl_label = 'Load URL'
lnx_version = 1
def lnx_init(self, context):
self.add_input('LnxNodeSocketAction', 'In')
self.add_input('LnxStringSocket', 'URL')

View File

@ -685,8 +685,10 @@ def make_forward_base(con_mesh, parse_opacity=False, transluc_pass=False):
if '_VoxelGI' in wrd.world_defs: if '_VoxelGI' in wrd.world_defs:
if parse_opacity: if parse_opacity:
frag.write('indirect = traceDiffuse(wposition, n, voxels, clipmaps).rgb * albedo * voxelgiDiff;') frag.write('indirect = traceDiffuse(wposition, n, voxels, clipmaps).rgb * albedo * voxelgiDiff;')
frag.write('if (roughness < 1.0 && specular > 0.0)') frag.write('if (roughness < 1.0 && specular > 0.0){')
frag.write(' indirect += traceSpecular(wposition, n, voxels, voxelsSDF, normalize(eye - wposition), roughness, clipmaps, gl_FragCoord.xy).rgb * specular * voxelgiRefl;') #frag.add_uniform('sampler2D sveloc')
#frag.write(' vec2 velocity = -textureLod(sveloc, gl_FragCoord.xy, 0.0).rg;')
frag.write(' indirect += traceSpecular(wposition, n, voxels, voxelsSDF, normalize(eye - wposition), roughness, clipmaps, gl_FragCoord.xy).rgb * specular * voxelgiRefl;}')
else: else:
frag.add_uniform("sampler2D voxels_diffuse") frag.add_uniform("sampler2D voxels_diffuse")
frag.add_uniform("sampler2D voxels_specular") frag.add_uniform("sampler2D voxels_specular")
@ -792,12 +794,10 @@ def make_forward_base(con_mesh, parse_opacity=False, transluc_pass=False):
if '_VoxelRefract' in wrd.world_defs and parse_opacity: if '_VoxelRefract' in wrd.world_defs and parse_opacity:
frag.write('if (opacity < 1.0) {') frag.write('if (opacity < 1.0) {')
frag.write('vec3 refraction = traceRefraction(wposition, n, voxels, voxelsSDF, normalize(eye - wposition), ior, roughness, clipmaps, gl_FragCoord.xy).rgb;') #frag.write(' vec2 velocity = -textureLod(sveloc, gl_FragCoord.xy, 0.0).rg;')
frag.write(' vec3 refraction = traceRefraction(wposition, n, voxels, voxelsSDF, normalize(eye - wposition), ior, roughness, clipmaps, gl_FragCoord.xy).rgb;')
frag.write(' indirect = mix(refraction, indirect, opacity) * voxelgiRefr;') frag.write(' indirect = mix(refraction, indirect, opacity) * voxelgiRefr;')
frag.write(' direct = mix(refraction, direct, opacity) * voxelgiRefr;') frag.write(' direct = mix(refraction, direct, opacity) * voxelgiRefr;')
frag.write(' vec3 refraction = traceRefraction(wposition, n, voxels, voxelsSDF, vVec, ior, roughness, clipmaps, texCoord).rgb * voxelgiRefr;')
frag.write(' indirect = mix(refraction, indirect, opacity);')
frag.write(' direct = mix(refraction, direct, opacity);')
frag.write('}') frag.write('}')
def _write_material_attribs_default(frag: shader.Shader, parse_opacity: bool): def _write_material_attribs_default(frag: shader.Shader, parse_opacity: bool):

View File

@ -803,8 +803,8 @@ def check_blender_version(op: bpy.types.Operator):
"""Check whether the Blender version is supported by Leenkx, """Check whether the Blender version is supported by Leenkx,
if not, report in UI. if not, report in UI.
""" """
if bpy.app.version[0] != 3 or bpy.app.version[1] != 6: if bpy.app.version[0] != 4 or bpy.app.version[1] != 2:
op.report({'INFO'}, 'For Leenkx to work correctly, you need Blender 3.6 LTS.') op.report({'INFO'}, 'INFO: For Leenkx to work correctly, use a Blender LTS version such as 4.2 | 3.6 | 3.3')
def check_saved(self): def check_saved(self):

View File

@ -278,6 +278,9 @@ project.addSources('Sources');
assets.add_khafile_def('kha_no_ogg') assets.add_khafile_def('kha_no_ogg')
else: else:
assets.add_khafile_def('lnx_audio') assets.add_khafile_def('lnx_audio')
lnxAudio_path = sdk_path + '/lib/aura'
lnxAudio_path = lnxAudio_path.replace('\\', '/').replace('//', '/')
khafile.write("await project.addProject('" + lnxAudio_path + "');\n".format("aura"))
if wrd.lnx_texture_quality < 1.0: if wrd.lnx_texture_quality < 1.0:
assets.add_khafile_def('lnx_texcompress') assets.add_khafile_def('lnx_texcompress')
@ -309,6 +312,9 @@ project.addSources('Sources');
if not os.path.exists('Libraries/network'): if not os.path.exists('Libraries/network'):
khafile.write(add_leenkx_library(sdk_path, 'lib/network', rel_path=do_relpath_sdk)) khafile.write(add_leenkx_library(sdk_path, 'lib/network', rel_path=do_relpath_sdk))
assets.add_khafile_def('lnx_network') assets.add_khafile_def('lnx_network')
lnxjs_path = sdk_path + '/lib/leenkx_tools/lnxjs/Leenkx.js'
lnxjs_path = lnxjs_path.replace('\\', '/').replace('//', '/')
khafile.write(add_assets(lnxjs_path, rel_path=do_relpath_sdk))
if not wrd.lnx_minimize: if not wrd.lnx_minimize:
assets.add_khafile_def('lnx_json') assets.add_khafile_def('lnx_json')