forked from LeenkxTeam/LNXSDK
Compare commits
No commits in common. "1958342a7405b187229003dc6ece3aa614c338cd" and "9c5fc5d1d3ac2ad65c54c3577d80d7b3735ff6e8" have entirely different histories.
1958342a74
...
9c5fc5d1d3
14
README.md
14
README.md
@ -6,12 +6,22 @@ Welcome to Leenkx!
|
|||||||
|
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
- 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.
|
- <a style="color:#2AE0E0;" class="text primary primary-text" href="https://leenkx.com/files/LeenkxSDK3_RC.zip">LeenkxSDKV3.6 lts</a>
|
||||||
<br>
|
<br>
|
||||||
- LNXJS Works as a standalone library
|
- <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>
|
||||||
|
- All works are open source ZLIB / MIT and any compatible licence that guarantee the softwares freedom from my additions to the previous maintainers
|
||||||
|
<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>
|
||||||
|
@ -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] != 4 or bpy.app.version[1] != 2:
|
if bpy.app.version[0] != 3 or bpy.app.version[1] != 6:
|
||||||
box = layout.box().column()
|
box = layout.box().column()
|
||||||
box.label(text="Warning: For Leenkx to work correctly, use a Blender LTS version such as 4.2 | 3.6 | 3.3")
|
box.label(text="Warning: For Leenkx to work correctly, you need Blender 3.6 LTS.")
|
||||||
|
|
||||||
layout.prop(self, "sdk_path")
|
layout.prop(self, "sdk_path")
|
||||||
sdk_path = get_sdk_path(context)
|
sdk_path = get_sdk_path(context)
|
||||||
|
@ -0,0 +1,10 @@
|
|||||||
|
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')
|
11
leenkx/blender/lnx/logicnode/native/LN_loadUrl.py
Normal file
11
leenkx/blender/lnx/logicnode/native/LN_loadUrl.py
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
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')
|
@ -685,10 +685,8 @@ 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.add_uniform('sampler2D sveloc')
|
frag.write(' indirect += traceSpecular(wposition, n, voxels, voxelsSDF, normalize(eye - wposition), roughness, clipmaps, gl_FragCoord.xy).rgb * specular * voxelgiRefl;')
|
||||||
#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")
|
||||||
@ -794,10 +792,12 @@ 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(' 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(' 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):
|
||||||
|
@ -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] != 4 or bpy.app.version[1] != 2:
|
if bpy.app.version[0] != 3 or bpy.app.version[1] != 6:
|
||||||
op.report({'INFO'}, 'INFO: For Leenkx to work correctly, use a Blender LTS version such as 4.2 | 3.6 | 3.3')
|
op.report({'INFO'}, 'For Leenkx to work correctly, you need Blender 3.6 LTS.')
|
||||||
|
|
||||||
|
|
||||||
def check_saved(self):
|
def check_saved(self):
|
||||||
|
@ -278,9 +278,6 @@ 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')
|
||||||
@ -312,9 +309,6 @@ 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')
|
||||||
|
Loading…
x
Reference in New Issue
Block a user