Commit graph

2593 commits

Author SHA1 Message Date
QuantumCoderQC 5b6875947c New logic node to spawn objects not in current active scene 2021-05-02 01:33:38 +02:00
QuantumCoderQC badc8853b4 Make description more accurate 2021-05-02 01:31:44 +02:00
QuantumCoderQC 1ebe528417 Remove scene port from logic node 2021-05-02 01:30:34 +02:00
QuantumCoderQC c185882db8 Revert commit that creates an object if not in scene.
Returns object only if present in active scene
2021-05-01 22:19:29 +02:00
Lubos Lenco 0085f6fbd7 Bump version 2021-05-01 11:30:23 +02:00
Moritz Brückner 22a557162f Update Blender version information to 2.93 LTS 2021-05-01 00:04:25 +02:00
Moritz Brückner 97b578d0ed Fix export of attribute node if no UV map exists 2021-04-19 22:21:23 +02:00
Moritz Brückner 8a364259db Fix creation of overlay materials 2021-04-19 21:42:09 +02:00
Moritz Brückner 78e266f77b Improve warning message for unsupported/unknown fcurve data paths 2021-04-09 20:55:17 +02:00
N8n5h 766e26a7df Expose collision filter mask as integer to the UI 2021-04-03 20:49:33 -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
Lubos Lenco c9182cc152
Merge pull request #2149 from MoritzBrueckner/2.9-NishitaSky
[Blender 2.9] Nishita sky model & (ir)radiance support for all world shaders
2021-04-03 10:07:25 +02:00
Moritz Brückner 899411dea4 Cleanup write_probes.py 2021-04-02 14:57:11 +02:00
Lubos Lenco b930b87bc9 Bump version 2021-04-02 13:34:08 +02:00
Moritz Brückner 34f08e6922 Fix irradiance brightness
See write_sky_irradiance() for reference
2021-04-02 01:59:55 +02:00
Moritz Brückner 656b018e5f Render (ir)radiance probes if no other probes are set 2021-04-02 01:59:28 +02:00
Moritz Brückner c5be90d0b0 Cleanup 2021-03-31 20:33:52 +02:00
Moritz Brückner ffcc5fcceb Make clouds work with Nishita sky model 2021-03-31 20:31:31 +02:00
N8n5h ead7dc9d32 Moved biasLWVP matrix uniform reference to a new one for sun
This was done because the original "_biasLightWorldViewProjectionMatrix"
relies on renderpath.light, which is problematic when rendering the
deferred light pass and there is a sun and other lights of different
type on the scene. Which would result on the wrong light being picked up
for the calculation of the uniform value.
2021-03-29 10:55:58 -03:00
Lubos Lenco 4a784c70a8
Merge pull request #2144 from MoritzBrueckner/fix-matnames
Replace ' and " characters in asset names
2021-03-27 09:04:25 +01:00
Lubos Lenco 44f08a16ae
Merge pull request #2141 from MoritzBrueckner/instancing-fix
Fix writing to gl_Position before instancing code
2021-03-27 09:03:08 +01:00
Moritz Brückner de8073732a Replace ' and " characters in asset names 2021-03-27 00:30:05 +01:00
Moritz Brückner 420033c86d Add API to set Nishita density parameters 2021-03-26 20:59:26 +01:00
Moritz Brückner 8d812548c4 Use 2D LUT for Nishita skies 2021-03-25 23:29:34 +01:00
Moritz Brückner 05c14238f2 shader.py: add API to set texture params 2021-03-25 23:03:08 +01:00
Moritz Brückner 24093d15df Fix writing to gl_Position before instancing code 2021-03-25 22:02:59 +01:00
Alexander Kleemann 930b2968fa
Include cycles glsl functions for vector rotation 2021-03-24 10:20:05 +01:00
Alexander Kleemann 6e0bfa272c
Remove float parsing 2021-03-24 10:13:46 +01:00
Alexander Kleemann dfe1a49f85 Implement the remaining 16 math node operations
Math node is now fully supported
2021-03-23 22:02:25 +01:00
Alexander Kleemann 0cc2ea4491 Add map range and vector rotate to node parser dictionary 2021-03-23 21:58:46 +01:00
Alexander Kleemann 5c1f8fe128 Implement vector rotate node
Should now be fully supported
2021-03-23 21:56:14 +01:00
Alexander Kleemann 07741abc55 Implement map range node
Map range node should now be fully supported
2021-03-23 21:53:24 +01:00
Alexander Kleemann 362fffa408 Reimplement blackbody node from python to GLSL
Should now work with changing values
2021-03-23 21:51:28 +01:00
Alexander Kleemann eb6d23fab3 Fix material translucency in Blender 2.9+
The extra input node in the principled is now taken into consideration
2021-03-22 20:26:01 +01:00
Lubos Lenco dc81aca823
Merge pull request #2137 from N8n5h/tangent-error
Show error in the UI for tangent calculation error instead of just crashing to blender UI
2021-03-22 08:39:12 +01:00
Lubos Lenco d88d2320ed
Merge pull request #2135 from N8n5h/physics-2
Expose the exported rigid body type to the UI to make rb less confusing
2021-03-21 13:03:34 +01:00
N8n5h 7851abc491 Clear error count after building again 2021-03-20 21:26:05 -03:00
Lubos Lenco 54fcd49c27
Merge pull request #2134 from QuantumCoderQC/patch-1
Make description of logic node more precise
2021-03-20 09:58:36 +01:00
N8n5h 57660631b5 Log errors and show them in the blender UI 2021-03-19 11:39:06 -03:00
N8n5h d4463a3611 Catch tangent n-gon error to properly show it to the user
Instead of just letting it crash whenever the users hits play.
2021-03-19 10:22:01 -03:00
N8n5h a778460d28 Expose the exported rigid body type to the UI to make rb less confusing 2021-03-18 22:52:08 -03:00
QuantumCoderQC 255921b9ee
Make description of logic node more precise
The OnVolumeTrigger node does not required a RigidBody.
2021-03-18 21:34:59 +01:00
Alexander Kleemann 5fe816d16a Add in-menu option for OpenCV installation 2021-03-18 19:25:02 +01:00
Alexander Kleemann ef8fb21536 Update lightmapper to Blender 2.9+
Finalized update to support Blender 2.9+ as well as new features, fixes and more stability
2021-03-18 18:49:30 +01:00
N8n5h ca2c3e151a Modified UI for collision filter props_collision_filter_mask
* Moved to collision filter mask panel under armory props to keep UI
more tidy.
* Moved the `arm_rb_collision_filter_mask` property out of the
props_collision_filter_mask to be with the rest of the properties.
* Changed name and description of collision filter mask to be more
consistent with the existing rigid body UI.
2021-03-17 20:28:26 -03:00
Lubos Lenco 7d78e01bb4
Merge pull request #2128 from N8n5h/light-fix-2
Fix shadows not working when there are lights present with cast_shadow=false
2021-03-16 08:28:19 +01:00
Lubos Lenco 71a5ac6f6e
Merge pull request #2126 from MoritzBrueckner/trait-props
Make `@prop` recognition more robust
2021-03-15 13:45:02 +01:00
N8n5h 7463de6140 Add cast_shadow to lightArray data
This was done to undo the hardcoded nature of "receiveShadows", which
doesn't play nice when you have multiple lights of the same type and
one or several have cast_shadow set to false.

By simply "passing" the cast_shadow parameter within the lightArray it
was possible to detect lights that don't cast shadows before actually
wasting gpu cycles to render shadows with garbage data.

Support for deferred desktop and mobile, and forward was added.
2021-03-14 23:20:57 -03:00
Moritz Brückner b7fef30b70 Further improve handling of final trait props 2021-03-14 15:50:27 +01:00
Moritz Brückner 4ad68304e5 Improve @prop warning messages 2021-03-13 21:22:42 +01:00
Moritz Brückner 7d9c6ce7c7 Make @prop recognition much more robust 2021-03-13 21:12:12 +01:00
N8n5h 404a1248a1 Make clusterNear be the same as in LightObject 2021-03-13 13:30:25 -03:00
Alexander Kleemann e5d6c47e3e Fix Blender exit error (Keymap winman hangs) 2021-03-10 20:49:51 +01:00
Alexander Kleemann 4009d9d3fe Fix for an error with NoneType materials
Solves an error where an unallocated material slot caused a bug
2021-03-10 20:48:46 +01:00
Lubos Lenco 7c56ee9304
Merge pull request #2122 from N8n5h/light-fix
Fix forward+single atlas failing to compile with just 1 light
2021-03-03 08:26:38 +01:00
N8n5h 72dde10fb0 Fix forward+single atlas failing to compile with just 1 light
This should fix an issue where the uniform for shadowMapAtlas used with the single atlas option was not added when having just 1 light.
2021-03-02 20:20:31 -03:00
N8n5h cf99e5a382 Fixed point lights breaking for Krom Windows with shadow map atlas
https://github.com/armory3d/armory/issues/2110#issuecomment-787913813
2021-03-01 18:39:32 -03:00
N8n5h 5f8b92f9c3 Applied flip workaround for point light too for html5 and atlas
The same concept for spot lights was applied for point lights;
the difference is that because point lights require to do the projection in the shader, the first inversion was applied in sampleCube() when returning the uv coordinates.
"_FlipY" was added to replace "_InvY" in "PCFFakeCube()" because the inversion is only necessary for shaders and not anything else, otherwise it would break rendering of other parts.
2021-03-01 18:39:32 -03:00
luboslenco 4dbf8a3b2a Bump version 2021-03-01 09:07:33 +01:00
tong 3e15ed9b5c Write debug param by default 2021-02-25 14:06:31 +01:00
Lubos Lenco 91a10bea5c
Merge pull request #2115 from tong/update-custom-icons
Update custom trait icons
2021-02-25 08:11:45 +01:00
Lubos Lenco 31f1b58c07
Merge pull request #2114 from Naxela/master
Blending fix + ignore irradiance per material
2021-02-23 11:14:11 +01:00
Moritz Brückner 742b9ce1e1 Nishita sky: add support for ozone density 2021-02-22 18:52:56 +01:00
tong dbee605e3f Downscale icons to 32px 2021-02-22 18:05:28 +01:00
tong d20656339b Update custom icons 2021-02-22 15:50:19 +01:00
Lubos Lenco e7ca541b51
Merge pull request #2113 from MoritzBrueckner/fix-1689
Fix drawing of bool properties in UI (#1689)
2021-02-22 09:47:51 +01:00
Lubos Lenco f99ff0576d
Merge pull request #2111 from tong/console-improvements
Console improvements
2021-02-21 10:24:41 +01:00
Moritz Brückner 92554876f1 Fix nishita sky altitude
The scale was changed in recent Blender builds
2021-02-21 01:12:15 +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
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
Moritz Brückner 702436e2a1 Add artistic option for darkening clouds at night 2021-02-13 19:01:14 +01:00
Moritz Brückner 28011bcc00 Nishita sky: add sun disk drawing 2021-02-13 18:23:37 +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
Moritz Brückner f2c16097d4 Fix lod operator polling and add some bl_options 2021-01-30 20:21:31 +01:00
Moritz Brückner 121d449c35 Blender 2.9: Cycles attribute node - support object/custom properties 2021-01-30 14:19:46 +01:00
Moritz Brückner 75bb88831c Blender 2.9: Cycles attribute node - support alpha output and new attribute_type prop 2021-01-30 14:19:46 +01:00
tong 725520081a Normalize sdk path 2021-01-26 16:38:49 +01:00
Moritz Brückner a1bbd76de7 Fix: Remove unused/non-existing armory icon 2021-01-25 16:51:28 +01:00
Moritz Brückner e3f992b1f3 Whitespace cleanup 2021-01-25 16:48:03 +01:00
Moritz Brückner 05307817ee Fix grammar in warnings report 2021-01-25 16:47:51 +01:00
Moritz Brückner d55f889a84 Another small compositor panel UI improvement 2021-01-25 16:45:30 +01:00
Moritz Brückner 1d79708b22 Fix trait type backward compatibility with pre-Blender2.9 files 2021-01-25 16:23:03 +01:00
Moritz Brückner ba62ba0285 Blender 2.9: Fix/Improve collision filter mask UI 2021-01-25 14:01:53 +01:00