JFonS
fcb00ca048
Disable lights for objects with baked lighting
...
Don't apply lighting to objects when they have a lightmap texture and
the light is set to BAKE_ALL. This prevents applying the same direct
light twice on the same object and makes setting up scenes with mixed
lighting much easier.
2020-10-11 20:41:40 +02:00
PouleyKetchoupp
f9544716f4
Option for software skinning in MeshInstance
...
Option in MeshInstance to enable software skinning, in order to test
against the current USE_SKELETON_SOFTWARE path which causes problems
with bad performance.
Co-authored-by: lawnjelly <lawnjelly@gmail.com>
2020-10-08 16:14:55 +02:00
Rémi Verschelde
0845fbb51b
Merge pull request #32475 from lawnjelly/hideshadow
...
Showing and hiding geometry updates shadows (3.2)
2020-10-02 11:39:47 +02:00
Rémi Verschelde
66cbcc1b7e
Merge pull request #41123 from lawnjelly/octree_fix
...
Optimize octree and fix leak
2020-09-30 23:11:31 +02:00
John Pennycook
f8cc7893d0
Make YSort stable
...
Keeps track of the order in which items are collected by
_collect_ysort_children, and uses that order to break
ties between items with similar Y positions.
(cherry picked from commit 8d3afa985b
)
2020-09-29 13:57:57 +02:00
Rémi Verschelde
c8859f0463
Fix typos with codespell
...
Using codespell 1.17.1.
Method:
```
$ cat > ../godot-word-whitelist.txt << EOF
ang
curvelinear
dof
doubleclick
fave
findn
leapyear
lod
merchantibility
nd
numer
ois
ony
que
seeked
synching
te
uint
unselect
webp
EOF
$ codespell -w -q 3 -I ../godot-word-whitelist.txt --skip="./thirdparty,*.po"
$ git diff // undo unwanted changes
```
2020-09-18 14:09:51 +02:00
Fredia Huya-Kouadio
0af5cded1e
Fix the update logic for user-added custom defines.
...
The previous logic was causing the (unintentional) removal of custom defines automatically added by the engine.
2020-09-06 21:31:09 -07:00
lawnjelly
667c970b77
Optimize octree and fix octree leak
...
Prevents adding new octants until a limiting number of elements have been added to the current octant. This enables balancing the benefits of brute force against the benefits of spatial partitioning. The limit can be set per octree.
Project settings are added for rendering octree to set the best balance per project depending on number of tests per frame / tick, and the amount of editing of the octree.
Fixes octants being leaked when removing elements.
Optimize octree with cached linear lists
Storing elements in octants using linked lists is efficient for housekeeping but very slow for testing. This optimization stores additional local_vectors with Element pointers and AABBs which are cached and only updated when a dirty flag is set on the octant.
This is selectable with 2 versions of Octree : Octree and Octree_CL, Octree being the old behaviour. At present the cached list version is only used for the visual server octree (rendering) as it has only been demonstrated to be faster there so far.
This uses slightly more memory (probably a few kb in most cases) but can be significantly faster during testing (culling etc).
Co-authored-by: Sergey Minakov <naithar@icloud.com>
2020-08-18 11:02:21 +01:00
clayjohn
8571f7b041
Check arrays before generating Polygon2D AABBs
2020-08-16 21:08:52 -07:00
Rémi Verschelde
f4d6830949
Merge pull request #40869 from clayjohn/3.2-polygon-aabb
...
Properly calculate polygon2D AABB with skeleton
2020-07-31 12:55:47 +02:00
clayjohn
32928c2112
Properly calculate polygon2D AABB with skeleton
2020-07-30 16:40:05 -07:00
Yuri Roubinsky
ecd54630ef
[3.2] Fix some incorrect conversions which lead to crash in shaders
2020-07-15 06:36:24 +03:00
Yuri Roubinsky
891b84a833
[3.2] Prevents usage of return in main shader functions
2020-06-27 17:38:22 +03:00
Yuri Roubinsky
474b178534
[3.2] Fix shader crash if pass const argument to 'out/inout' parameter
2020-06-25 10:27:37 +03:00
Rémi Verschelde
7bf9787921
SCons: Format buildsystem files with psf/black
...
Configured for a max line length of 120 characters.
psf/black is very opinionated and purposely doesn't leave much room for
configuration. The output is mostly OK so that should be fine for us,
but some things worth noting:
- Manually wrapped strings will be reflowed, so by using a line length
of 120 for the sake of preserving readability for our long command
calls, it also means that some manually wrapped strings are back on
the same line and should be manually merged again.
- Code generators using string concatenation extensively look awful,
since black puts each operand on a single line. We need to refactor
these generators to use more pythonic string formatting, for which
many options are available (`%`, `format` or f-strings).
- CI checks and a pre-commit hook will be added to ensure that future
buildsystem changes are well-formatted.
(cherry picked from commit cd4e46ee65
)
2020-06-10 15:30:52 +02:00
Rémi Verschelde
c9a8309e73
Merge pull request #39169 from lawnjelly/light2d_layer_fix
...
3.2 Make Light2D respect CanvasLayer layer_min and layer_max
2020-06-10 13:35:37 +02:00
lawnjelly
1b5c4bc5b7
Make Light2D respect CanvasLayer layer_min and layer_max
...
As the masked light list takes no account of layer_min and layer_max, the canvas_layed_id is passed to the _light_mask_canvas_items function where it can be used to reject lights outside the layer range.
2020-06-08 05:41:18 +01:00
Pedro J. Estébanez
1ff7b0a0a9
Add shader time scaling
...
Shaders' `TIME` will be affected by the new shader time scale, that is set via the also new `VisualServer::set_time_scale()`.
2020-06-06 23:59:48 +02:00
lawnjelly
bf54fa5a62
Light2D shadow mask construction fix
...
When using the default setting (layer 1 set only) nothing is stored in the tscn file for a Light2D, hence it relies on the value in the constructor.
The problem is the constructed value is 1 in Light2D, and -1 in RasterizerCanvas::Light. -1 results in all bits being set so all occluders are shown, rather than just those in layer 1.
This PR changes Rasterizer::Canvas constructor to set to 1. An alternative is to have -1 as the value for layer 1 throughout.
2020-05-30 09:29:38 +01:00
Pedro J. Estébanez
d8be5a9986
Add MODULATE builtin to canvas item shaders
2020-05-04 00:10:24 +02:00
Rémi Verschelde
8d93303483
Merge pull request #37863 from ExpiredPopsicle/culling5
...
Fixed false positives in the culling system.
2020-04-30 08:05:11 +02:00
Rémi Verschelde
f2150d1766
Merge pull request #37462 from Chaosus/shader_fix_const_order
...
[3.2] Fix shader constant sorting
2020-04-29 09:41:49 +02:00
Kiri Jolly
2c6e859c2d
Fixed unbounded dual-paraboloid shadow map culling.
...
Dual paraboloid shadowmaps were ending up with infinitely large volumes of area behind the hemisphere un-culled.
This change just adds a back plane to the convex shape used for the culling volume.
2020-04-28 17:13:36 -07:00
lawnjelly
b6d652367b
Items and draw calls added to IDE Monitor in '2d' section
...
This adds 2 new values (items and draw calls) to the performance monitor in a '2d' section, rather than reusing the 3d values in the 'raster' section.
This makes it far easier to optimize games to minimize drawcalls.
2020-04-16 11:52:22 +01:00
lawnjelly
93af8e7d1b
Batching across z_indices
...
Extra functions canvas_render_items_begin and canvas_render_items_end are added to RasterizerCanvas, with noop stubs for non-GLES2 renderers. This enables batching to be spready over multiple z_indices, and multiple calls to canvas_render_items.
It does this by only performing item joining within canvas_render_items, and deferring rendering until canvas_render_items_end().
2020-04-12 13:52:25 +01:00
Yuri Roubinsky
ee93c85ef1
Fix shader constant sorting
2020-03-31 14:32:33 +03:00
Rémi Verschelde
acd14e645a
Remove unused classes and stray headers
...
Found by reviewing headers with 1 or less matching includes:
```
find -name thirdparty -prune -o -name "*.h" -exec basename {} \; | sort -u > headers
for header in $(cat headers); do echo "$header: "; rg -l "#include \"(.*/)?$header\"" | wc -l; done > list-includes
```
(cherry picked from commit 9d24541597
)
2020-03-25 11:38:54 +01:00
Yuri Roubinsky
4dd1eee769
Enables passing out built-in parameter from parent function in shaders
...
(cherry picked from commit 7a2c6a8c0e
)
2020-03-25 11:38:53 +01:00
Rémi Verschelde
cc70b2fa0a
Merge pull request #36342 from m4gr3d/external_texture_support_for_godot_3_2
...
Add support for opengl external textures
2020-03-17 16:29:14 +01:00
Michael Alexsander
bd2a2a7e40
Turn Rect2's 'intersects_touch()' into an extra argument of 'intersects()'
...
(cherry picked from commit 8c8c48a7ad
)
2020-03-06 23:51:26 +01:00
fhuya
30d738eda7
Add support for opengl external textures as defined by https://www.khronos.org/registry/OpenGL/extensions/OES/OES_EGL_image_external.txt
2020-03-05 13:09:49 -08:00
Yuri Roubinsky
3b2490f19c
Prevent shader crash if invalid builtin used after array member accessor
...
(cherry picked from commit 3a70566b15
)
2020-02-14 16:02:21 +01:00
nathanwfranke
2d8289579a
Fix bug where Control at origin with 0 size not rendered
...
Make a new method instead to make the code more elegant
Move Function down a bit
(cherry picked from commit e5cb557b73
)
2020-02-14 15:56:12 +01:00
Yuri Roubinsky
0995696e08
Prevent shader crash when name conflict with "dus" and "__" occured
...
(cherry picked from commit 2c4367441c
)
2020-02-06 13:02:07 +01:00
Yuri Roubinsky
3473a195fc
Hides high-level functions from GLES2 shader autocompletion
2020-01-23 12:41:21 +03:00
Rémi Verschelde
46820527de
Merge pull request #35360 from Chaosus/restrict_uint_gles2
...
Disallow uint/uvec usage on GLES2 platform
2020-01-23 10:12:30 +01:00
Rémi Verschelde
37897dba80
Merge pull request #35406 from lawnjelly/ortho-shadow
...
Replace CameraMatrix::get_viewport_size with get_viewport_half_extents, shadow culling with ortho camera and other affected issues
2020-01-22 22:02:09 +01:00
lawnjelly
eaf8e5ce52
Change CameraMatrix::get_viewport_size to get_viewport_half_extents
...
Fixes #26637 .
Fixes #19900 .
The viewport_size returned by get_viewport_size was previously incorrect, being half the correct value. The function is renamed to get_viewport_half_extents, and now returns a Vector2.
Code which called this function has also been modified accordingly.
This PR also fixes shadow culling when using ortho cameras, because the correct input for CameraMatrix::set_orthogonal should be the full HEIGHT from get_viewport_half_extents, and not half the width.
It also fixes state.ubo_data.viewport_size in rasterizer_scene_gles3.cpp to be the width and the height of the viewport in pixels as stated in the documentation, rather than the current value which is half the viewport extents in worldspace, presumed to be a bug.
2020-01-22 18:22:00 +00:00
Rémi Verschelde
4faaf6089a
Remove unused #if 0'ed code
2020-01-21 21:41:54 +01:00
Yuri Roubinsky
4c456ef979
Disallow uint/uvec usage on GLES2 platform
2020-01-20 18:59:35 +03:00
Yuri Roubinsky
3dea1c725e
Clears completion_class in shaders (may cause troubles if not).
2020-01-19 16:35:54 +03:00
Yuri Roubinsky
1eb8d5e142
Added missing form of array constructor in shaders
2020-01-18 11:41:55 +03:00
Yuri Roubinsky
5098232ee6
Disabled array initialization, const array and arr.length in shaders
2020-01-16 11:46:11 +03:00
clayjohn
3579187f90
Make texture_debug_usage thread safe
2020-01-12 15:22:54 -08:00
Yuri Roubinsky
1e154e0947
Fix nested break/return in shader switch statement
2020-01-10 11:57:56 +03:00
Rémi Verschelde
5edd1a27d2
Merge pull request #34671 from Chaosus/shader_hex_support
...
Support for hex numbers in shaders
2020-01-08 10:01:49 +01:00
Hugo Locurcio
0cad2c0cd1
Add VisualServer methods to get the video adapter name and vendor
...
These methods can be used in scripts to retrieve the OpenGL
`GL_RENDERER` and `GL_VENDOR` strings (respectively).
This closes #28404 .
2020-01-06 00:37:56 +01:00
Rémi Verschelde
fa82664419
Merge pull request #34726 from nekomatata/polygon2d-antialiasing-fix
...
Fixed antialiasing option for Polygon2D with concave/hollow shapes
2020-01-03 14:17:05 +01:00
PouleyKetchoupp
1591677eb8
Fixed antialiasing option for Polygon2D
...
Some cases were not handled properly for Polygon2D after making changes in common code to fix Line2D antialiasing. Added an option for drawing polygons to differentiate the two use cases.
Fixes #34568
2020-01-01 11:40:14 +01:00
Rémi Verschelde
a7f49ac9a1
Update copyright statements to 2020
...
Happy new year to the wonderful Godot community!
We're starting a new decade with a well-established, non-profit, free
and open source game engine, and tons of further improvements in the
pipeline from hundreds of contributors.
Godot will keep getting better, and we're looking forward to all the
games that the community will keep developing and releasing with it.
2020-01-01 11:16:22 +01:00
Yuri Roubinsky
99b92c885f
Support for hex numbers in shaders
2019-12-29 12:19:10 +03:00
Rémi Verschelde
2845e6a21a
Merge pull request #34040 from qarmin/unused_variable_more_precise_numbers
...
Removed unused variables, add some constants numbers
2019-12-10 08:25:31 +01:00
Rafał Mikrut
ed1c4bc77d
Removed unused variables, add some constants numbers
2019-12-10 05:13:02 +01:00
Rémi Verschelde
e77c34ab4a
Merge pull request #34061 from Chaosus/fix_shader_const
...
Fix expressions for global constants in shaders
2019-12-03 08:53:55 +01:00
Rémi Verschelde
10bae7c05b
Merge pull request #33857 from nekomatata/polygon-2d-antialiasing
...
Fixed antialiased option for Polygon2D
2019-12-03 07:51:16 +01:00
Yuri Roubinsky
8b8faf03d5
Fix expressions for global constants in shaders
2019-12-02 19:00:21 +03:00
PouleyKetchoupp
e6ebc43d72
Fixed antialiased option for Polygon2D / Line2D
...
Polygon2D:
The property wasn't used anymore after switching from canvas_item_add_polygon() to canvas_item_add_triangle_array() for drawing.
Line2D:
Added the same property as for Polygon2D & fixed smooth line drawing to use indices correctly.
Fixes #26823
2019-11-28 22:57:27 +01:00
Bojidar Marinov
2952dc3fe2
Fix crash when disabling a YSort node
...
Fixes #33932
2019-11-27 10:47:11 +02:00
Marcel Admiraal
6c3be2ca74
Fix Visual Studio throwing C4146 warning.
2019-11-18 15:14:04 +00:00
PouleyKetchoupp
530665197f
Fixed Particles restart after visibility has been set to off and on again
...
Make sure particles are processed during the same frame when visibility is set to on, in case they are still active from before and need to be restarted.
Fixed #33476
2019-11-09 09:51:17 +01:00
Rémi Verschelde
341f37aaed
Merge pull request #33153 from raphael10241024/fix_occluder
...
fix occluders positions error under canvas_layer
2019-11-05 14:41:28 +01:00
Yuri Roubinsky
5e44b5be81
Prevents usage of unsupported texture shader types in GLES2
2019-11-03 13:41:15 +03:00
Yuri Roubinsky
6b7f8558d9
Removed switch operator from GLES2 shader back-end
2019-11-02 12:43:32 +03:00
Yuri Roubinsky
1b003f3d64
Prevents shader crash on GLES2 if unsupported built-in has been used
2019-10-31 09:21:44 +03:00
Yuri Roubinsky
76eb486413
Added check if field name in the shader is equal to builtin
2019-10-29 15:37:19 +03:00
RaphaelHunter
c4cea10402
fix occluders positions error under canvas_layer, close #32880
2019-10-29 14:51:58 +08:00
Yuri Roubinsky
ef6161532d
Fix shader crash if non-boolean expression inserted into "if"
2019-10-28 08:35:33 +03:00
Hugo Locurcio
701581d1d3
Improve error messages related to shader_type
...
The list of allowed shader types is now displayed if any
`shader_type`-related error is emitted.
This makes it easier to remember which shader types are allowed
when creating a new shader.
2019-10-26 17:43:14 +02:00
clayjohn
62fb462165
Properly free sky and lightmap caches in multithreaded server
2019-10-13 09:31:00 -07:00
Yuri Roubinsky
ada4bcbe30
Fix invalid autocompletion pasting of shader param name
2019-10-08 18:33:22 +03:00
Rémi Verschelde
45577e4233
Merge pull request #32571 from DavidSichma/rect_flip
...
Correctly flip texture src region
2019-10-08 16:15:45 +02:00
Yuri Roubinsky
76324bec8d
Prevent shader crash if name of variable overrides function name
2019-10-06 20:35:41 +03:00
Yuri Roubinsky
d9087e1b44
Prevent shader crash if function call been used on constant
2019-10-06 18:20:05 +03:00
Yuri Roubinsky
5a5a062d61
Fix few redefinition name errors for variable/param/function in shaders
2019-10-06 17:27:28 +03:00
David Sichma
f73e1fae37
Correctly flip texture src region
2019-10-05 16:51:06 +02:00
Yuri Roubinsky
1472fca951
Removed unnecessary shader error log messages
2019-10-02 12:37:22 +03:00
lawnjelly
236ce550c0
Showing and hiding geometry updates shadows
...
Showing and hiding geometry nodes was not showing or hiding their respective shadows. This fixes this by marking any affected lights as dirty.
Fixes #29856
2019-10-01 19:09:03 +01:00
Rémi Verschelde
159470df08
Merge pull request #32275 from godotengine/skin_support
...
Added skin support and simplified APIs to override bone position + glTF 2.0 import fixes
2019-09-23 15:02:15 +02:00
Rémi Verschelde
fdc2463a1b
Merge pull request #32150 from luzpaz/typos
...
Fix misc. source comment typos
2019-09-20 17:09:05 +02:00
luz.paz
91ecd7b6a6
Fix misc. source comment typos
...
Found using `codespell -q 3 -S ./thirdparty,*.po -L ang,ba,cas,dof,doubleclick,fave,hist,leapyear,lod,nd,numer,ois,paket,seeked,sinc,switchs,te,uint -D ~/Projects/codespell/codespell_lib/data/dictionary.txt `
2019-09-19 14:36:52 -04:00
Rémi Verschelde
28265fb526
Merge pull request #31202 from azagaya/light-data
...
Create shadow_vec for altering shadow computation
2019-09-19 20:03:04 +02:00
Juan Linietsky
d81ddaf33e
Added skin support and simplified APIs to override bone position.
2019-09-18 19:46:32 -03:00
Chaosus
1333ea2a2d
Implement shader array support for varyings
2019-09-14 18:23:25 +03:00
azagaya
b835868067
Create shadow_vec for altering shadow computation
...
In 2.1 and 3.0, light_vec could be modified for altering shadow_computations.
But it broke shadows when rotating light. shadow_vec would do the same, but without breaking
shadows in rotated lights if not used.
Add inverse light transformation to shadow vec, so it's not affected when rotating lights;
Added usage define for shadow vec.
For shadow vec working properly when rotating a light, it's needed to multiply it by light_matrix normalized. Added usage define in order to don't do that if shadow_vec not used.
2019-09-06 13:55:49 -03:00
Yuri Roubinski
38601dd3e9
Fix shader crash when users miss the return statement
2019-08-28 11:32:33 +03:00
Yuri Roubinski
4dda253ee0
Implements switch to shaders
2019-08-23 14:43:09 +03:00
Rémi Verschelde
6c607c3564
Merge pull request #31266 from IAmActuallyCthulhu/pr/remove-redundant-author-comments
...
Remove redundant author doc comments
2019-08-14 13:45:54 +02:00
Yuri Roubinski
a525e3c5ce
Implemented do/while loops for shaders
2019-08-13 18:39:55 +03:00
Yuri Roubinski
24417f1975
Force user to initialize local shader constants
2019-08-13 12:31:25 +03:00
IAmActuallyCthulhu
82b9557803
Remove redundant author doc comments
2019-08-12 04:26:38 -05:00
Cameron Reikes
9f7a166c35
Show that identifier found in function names
2019-08-09 21:15:33 -07:00
Michael Alexsander Silva Dias
5ca7460421
Replace 'ERR_EXPLAIN' with 'ERR_FAIL_*_MSG' in "main" and "servers" directories
2019-08-09 11:27:39 -03:00
Rémi Verschelde
7b514d920d
Merge pull request #31099 from Chaosus/shader_local_const
...
Implemented local shader constants
2019-08-07 15:14:35 +02:00
qarmin
e0b5b21863
Add some code changes/fixes proposed by Coverity and Clang Tidy
2019-08-07 12:54:30 +02:00
Yuri Roubinski
b24b3497d6
Implemented local shader constants
2019-08-05 10:35:53 +03:00
Rémi Verschelde
4c943cca2c
Merge pull request #30716 from qarmin/fixed_static_analiser_code
...
Fix some code found by Coverity Scan and PVS Studio
2019-07-23 15:08:44 +02:00
qarmin
aab8da25ad
Fix some code found by Coverity Scan and PVS Studio
2019-07-23 09:14:31 +02:00
Rémi Verschelde
fec28da0ad
Merge pull request #30349 from qarmin/fix_arvr_crash_at_exit
...
Fix ARVRServer crash at exit
2019-07-20 12:41:56 +02:00
Chaosus
cfcc9ee9c1
Allows to use non-constants in the local shader array initializer
2019-07-16 08:04:49 +03:00
Chaosus
9379cbc774
Added local array initializer
2019-07-16 07:13:37 +03:00
Chaosus
c37379456f
Implemented local shader arrays
2019-07-15 15:57:39 +03:00
Chaosus
e7f5640632
Added missed "textureProjLod" shader built-in overload for 3D textures
2019-07-15 09:59:11 +03:00
hbina085
26c0609656
Make the default return value on crash explicit
...
Noticed that the error condition will return a NULL instead of something more explicit like "false".
Should make the code more readable at a glance.
2019-07-11 23:06:58 -04:00
Chaosus
a2b2da2454
Removed invalid mix shader overloads
2019-07-11 17:16:26 +03:00
Chaosus
4083d0c784
Fix "not" shader function return type
2019-07-09 15:55:00 +03:00
Ibrahn Sahir
4e4697b1c4
Added release function to PoolVector::Access.
...
For clarity, assign-to-release idiom for PoolVector::Read/Write
replaced with a function call.
Existing uses replaced (or removed if already handled by scope)
2019-07-06 12:04:27 +01:00
geequlim
253cd73f1d
Fix code completion for shader editor
2019-07-06 12:03:17 +08:00
qarmin
a4ae7131c3
Fix ARVRServer crash at exit
2019-07-05 21:14:43 +02:00
Rémi Verschelde
916c5c1e4b
Merge pull request #30318 from bojidar-bg/28501-ysort-modulate
...
Ensure that nested YSort preserves intermediate modulate values
2019-07-05 09:41:11 +02:00
Bojidar Marinov
c3495ef652
Ensure that nested YSort preserves intermediate modulate values
...
Fixes #28501
2019-07-04 17:57:47 +03:00
Bojidar Marinov
f7dad789e9
Fix various memory leaks and errors
2019-07-02 17:23:54 +03:00
qarmin
4e5310cc60
Some code changed with Clang-Tidy
2019-06-26 15:08:25 +02:00
Rémi Verschelde
cf76b713cb
Merge pull request #24487 from Meirinha/master
...
Added UV and UV2 to shader function light() built-in, fixes issue #24120
2019-06-20 12:46:54 +02:00
Rémi Verschelde
6ba1b4e371
Merge pull request #29764 from Calinou/boot-splash-no-filter-option
...
Add an option to disable boot splash filtering
2019-06-16 10:39:53 +02:00
Hugo Locurcio
786a7341a7
Add an option to disable boot splash filtering
...
Disabling filtering is usually desired in projects using a pixel art style.
This closes #19415 .
2019-06-15 23:53:39 +02:00
BastiaanOlij
02ea99129e
Adding a new Camera Server implementation to Godot.
...
This is a new singleton where camera sources such as webcams or cameras on a mobile phone can register themselves with the Server.
Other parts of Godot can interact with this to obtain images from the camera as textures.
This work includes additions to the Visual Server to use this functionality to present the camera image in the background. This is specifically targetted at AR applications.
2019-06-15 21:30:32 +10:00
Chaosus
c2d4abf62e
Added constant support to shaders
...
Co-authored-by: DavidSichma <sichmada@gmail.com>
2019-06-01 13:41:07 +03:00
qarmin
66a36ba474
Fix some unincialised variables
2019-05-28 19:12:19 +02:00
Rémi Verschelde
01c41c782b
Merge pull request #28796 from clayjohn/GLES2-optimization
...
GLES2: Allow Viewports to render directly to screen
2019-05-24 17:31:44 +02:00
Rémi Verschelde
193837a8f5
Merge pull request #28829 from vreon/swizzle-up
...
Allow constructing larger data types by swizzling
2019-05-24 17:02:26 +02:00
Bastiaan Olij
3ea778e66e
Implement shadow to opacity
2019-05-21 20:07:46 +10:00
Rémi Verschelde
e0574e1d98
Fix typos with codespell
...
Using codespell 1.15.0.
Method:
```
$ cat > ../godot-word-whitelist.txt << EOF
ang
curvelinear
doubleclick
leapyear
lod
merchantibility
nd
numer
ois
ony
que
seeked
synching
te
uint
unselect
webp
EOF
$ codespell -w -q 3 -I ../godot-word-whitelist.txt --skip="./thirdparty,*.po"
$ git diff // undo unwanted changes
```
2019-05-19 13:10:35 +02:00
clayjohn
65c211d303
Implement ability to render viewports directly to screen
2019-05-13 15:20:15 -07:00
Rémi Verschelde
86a74e2cb3
Merge pull request #27798 from clayjohn/gles2-proj-mat-bug
...
Fixes bug when setting projection matrix in shader GLES2
2019-05-13 17:59:40 +02:00
Jesse Dubay
1b9d26765f
Allow constructing larger data types by swizzling
...
GLSL allows the construction of larger data types by swizzling smaller
ones, but Godot shading language treated this as an error:
vec2 test2 = vec2(0.0, 1.0);
vec3 test3 = test2.xxx; // error: Invalid member for vec2 expression
This commit updates the expression parser for the 2 and 3-component data
types accordingly.
Fixes #10496
2019-05-11 11:01:09 -07:00
Aaron Franke
702b539405
Change "ID" to lowercase "id"
...
Reasoning: ID is not an acronym, it is simply short for identification, so it logically should not be capitalized. But even if it was an acronym, other acronyms in Godot are not capitalized, like p_rid, p_ip, and p_json.
2019-05-09 06:25:32 -04:00
Rémi Verschelde
dd2cd06165
Merge pull request #25670 from aqnuep/bake_mode_affect_gi_prove
...
Disable GI probe capturing lights with bake mode disabled
2019-04-30 18:33:34 +02:00
clayjohn
e37d723695
fixes bug when setting projection matrix
2019-04-30 08:36:38 -07:00
Aaron Franke
b659e1eb2b
Use approximate equallity methods in many places
2019-04-25 13:20:29 -04:00
Daniel Rakos
de33ef2d1b
Disable GI probe capturing lights with bake mode disabled
...
The bake mode property of lights previously didn't affect GI probes.
This change makes the GI probe ignore lights that have their bake mode
set to disabled.
2019-04-23 11:36:36 +02:00
Hein-Pieter van Braam
5d33f241f0
Merge pull request #26064 from JFonS/add_frustum_camera_mode
...
Add FRUSTUM camera mode, allowing tilted frustums
2019-04-23 06:20:13 +03:00
Hein-Pieter van Braam-Stewart
c52f890626
Don't try to statically allocate 2x 8193 pointers
...
Maximum stack size is only 8KiB, this will try to allocate 8193 *
sizeof(void*) * 2 = 131088 bytes on the stack. This causes a crash in
some cases.
2019-04-22 15:27:10 +02:00
Rémi Verschelde
a342131eba
Merge pull request #27673 from qarmin/small_fixes
...
Small fixes, mostly duplicated code
2019-04-22 12:00:34 +02:00
Rémi Verschelde
1120b0b2d3
Merge pull request #28200 from bojidar-bg/28115-ysort-breaks-shader
...
Fix nested YSort breaking "Use parent material"
2019-04-19 21:15:19 +02:00
Juan Linietsky
04847ef5f9
Added ability for multiple images to be imported as an atlas
...
This adds support for groups in the import system, which point to a single file.
Add property hint for saving files in file field
2019-04-19 15:56:34 -03:00
Bojidar Marinov
dd9bb6f186
Fix nested YSort breaking use_parent_material
...
Fixes #28115
2019-04-19 16:18:01 +03:00
Rémi Verschelde
5772f60f96
Merge pull request #27843 from bojidar-bg/27678-ysort-visibility
...
Do not YSort canvas items that are not visible
2019-04-09 17:15:27 +02:00
Rémi Verschelde
c8994b56f9
Style: Apply new changes from clang-format 8.0
...
It seems to stay compatible with formatting done by clang-format 6.0 and 7.0,
so contributors can keep using those versions for now (they will not undo those
changes).
2019-04-09 17:09:48 +02:00
Bastiaan Olij
e0b703e3fe
Added eye_height, changed description and fixed size of viewport issue
2019-04-10 01:11:17 +10:00
Bojidar Marinov
11e62cdc79
Do not YSort canvas items that are not visible
...
Fixes an issue with nested YSorts not regarding visibility
2019-04-09 15:49:38 +03:00
qarmin
856a8226a5
Small fixes, mostly dupicated code
2019-04-08 11:03:37 +02:00
Rémi Verschelde
4942e96897
Merge pull request #27527 from BastiaanOlij/render_ext_target
...
Add option to have viewport render into supplied texture (VR)
2019-04-07 11:11:50 +02:00
Rémi Verschelde
2db0613fb0
Merge pull request #25624 from nekomatata/texture-rect-flip
...
Add ability to flip TextureRect horizontally or vertically
2019-04-06 13:15:01 +02:00
Bastiaan Olij
8349d4fbd9
Add option to have viewport render into supplied texture
2019-04-06 08:24:58 +11:00
Juan Linietsky
19a6a6286a
Ability to make CanvasLayers have pseudo 3D depth.
2019-04-05 10:25:51 -03:00
PouleyKetchoupp
8b84638322
Add ability to flip TextureRect horizontally or vertically
2019-04-03 13:05:29 +02:00
marxin
0e781aeacb
Fix #25641 by not shifting a negative value.
2019-03-05 21:18:46 +01:00
Juan Linietsky
34dd772054
Properly redraw if something animated is visible
2019-03-03 13:43:54 -03:00
Juan Linietsky
2f32a75d2e
Skeletons can now choose between using local or world coords for processing, fixes #26468
2019-03-03 12:24:00 -03:00
Rémi Verschelde
467f18b738
Fix style issues from recent commits
2019-03-03 12:45:20 +01:00
Juan Linietsky
1b8f56c099
Clean up and fix some situations where triangulation may fail, closes #26366
2019-03-02 12:04:24 -03:00
Juan Linietsky
3f681b0681
Clean up blend shape support in GLES2 and GLES3.
2019-03-01 16:01:44 -03:00
Rémi Verschelde
09a541edd0
Merge pull request #26287 from JFonS/fix_25992
...
Use item_shadow_mask for LightOccluder2D culling
2019-02-27 21:28:31 +01:00
Juan Linietsky
ffb9f342a5
Ensure implicit conversions for scalar constants work in shaders, closes #26239
2019-02-26 23:21:37 -03:00
JFonS
1c3a1165e5
Use item_shadow_mask for LightOccluder2D culling
2019-02-25 22:58:14 +01:00
Juan Linietsky
fd68bb2596
-Treat scalar conversions when calling functions as error, closes #24261
...
-Make shader editor display errors if exist when just opening it
-Make ShaderMaterial not lose parameters if opened in error.
2019-02-23 17:55:09 -03:00
Rémi Verschelde
24097811e4
Fix invalid change from CLAMP to MAX in #26099
...
CLAMP limits the value between the two bounds, so for unsigned ints
it should be replaced by MIN(val, max), not MAX.
The issue in voxel_light_baker.cpp was fixed in 4f697f7
.
Fixes #26170 .
2019-02-23 12:08:21 +01:00
marxin
7de7f0ef17
Fix all -Wtype-limits warnings.
2019-02-21 19:34:35 +01:00
marxin
8d51618949
Add -Wshadow=local to warnings and fix reported issues.
...
Fixes #25316 .
2019-02-20 19:44:12 +01:00
JFonS
54b95b6c5a
Add FRUSTUM camera mode, allowing tilted frustums
...
This new camera mode makes it easy to create tilted frustums for mirror
or portal effects.
This work was kindly sponsored by IMVU.
2019-02-19 17:48:08 +01:00
JFonS
964338b06b
Fix update of canvas AABB with update_when_visible
...
Ensure the AABB of canvas items is always updated when
`update_when_visible` is enabled.
2019-02-17 20:28:00 +01:00
Rémi Verschelde
5fc86026ca
Fix typos with codespell
...
Using codespell 1.14.0.
Method:
```
$ cat > ../godot-word-whitelist.txt << EOF
ang
doubleclick
lod
nd
numer
que
te
unselect
EOF
$ codespell -w -q 3 -I ../godot-word-whitelist.txt --skip="./thirdparty,*.po"
$ git diff // undo unwanted changes
```
2019-02-13 09:23:29 +01:00
Rémi Verschelde
75dae1b9a9
Drivers, main, servers: Ensure classes match their header filename
...
Renamed:
- `drivers/alsamidi/alsa_midi.h` -> `midi_driver_alsamidi.h`
(same for `coremidi` and `winmidi`)
- `main/timer_sync.h` -> `main_timer_sync.h`
- `servers/visual/visual_server_global.h` -> `visual_server_globals.h`
2019-02-12 14:39:47 +01:00
Rémi Verschelde
b7cc2bb1e2
Core: Ensure classes match their header filename
...
Also drop some unused files.
Renamed:
- `core/dvector.h` -> `pool_vector.h`
- `core/io/resource_import.h` -> `resource_importer.h`
- `core/sort.h` -> `sort_array.h`
- `core/string_db.h` -> `string_name.h`
Dropped:
- `core/allocators.h`
- `core/os/shell.h`
- `core/variant_construct_string.cpp`
2019-02-12 13:34:25 +01:00
Hein-Pieter van Braam
d308eb091a
Fix many asan and ubsan reported issues
...
This allows most demos to run without any ubsan or asan errors. There
are still some things in thirdpart/ and some things in AudioServer that
needs a look but this fixes a lot of issues. This should help debug less
obvious issues, hopefully.
This fixes #25217 and fixes #25218
2019-01-30 06:43:56 +01:00
Rémi Verschelde
d0f289b0d9
Merge pull request #25314 from marxin/fix-24417-class-memaccess
...
Fix class memaccess
2019-01-27 21:32:26 +01:00
Juan Linietsky
0c60d4c682
Properly get proxy texture size for canvas light, fixes #17067
2019-01-27 16:57:05 -03:00
Juan Linietsky
1253b9c038
Add a check to help find transforms that are passes invalid.
2019-01-26 19:10:11 -03:00
marxin
3e4dab5386
Use placement new in visual_server_scene.cpp ( #24417 ).
2019-01-25 12:41:55 +01:00
Juan Linietsky
46af4b0a4b
Changes to GLES2 renderer to not use cube shadows if not available, fixes #25132
2019-01-22 10:05:23 -03:00
Rémi Verschelde
769341e180
Cleanup after @reduz :)
...
Fixes #25172 .
2019-01-21 11:12:55 +01:00
Juan Linietsky
7478f468b2
Fixes to 2D lights, closes #24750
2019-01-17 10:40:36 -03:00
Bojidar Marinov
d1406bfeb4
Fix a nested ysort invalid memory read again
...
Fixes #24755
2019-01-09 14:22:54 +02:00
Rémi Verschelde
1504c96112
Merge pull request #24539 from BastiaanOlij/override_gl_position
...
Override GL_position
2019-01-04 15:40:05 +01:00
Rémi Verschelde
b16c309f82
Update copyright statements to 2019
...
Happy new year to the wonderful Godot community!
2019-01-01 12:58:10 +01:00
Bastiaan Olij
c1a53d8b06
Always treat exponent as float
2018-12-30 13:10:58 +01:00
Bastiaan Olij
9f266cf7e5
Override GL_position
2018-12-29 23:56:50 +11:00
DiogoASTeixeira
13e8b5ed8f
Added UV and UV2 to shader function light() built-in
2018-12-19 20:22:52 +00:00
Bastiaan Olij
f3dd3c0830
Adding option to re-orient our sky
2018-12-15 19:41:34 +11:00
Rémi Verschelde
ac87560fda
Merge pull request #23469 from clayjohn/fragment_camera_matrix
...
Added CAMERA_MATRIX to fragment shader
2018-12-12 13:46:58 +01:00
Rémi Verschelde
37e198c320
Merge pull request #23483 from clayjohn/fragment_camera_view
...
Make VIEW vector available in fragment shader
2018-12-11 20:44:41 +01:00
clayjohn
2042d6214e
make VIEW vector available in fragment
2018-12-11 09:44:38 -08:00
Rémi Verschelde
0a9a2b1d62
Merge pull request #24163 from clayjohn/light_uv_const
...
Make LIGHT_UV constant in canvas_item light shader
2018-12-11 15:25:18 +01:00
Bojidar Marinov
02b569297e
Fix error when adding children to YSort
...
If it weren't for this warning, it would have crashed in release builds.
Fix #23889 , fixup 6b8d6e3b07
2018-12-04 21:11:40 +02:00
clayjohn
4740dd343e
make LIGHT_UV constant
2018-12-04 10:10:47 -08:00
Juan Linietsky
af8d941c55
Added luminance capping to avoid glitches on small dots. closes #17996
2018-11-28 01:22:20 -03:00
Kanabenki
33a7fae127
Allow *= operator between vec and mat types in shaders
2018-11-24 18:57:29 +01:00
Juan Linietsky
631cf676c3
Removed noperspective (not in GLSL ES 3.0), do not write smooth if not specified. Fixes #20435
2018-11-21 23:07:09 -03:00
Rémi Verschelde
3df9aa3339
Merge pull request #23878 from bojidar-bg/23775-ysort-crash
...
Fix YSort crash when removing a child
2018-11-21 15:35:03 +01:00
Bojidar Marinov
d2750ce593
Fix YSort crash when removing a child
...
Fixup of 8e4837f357
Fixes #23775
2018-11-21 15:01:11 +02:00
Juan Linietsky
d304228003
Do not draw particles if they are not processing at all, fixes #19507
2018-11-19 20:34:29 -03:00
JFonS
fb92c7b0fa
Use hint_color when getting shader default params
2018-11-16 12:20:23 +01:00
Juan Linietsky
d2e642b2dc
Proper validation of out arguments in built-in shader functions, closes #16244
2018-11-14 18:56:19 -03:00
Juan Linietsky
55f5f4757e
Merge pull request #23248 from dlasalle/fog
...
Add parameters for fog end depth and use alpha as density.
2018-11-14 10:24:55 -03:00
Juan Linietsky
984063cf0b
Cleaned up and fixed the base_changed function in rasterizers, also fixes #15617
2018-11-14 09:32:39 -03:00
Dominique LaSalle
6eae6247e4
Add parameter for fog max depth and use alpha as density.
2018-11-13 17:19:11 -08:00
Rémi Verschelde
8e4837f357
Merge pull request #23407 from bojidar-bg/3281-ysort-recursive
...
Y-Sort children together in nested YSorts
2018-11-12 20:42:55 +01:00
Juan Linietsky
baa8678d2a
Do not allow samplers where they dont belong (variables/return types), fixes #15133
2018-11-12 08:36:26 -03:00
Juan Linietsky
555fb3a317
Effectively ensure that surface materials are the right size when setting them, fixes #23596
2018-11-08 15:58:52 -03:00
JFonS
85ce4a67ed
Remove animation loop from ParticlesMaterial + improvements to CPUParticles2D
...
Remove animation loop from ParticlesMaterial and move it to
SpatialMaterial for 3D particles and Particles2D for the 2D case.
Added animation to CPUParticles2D as well as the "Convert to
CPUParticles2D" to the PAarticles2D menu.
2018-11-04 15:58:12 +01:00