Commit graph

329 commits

Author SHA1 Message Date
QuantumCoderQC 603d23fbfd Add shape key export option 2021-11-02 15:58:38 +01:00
Moritz Brückner 7f5d382131 Allow to set default renderpath for debugging 2021-10-03 22:40:29 +02:00
Moritz Brückner 152959699a Debug console: optionally omit PosInfos when printing 2021-09-27 15:43:03 +02:00
tong d1d266a0f0 Improve log messages 2021-09-23 11:30:46 +02:00
onelsonic abc52627a3
Update props_ui.py
change the UI to reflect common order to setup Android SDK values
https://developer.android.com/guide/topics/manifest/uses-sdk-element.html
android:minSdkVersion="integer"
then
android:targetSdkVersion="integer"
then
android:maxSdkVersion="integer"
2021-09-06 15:33:16 +02:00
Moritz Brückner ecddc0af92 Add assert() macro 2021-08-27 01:26:00 +02:00
tong 7b6d3536e3 Shift click play just run 2021-08-17 17:47:04 +02:00
Moritz Brückner c56a0c3a72 Fix accidental module reloading caused by name conflicts of global vars 2021-08-11 14:32:21 +02:00
Moritz Brückner ea8c13686c Implement basic addon reloading 2021-08-04 22:56:11 +02:00
QuantumCoderQC 9f7af6a1cd Change terrain material bump output to normal 2021-07-26 18:02:23 +02:00
Lubos Lenco 8c0b6ba13e
Merge pull request #2240 from QuantumCoderQC/RelativePhysConstraint
Add option for relative physics constraint
2021-06-28 11:44:39 +02:00
QuantumCoderQC f2cf3bdeda Add new property to set if constraint is relative 2021-06-24 23:12:15 +02:00
Moritz Brückner 66856e7ecc Build/publish: add poll() function to prevent exception when executing from outside of UI
If there was no exporter, calling `bpy.ops.arm.publish_project()` would result in an exception before. Now the call is simply ignored and a "poll failed" message is emitted instead.
2021-06-23 20:19:08 +02:00
N8n5h 1945439cd1 Small improvements for the Shadow Map Atlas Blender UI
* Made shadow map atlas sizes enum's values dynamic:
This allows reducing issues related to picking a "wrong" size for the atlases.
* Added a legend below shadow map sizes to have an idea of how much lights can an option fit.
* Separated listing of subdivisions to include point lights.
* Disable cubemap size if single map is enabled to show that cascade size option is only used.
2021-05-14 11:22:11 -03:00
Moritz Brückner 2c761b2ff6 Slightly improve debug console panel UI 2021-05-06 21:29:59 +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 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
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
N8n5h 57660631b5 Log errors and show them in the blender UI 2021-03-19 11:39:06 -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
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
Alexander Kleemann aec10274f4 Add option to ignore irradiance for baked environments 2021-02-20 15:30:18 +01: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 52e4aaa21c Add button to create a new custom material 2021-02-12 20:12:55 +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 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 d7e70c4c0a Blender 2.9: Improve project flags panel UI 2021-01-25 13:58:47 +01:00
Moritz Brückner 6ae76bfdf6 Blender 2.9: Improve exporter panel UI 2021-01-25 13:53:28 +01:00
Moritz Brückner 6b6dc6264f Blender 2.9: Improve exporter settings UI 2021-01-24 20:42:18 +01:00
Moritz Brückner 562d39c203 Blender 2.9: Improve Armory player panel UI 2021-01-17 20:24:43 +01:00
Moritz Brückner ee1b55184c Move icon code into module
This, combined with lazy loading, has the advantage of using icons in property definitions before the actual registration code runs
2021-01-15 19:26:31 +01:00
Moritz Brückner b4f0df6367 Blender 2.9: Redesign renderpath compositor panel UI 2021-01-14 21:21:01 +01:00
Moritz Brückner 133777f7e5 Blender 2.9: Improve renderpath postprocess panel UI 2021-01-14 21:18:46 +01:00
Moritz Brückner 406d48eb7c Blender 2.9: Improve renderpath world panel UI 2021-01-14 21:13:02 +01:00
Moritz Brückner 4c0f0f4161 Blender 2.9: slightly improve renderpath "Renderer" panel UI 2021-01-14 21:06:37 +01:00
Moritz Brückner a98559ea7f Blender 2.9: Improve material blending panel UI 2021-01-14 20:57:44 +01:00
Moritz Brückner 1b9f010c57 Blender 2.9: Improve project window panel UI 2021-01-14 20:56:04 +01:00
Moritz Brückner c5e9522442 Blender 2.9: Update operator options 2021-01-06 17:23:21 +01:00
Moritz Brückner 257f295b27 Update "Armory Lod" object panel to Blender 2.9 layouts 2020-12-30 17:54:44 +01:00
Moritz Brückner a647263d1a Update "Armory Proxy" object panel to Blender 2.9 layouts 2020-12-30 17:53:35 +01:00
Moritz Brückner 6a6d383970 Update "Armory Props" object panel to Blender 2.9 layouts 2020-12-30 17:52:27 +01:00
Moritz Brückner 372419c9ff arm.open_node_documentation: add icon and fix docstring 2020-12-22 17:25:26 +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 01874e2287 Replacement error dialog: add button to open report folder 2020-12-04 22:57:47 +01:00
Moritz Brückner 0bddfea5e3 Move node replacement system into its own module 2020-12-04 22:29:31 +01:00