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