Commit graph

1178 commits

Author SHA1 Message Date
Moritz Brückner cf56c4f1d8 Fix GetSystemName node 2021-04-08 15:44:18 +02:00
N8n5h 63716eea17 Modifications around addLight from Inc
* Removed redundant checks at the start of the function.
* changed the return value to void because the "return false" were
redundant, and simply made it so the lightInAtlas is set at the end of
the function.
* Removed unused variable
2021-04-07 12:44:54 -03:00
N8n5h 614385ea7b Setup callbacks so tiles are notified when a light is removed
A secondary callback is setup so the tile it's also removed from the
activeTiles, because it's freed in a "non standard" way.
2021-04-07 12:44:54 -03:00
Moritz Brückner f64419dd06 Merge branch 'master' into blender2.9
# Conflicts:
#	blender/arm/material/shader.py
#	blender/arm/props_collision_filter_mask.py
#	blender/arm/props_ui.py
2021-04-03 14:12:54 +02:00
Moritz Brückner c5be90d0b0 Cleanup 2021-03-31 20:33:52 +02:00
Moritz Brückner 420033c86d Add API to set Nishita density parameters 2021-03-26 20:59:26 +01:00
Moritz Brückner 845d2aff93 Use switch/case for uniform links 2021-03-26 15:39:18 +01:00
Moritz Brückner 8d812548c4 Use 2D LUT for Nishita skies 2021-03-25 23:29:34 +01:00
knowledgenude 1ad1d564bd
Fix clamp node 2021-03-16 18:27:42 -03:00
N8n5h c7211542b4 Make pointLightData work with lights with cast_shadow=false 2021-03-14 23:21:02 -03:00
Moritz Brückner 5f55b00710 Begin with Nishita LUT implementation for better performance 2021-03-11 23:16:44 +01:00
Alexander Kleemann aec10274f4 Add option to ignore irradiance for baked environments 2021-02-20 15:30:18 +01:00
Alexander Kleemann f1858550d0 Blending fix
Fix for https://github.com/armory3d/armory/issues/1615
2021-02-20 13:51:25 +01:00
SunDaw c5855ad96f Add mask option to pick RB node and physicsworld 2021-02-19 19:42:18 +01:00
Lubos Lenco 84663bc981
Merge pull request #2106 from SunDaw/optimize-sendevent-nodes
Remove array allocation from SendEventNode
2021-02-16 15:48:57 +01:00
knowledgenude 0ee35adc81 Improved FSM 2021-02-14 19:21:26 -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
SunDaw 6cbe539098 Reuse contacts array instead of creating new
Remove unused import from PhysicsWorld
2021-02-13 17:23:16 +01:00
SunDaw a2e4850b12 Remove array allocation from SendEventNode
Remove entires member variable from SendEvent nodes
2021-02-13 16:56:21 +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
Kevin Leung 4ee1131f6e
[PickLocation] Actually return null when input invalid 2021-01-29 20:54:34 +08:00
knowledgenude 6ef1195816 Update inputmap and add FSM 2021-01-25 20:19:24 -03:00
knowledgenude 081fcb2870 update-inputmap 2021-01-11 18:14:21 -03:00
QuantumCoderQC 80ea09671c Fix Exporter and conversions for Physics World in Blender 2.9.X 2021-01-06 20:26:43 +01:00
knowledgenude ae057508ca
Fix mouse wheel key verification 2021-01-04 12:09:30 -03:00
knowledgenude 24f62623ad add-inputmapper 2021-01-04 11:28:59 -03: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 2dcd1a951b
Merge pull request #2066 from knowledgenude/master
Fix inverted margin for Kinematic Character
2020-12-26 10:22:31 +01:00
QuantumCoderQC a0422d49f2 Improve physics constraint handling 2020-12-23 16:03:45 +01:00
knowledgenude f836e597d1 fix-inverted-margin 2020-12-22 20:49:03 -03:00
Lubos Lenco 6ee5af2518
Merge pull request #2062 from QuantumCoderQC/conFix
Fix adding physics constraint at game start
2020-12-19 11:20:39 +01:00
QuantumCoderQC 2f911c756e Remove physics constraint helper trait 2020-12-17 15:05:46 +01:00
QuantumCoderQC bf22d7add6 Fix physics constraints at start-up 2020-12-17 15:01:21 +01:00
knowledgenude 8c1baa2e9a add-world-vector-to-local-space-node 2020-12-16 17:24:43 -03: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 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
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 bcfbdae925
Merge pull request #2045 from knowledgenude/master
Fix volume trigger
2020-12-06 09:16:12 +01:00
QuantumCoderQC 71763f9e47 Custom constraint node implemetation 2020-12-05 01:12:59 +01:00
QuantumCoderQC 8a1b59ef8b Haxe implementation of AddPhysicsTrait. 2020-12-05 01:12:59 +01:00
QuantumCoderQC 300f5e37ea Add documentation. Cleanup. 2020-12-05 01:12:59 +01:00
QuantumCoderQC aab7a027c6 Add support functions to set limits. Add documentation. 2020-12-05 01:12:59 +01:00
QuantumCoderQC d87be744b2 Change SetDecativationParams in node to setUpDeactivation to prevent runtime errors. 2020-12-05 01:12:59 +01:00
QuantumCoderQC ca9be33152 Added addPhysicsConstraint and removePhysicsConstraint methods. Added internal Map to keep track of PhysicsConstraints 2020-12-05 01:12:59 +01:00
QuantumCoderQC 951f8298b8 Modify to use iron.object.Object instead of String for objects to be linked by PhysicsConstraint 2020-12-05 01:12:59 +01:00
QuantumCoderQC 49e06b4b63 New helper class to add physics constraints via Blender Armory exporter 2020-12-05 01:12:59 +01:00
knowledgenude d726e8fc83 fix-volume-trigger 2020-12-04 07:20:42 -03:00
E1e5en 1867975099 Fix OnSwipe
Correction of determining the direction of UP-LEFT.
Wrong 9 degrees =)
2020-12-01 21:18:12 +03:00
Lubos Lenco 468da22b5b
Merge pull request #2029 from knowledgenude/master
Added functions to disable/enable collision
2020-11-30 10:41:42 +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
knowledgenude 8a30a94523
Added functions to disable/enable collision 2020-11-29 10:15:47 -03:00
QuantumCoderQC d71284560e Implemented a new node to add rigid bodies to objects at run-time 2020-11-29 01:16:59 +01:00
QuantumCoderQC 1aa60e9315 Add params and flags description. Modify force deactivation to use deactivation in rigid bodies 2020-11-29 01:08:28 +01:00
Moritz Brückner 068a539f60 Forward renderpath: add support for chromatic aberration 2020-11-28 23:09:07 +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
knowledgenude ce629455ad
Update VectorFromBooleanNode.hx 2020-11-19 13:57:39 -03:00
knowledgenude cc481ea15c fix-nodes 2020-11-19 10:38:46 -03: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 97bbf0b9d2
fix-missing-return-dynamic 2020-11-18 14:07:23 -03:00
knowledgenude 17b4cb2028 update 2020-11-18 13:50:24 -03:00
knowledgenude ba7a897142 update-triggers 2020-11-17 17:55:53 -03:00
knowledgenude e46a86d4f5
Update GetCursorStateNode.hx 2020-11-17 17:47:17 -03:00
knowledgenude 46492cc425 fixes 2020-11-17 17:35:22 -03:00
knowledgenude a7863075e2 cleanups-and-renames 2020-11-17 12:01:15 -03:00
knowledgenude 7f82b2ae33 map-range-node 2020-11-14 14:39:32 -03:00
E1e5en 91a2a3e00f LN Vector Math Fix
Fixed error:
On static platforms, null can't be used as basic type Float
2020-11-12 06:56:35 +03:00
Lubos Lenco 25be45bc9e
Merge pull request #1998 from E1e5en/add-quat-math
Quat Math
2020-11-11 15:33:19 +01:00
knowledgenude fde59db1e5 value-changed-node 2020-11-08 17:37:50 -03:00
E1e5en 6b804477b1 Quat Math
1. Move the Quaternion node from Transform to Variable
2. Move the Separate Quaternion node from Transform to Math
3. Added Quaternion Math Node
Linked to PR - https://github.com/armory3d/iron/pull/108
2020-11-08 22:40:01 +03:00
Lubos Lenco 4adb01dc5f
Merge pull request #1994 from E1e5en/ln-vector-math-upgrading
Upgrading the Vector Math Node
2020-11-08 14:12:26 +01:00
E1e5en 7dae9e38d0 Upgrading the Vector Math Node
Dynamically change the number of input and output parameters for the selected operation
2020-11-07 11:14:46 +03:00
knowledgenude 5052d5119b update 2020-11-06 17:31:26 -03:00
knowledgenude 72186140a9 new-nodes 2020-11-06 17:20:28 -03:00
Lubos Lenco d9480bc5b2
Merge pull request #1987 from E1e5en/ln-math-upgrading
Upgrading the Math Node
2020-11-05 10:57:22 +01:00
E1e5en 1352811bcd Upgrading the Math Node
- Dynamically change the number of arguments for the selected operation;
- Exp() operation added.
2020-11-03 09:12:41 +03:00
knowledgenude 4d87a0d3ad fix 2020-11-02 12:55:11 -03:00
knowledgenude 7fcd3dc81d update-local-axis-nodes 2020-11-02 11:51:34 -03:00
knowledgenude fe3e627e5d
Update TransformExtension.hx 2020-11-01 19:23:55 -03:00
knowledgenude f7ec11d5c5 add-worldVecToOrientation-method 2020-11-01 18:17:56 -03:00
Lubos Lenco 4236190f5d
Merge pull request #1976 from E1e5en/detect-mobile-browser
LN Detect Mobile Browser
2020-10-31 17:01:36 +01:00
Henrique fa0e5ae0a4 fix 2020-10-30 15:32:12 -03:00
Henrique 58a0d996aa renames 2020-10-30 15:28:38 -03:00
E1e5en 145686dbf4 LN Detect Mobile Browser
Detect Mobile Browser
2020-10-30 21:22:52 +03:00
Henrique 97d284c946 replace-none-node 2020-10-30 13:22:09 -03:00
Moritz Brückner 6f1f97f9e9 Debug console: add "Set Active Camera" button for camera objects 2020-10-29 20:00:59 +01:00
Moritz Brückner 1d3c9cf23b Whitespace cleanup 2020-10-29 20:00:35 +01:00
Henrique bb1fab992d add-bounce-elastic-to-mix-nodes 2020-10-28 11:16:14 -03:00
E1e5en fb00b4533c
Update GetFPSNode.hx
Checkstyle
2020-10-27 18:23:10 +03:00
E1e5en 658d2546d8 Add LN Get Frames Per Second
This is sometimes more convenient than enable the entire debug console.
2020-10-27 15:56:34 +03:00
Henrique 413951cb62 cleanups 2020-10-26 11:20:50 -03:00
Henrique e7db53cca6 fix-node 2020-10-26 11:00:38 -03:00
Lubos Lenco b81486ac7a
Merge pull request #1954 from E1e5en/get-traits-name
LN for Traits
2020-10-26 09:19:54 +01:00
Henrique ded3a7353d rename-node 2020-10-24 17:20:22 -03:00
E1e5en ef4dbd7611 LN for Traits
1. Modification of CanvasScript and WasmScript classes: added a field to save the name of the script / file in the class.
2. Added logical nodes for working with Traits.
- Get Object Traits - gets an array of Traits for the specified object;
- Get Trait Name - get the Trait name (the name that appears in the list in Armory Traits) and its type (Canvas, Wasm, Bundle, LogicNode or Haxe).
2020-10-24 22:04:47 +03:00
Henrique b942672990 new-vector-to-object-space-node 2020-10-24 14:39:20 -03:00
Henrique 538e66e680 new-vector-from-boolean-node 2020-10-22 15:42:22 -03:00