Commit graph

2046 commits

Author SHA1 Message Date
Alexander Kleemann f1858550d0 Blending fix
Fix for https://github.com/armory3d/armory/issues/1615
2021-02-20 13:51:25 +01:00
tong 352f37db0c More f string 2021-02-20 09:53:48 +01:00
tong a1fce84f59 Use f string to format console messages 2021-02-20 09:36:42 +01:00
Moritz Brückner 98481929df Fix drawing of bool properties in UI (#1689) 2021-02-19 20:59:54 +01:00
SunDaw c5855ad96f Add mask option to pick RB node and physicsworld 2021-02-19 19:42:18 +01:00
tong 0abb43f249 Revert terminal color change 2021-02-19 17:25:42 +01:00
tong d93de12252 Print human readable time 2021-02-19 17:04:18 +01:00
tong 325f7471c0 Fix printing build flags 2021-02-19 17:01:09 +01:00
tong b7c4a8bb3f Improve console build messages 2021-02-19 16:57:12 +01:00
tong d4ee144577 Improve console warning 2021-02-19 16:53:01 +01:00
tong 8bc831d7e2 Show scene name in missing camera warning 2021-02-19 16:50:29 +01:00
N8n5h 3ef380978e Make sure compiled.inc is always first when parsing shaders for clusters 2021-02-14 20:21:51 -03:00
Lubos Lenco 49a599dc66
Merge pull request #2102 from N8n5h/light-fix-2
Add support for shadow map atlasing
2021-02-14 16:32:59 +01:00
Lubos Lenco 726e2fec6d
Merge pull request #2105 from MoritzBrueckner/custom-mat-operator
Add button to create a new custom material
2021-02-13 17:30:54 +01:00
Moritz Brückner 52e4aaa21c Add button to create a new custom material 2021-02-12 20:12:55 +01:00
Moritz Brückner 3260e627ce Fix custom material export when scene is exported in arm format
See af247f1876 for reference
2021-02-12 00:31:19 +01:00
N8n5h 1c3e24a8fd Add support for shadow map atlasing
With this it is now possible to enable atlasing of shadow maps, which solves the existing limitation of 4 lights in a scene. This is done by
grouping the rendering of shadow maps, that currently are drawn into their own images for each light, into one or several big textures. This was
done because the openGL and webGL version Armory targets do not support dynamic indexing of shadowMapSamplers, meaning that the index that
access an array of shadow maps has to be know by the compiler before hand so it can be unrolled into if/else branching. By instead simply
using a big shadow map texture and moving the dynamic part to other types of array that are allowed dynamic indexing like vec4 and mat4, this
limitation was solved.

The premise was simple enough for the shader part, but for the Haxe part, managing and solving where lights shadow maps should go in a shadow map
can be tricky. So to keep track and solve this, ShadowMapAtlas and ShadowMapTile were created. These classes have the minimally required logic
to solve the basic features needed for this problem: defining some kind of abstraction to prevent overlapping of shadowmaps, finding available
space, assigning such space efficiently, locking and freeing this space, etc. This functionality it is used by drawShadowMapAtlas(), which is a
modified version of drawShadowMap().

Shadow map atlases are represented with perfectly balanced 4-ary trees, where each tree of the previous definition represents a "tile" or slice
that results from dividing a square that represents the image into 4 slices or sub-images. The root of this "tile" it's a reference to the
tile-slice, and this tile is divided in 4 slices, and the process is repeated depth-times. If depth is 1, slices are kept at just the initial
4 tiles of max size, which is the default size of the shadow map. #arm_shadowmap_atlas_lod allows controlling if code to support more depth
levels is added or not when compiling.

the tiles that populate atlases tile trees are simply a data structure that contains a reference to the light they are linked to, inner
subtiles in case LOD is enabled, coordinates to where this tile starts in the atlas that go from 0 to Shadow Map Size, and a reference to a
linked tile for LOD. This simple definition allows tiles having a theoretically small memory footprint, but in turn this simplicity might make
some functionality that might be responsibility of tiles (for example knowing if they are overlapping) a responsibility of the ones that
utilizes tiles instead. This decision may complicate maintenance so it is to be revised in future iterations of this feature.
2021-02-04 17:53:59 -03:00
Moritz Brückner afe133381c Fix normals export of skinned materials 2021-02-03 18:23:22 +01:00
luboslenco 6ffa58fb6b Bump version 2021-02-01 10:00:43 +01:00
tong 725520081a Normalize sdk path 2021-01-26 16:38:49 +01:00
tong 8619006757 Print rounded build time to console 2021-01-24 18:36:58 +01:00
Moritz Brückner 41657adb64 Cleanup 2021-01-17 00:23:19 +01:00
Moritz Brückner fb8a056394 Fix reroute socket indices 2021-01-17 00:23:02 +01:00
Moritz Brückner e742ca76c0 Fix editing bundled traits if the project was never compiled 2021-01-08 22:40:14 +01:00
luboslenco 27521265df Bump version 2021-01-03 12:11:59 +01:00
Lubos Lenco 97582968bd
Merge pull request #2076 from MoritzBrueckner/instancing
Show warnings for invalid instancing configurations + cleanup
2021-01-01 12:56:52 +01:00
Moritz Brückner 11591c79a4 Cleanup 2020-12-30 01:06:54 +01:00
Moritz Brückner 96dfc06295 Show warnings for invalid instancing configurations 2020-12-30 00:43:46 +01:00
Moritz Brückner 93dc0d248b Show warning when scene is missing a world and rp background is set to world 2020-12-29 17:39:18 +01:00
QuantumCoderQC 174ce72349 Correct Spacing 2020-12-27 00:35:24 +01:00
QuantumCoderQC 4ee36afc0c Add Speed and Loop options for Play Action From Node 2020-12-27 00:29:03 +01:00
Lubos Lenco 569b2daecc
Merge pull request #2065 from MoritzBrueckner/node-side-panel
Improve node side panel + context menu (more operators, icons)
2020-12-23 13:08:38 +01:00
Moritz Brückner 372419c9ff arm.open_node_documentation: add icon and fix docstring 2020-12-22 17:25:26 +01:00
Lubos Lenco 70b989e25f
Merge pull request #2064 from MoritzBrueckner/pose-markers
Fix bone markers export
2020-12-20 11:50:45 +01:00
Lubos Lenco 3d69855935
Merge pull request #2063 from MoritzBrueckner/relative-paths
Use relative paths only when path/reference are on the same drive
2020-12-20 11:50:29 +01:00
Moritz Brückner 15d832c66c Show node operator icons in dropdown menu 2020-12-19 01:11:55 +01:00
Moritz Brückner df522516f2 Rename Armory nodes panel: 'Node' -> 'Armory' 2020-12-19 01:09:55 +01:00
Moritz Brückner 76b2380ec4 Improve node side panel (more operators, icons) 2020-12-19 01:08:52 +01:00
Moritz Brückner 563c04f456 Whitespace cleanup 2020-12-17 23:44:59 +01:00
Moritz Brückner f68debf39a Fix bone markers export 2020-12-17 23:44:51 +01:00
Moritz Brückner 3f1200417c Cleanup imports 2020-12-17 23:34:38 +01:00
Moritz Brückner 0bda1abfb7 Optimize on_same_drive() calls 2020-12-17 23:19:56 +01:00
Moritz Brückner 397d860a5a Cleanup write_data.py 2020-12-17 22:57:09 +01:00
Moritz Brückner d7e5d07e52 Only use relative paths when path/reference are on the same drive 2020-12-17 22:25:00 +01:00
knowledgenude 570de6f699 fix-cap 2020-12-16 17:27:25 -03:00
knowledgenude 8c1baa2e9a add-world-vector-to-local-space-node 2020-12-16 17:24:43 -03:00
Lubos Lenco 882dea8d6c
Merge pull request #2058 from MoritzBrueckner/dynamic-node-labels
Add dynamic node labels
2020-12-16 10:50:25 +01:00
Lubos Lenco e2231c7f16
Merge pull request #2055 from MoritzBrueckner/shader-uniform-node
Add SetShaderUniform node
2020-12-16 10:48:10 +01:00
Moritz Brückner 76389c8652 Add dynamic node labels 2020-12-15 23:47:38 +01:00
Moritz Brückner b03e15edba Add 'stream' option to Play Sound nodes 2020-12-13 22:53:36 +01:00
Moritz Brückner 62dbc5f34a Add SetShaderUniform node 2020-12-13 22:41:05 +01:00
QuantumCoderQC c0bde50306 Fix normals and wposition in custom particle node 2020-12-12 14:10:03 +01:00
Lubos Lenco 9f35d55bd3
Merge pull request #2047 from QuantumCoderQC/bcon_nodes
New Physics Constraint nodes. Improve Bullet Physics constraint trait
2020-12-06 09:19:14 +01:00
Lubos Lenco fdcdf86c24
Merge pull request #2046 from MoritzBrueckner/node-replacement
Fix and further improve node replacement system
2020-12-06 09:17:38 +01:00
Lubos Lenco bcfbdae925
Merge pull request #2045 from knowledgenude/master
Fix volume trigger
2020-12-06 09:16:12 +01:00
Moritz Brückner 16700de7f0 Node replacement: write error message after file has been written 2020-12-05 12:50:05 +01:00
Moritz Brückner 10587900d4 Node replacement: give credit to @niacdoial (code moved to other module) 2020-12-05 12:48:49 +01:00
QuantumCoderQC c845301f7c New logic node to add custom physics constraints. Add documentation. 2020-12-05 01:12:59 +01:00
QuantumCoderQC c250be4735 Improvise logic node implementation. 2020-12-05 01:12:59 +01:00
QuantumCoderQC e2511fd460 Trying new designs 2020-12-05 01:12:59 +01:00
QuantumCoderQC 02e52341a5 New node to add physics constraints 2020-12-05 01:12:59 +01:00
QuantumCoderQC 174a7f66dd Modify exporter to use PhysicsConstraintExportHelper class 2020-12-05 01:12:59 +01:00
Moritz Brückner 01874e2287 Replacement error dialog: add button to open report folder 2020-12-04 22:57:47 +01:00
Moritz Brückner bd5953c39f Improve module docstring 2020-12-04 22:53:06 +01:00
Moritz Brückner 1b210d0f00 Node replacement: report original traceback for unknown exceptions 2020-12-04 22:50:25 +01:00
Moritz Brückner 332d60547b Node replacement: improve console output 2020-12-04 22:36:38 +01:00
Moritz Brückner 16376dafe2 Simplify replacement error handling 2020-12-04 22:32:44 +01:00
Moritz Brückner 0bddfea5e3 Move node replacement system into its own module 2020-12-04 22:29:31 +01:00
Moritz Brückner b5e33062b3 Improve replacement error message 2020-12-04 21:55:02 +01:00
Moritz Brückner 1fb1196979 Remove replacement node on error during replacement 2020-12-04 21:25:51 +01:00
Moritz Brückner e53d9446e7 Cleanup 2020-12-04 21:17:50 +01:00
knowledgenude 90daf7e077 rename-labels 2020-12-04 09:49:50 -03:00
E1e5en 59c31950c8 Added option for HTML5 Settings
- Disable browser context menu - disable the browser context menu for the canvas element on the page (index.html).
2020-12-02 20:54:14 +03:00
luboslenco dc19715571 Bump version 2020-12-01 13:39:44 +01:00
Lubos Lenco 67e2b0171b
Merge pull request #2030 from Naxela/master
Update lightmapper to version 0.4
2020-11-30 11:18:26 +01:00
Lubos Lenco 5ff3ec9055
Merge pull request #2028 from QuantumCoderQC/rb_nodes
New Add rigid body node
2020-11-30 10:38:20 +01:00
Moritz Brückner d18d9e1a27 Fix copy_pass missing on deferred when only compositor was enabled 2020-11-29 17:16:43 +01:00
QuantumCoderQC d71284560e Implemented a new node to add rigid bodies to objects at run-time 2020-11-29 01:16:59 +01:00
Alexander 837a313c7a Fix indentation errors 2020-11-28 23:58:28 +01:00
Alexander b24a76f30f Update lightmapper 2020-11-28 23:23:52 +01:00
Moritz Brückner 3f51b35b89 Reset compositor defs before renderpath building 2020-11-28 23:13:15 +01:00
Moritz Brückner 8814326bab write_data.py: cleanup and improve chromatic aberration section 2020-11-28 23:12:21 +01:00
Lubos Lenco 607c5e57cf
Merge pull request #2024 from MoritzBrueckner/mouse-movement
Improve `Get Mouse Movement` node
2020-11-28 12:30:52 +01:00
Moritz Brückner 0acadd2e74 Improve Get Mouse Movement node 2020-11-26 10:00:35 +01:00
Lubos Lenco 73cae5406e
Merge pull request #2023 from E1e5en/ln-math-expression
LN Math Expression
2020-11-26 08:49:04 +01:00
E1e5en d084a8297e Windows Settings – Publish and action after
Windows Settings:
Visual Studio Version - select the studio version for which the project will be exported. Options: 2010, 2012, 2013, 2015, 2017, 2019. Default: 2019.
Update - checks the installed versions of Visual Studio on the PC and adds (installed) to the version in the list if available (for information). Example:
sample_vs_2
Action After Publishing - select an action after a successful publication. Options:
Nothing - do nothing. Default value;
Open In Visual Studio - open the project in the corresponding studio version;
Compile - compilation of the project;
Compile and Run - compile and run the project. Then the executable file will be copied to the windows-hl folder (where the resources are located).
Mode - compilation mode. Options: Debug, Release. Default: Debug.
Architecture - the architecture for which the application will be built. Options: x86, x64. Default: version of the user’s PC architecture.
Compile Log Parameter - setting the output of messages during compilation:
Summary - show the error and warning summary at the end. Default value;
No Summary - don \ 't show the error and warning summary at the end;
Warnings and Errors Only - show only warnings and errors;
Warnings Only - show only warnings;
Errors Only - show only errors.
More details can be found here - MSBuild command-line reference (I took only part of the settings).
Count CPU - specifies the maximum number of concurrent processes to use when building. More details can be found here - MSBuild command-line reference. The default is 1. Maximum value: the number of CPUs in the system (function multiprocessing.cpu_count()).
Open Build Directory - open the folder with the application after a successful build. If the Compile and Run option is selected, then the executable file will be copied to the windows-hl folder (where the resources are located) and this folder will open. Otherwise, the folder where the given Visual Studio file is going will open.
The user will also receive a message if the studio version selected for export and for opening in the studio or compilation is not on the PC. And a list of installed ones will be issued. Example:

Visual Studio 2017 (version 15) not found.
The following are installed on the PC:
- Visual Studio Community 2019 (version 16.8.30711.63)
To obtain information about the installed versions of Visual Studio, use the vswhere.exe utility (open source) included in Kha (located in the …\ArmorySDK\Kha\Kinc\Tools\kincmake\Data\windows).
2020-11-24 20:41:50 +03:00
Lubos Lenco a79c430882
Merge pull request #2021 from MoritzBrueckner/fix-exporter-opt
exporter_opt: fix `NameError: name 'log' is not defined`
2020-11-24 09:52:38 +01:00
Lubos Lenco 979844fc6e
Merge pull request #2013 from knowledgenude/master
More renames and cleanups
2020-11-24 09:52:09 +01:00
Moritz Brückner f492b9d756 exporter_opt: fix NameError: name 'log' is not defined 2020-11-23 18:21:33 +01:00
Lubos Lenco 48952e04a8
Merge pull request #2017 from MoritzBrueckner/nodes-context-menu
Add node context menu entry for material parameters
2020-11-22 08:27:15 +01:00
knowledgenude b699dfb0d6
Update LN_string.py 2020-11-21 14:37:51 -03:00
Lubos Lenco 29297513cf
Merge pull request #2018 from MoritzBrueckner/driver-api
Add per-material UI support for driver API
2020-11-21 16:54:26 +01:00
Lubos Lenco bfb999550e
Merge pull request #2019 from MoritzBrueckner/fix-node-docs
Fix some node docstrings
2020-11-19 16:14:16 +01:00
E1e5en 9ab9d5c5db LN Math Expression
First version:
- Dynamically checking the correctness of an expression in the IDE (Blender).
- The task is divided into 2 parts: checking the correctness through python in the Blender interface and when performing calculations when the application is running in haxe.
The following decisions are taken as a basis:

python - http://repl.it/3xv/1
haxe - https://github.com/maitag/formula (added all the necessary classes to the node code)
2020-11-19 11:41:24 +03:00
knowledgenude 17b4cb2028 update 2020-11-18 13:50:24 -03:00
Moritz Brückner 76907e1c5e Fix some node docstrings 2020-11-18 10:39:12 +01:00
Moritz Brückner f57d2168e3 Small API improvement 2020-11-18 08:41:28 +01:00
E1e5en 99a4c400b8 Fix Android and HTML5 Settings
- Fixed a bug with updating the list of emulators if they are not there.
- Fixed a bug with enabling/disabling options when changing links to Android SDK.
- Fixed display of settings in the form of open panels. When collapsing panels appear incorrect display.
2020-11-18 08:24:04 +03:00
knowledgenude ba7a897142 update-triggers 2020-11-17 17:55:53 -03:00
knowledgenude 7e674e06d2
Update LN_remove_object_parent.py 2020-11-17 17:50:04 -03:00