Commit graph

315 commits

Author SHA1 Message Date
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
Moritz Brückner e53d9446e7 Cleanup 2020-12-04 21:17:50 +01: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
Lubos Lenco 67e2b0171b
Merge pull request #2030 from Naxela/master
Update lightmapper to version 0.4
2020-11-30 11:18:26 +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
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 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
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
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
Moritz Brückner a1b121a2a7 Add per-material custom UI for drivers 2020-11-17 18:54:53 +01:00
Moritz Brückner e747190746 Whitespace cleanup 2020-11-16 19:55:15 +01:00
Moritz Brückner 07acf00b0c Add node context menu entry for material parameters 2020-11-16 19:54:52 +01:00
E1e5en 4b3aea0513
Merge branch 'master' into html5-settings 2020-11-14 15:12:20 +03:00