David Snopek
398ee08375
Add multiview to the opengl3 driver
2022-10-21 21:00:32 -05:00
Logan Lang
e61d8b6f53
enabled ambient_light_disabled render mode flag
2022-09-19 17:12:32 -05:00
clayjohn
97be1fb7b6
Apply energy conservation to LAMBERT_WRAP and TOON diffuse modes by dividing by PI
2022-09-12 08:45:40 -07:00
Omar El Sheikh
f1fda97c33
Implement Octahedral on OpenGL3
2022-08-13 10:20:14 -07:00
Rémi Verschelde
8734ef1f7a
Merge pull request #62547 from clayjohn/ref_vec_pbr
2022-08-08 10:18:32 +02:00
Hugo Locurcio
baaa7503c7
Add a shadow opacity property to Light3D
...
This can be used to make shadows translucent for a specific light.
The light distance fade system also uses this to smoothly fade the shadow
when the light fade transition distance is greater than 0.
2022-08-07 11:06:32 +02:00
clayjohn
4b80cb4aa3
Fix various bugs in GLES3 renderer that stopped it from running on web
2022-08-01 16:45:32 -04:00
Rémi Verschelde
677f565ce8
Merge pull request #63587 from clayjohn/specular-occlusion
...
Treat specular less than 0.02 as occlusion
2022-08-01 07:54:57 +02:00
clayjohn
0c65ed38a6
Treat specular less than 0.02 as occlusion
...
This is a very common hack used in almost all PBR renderers to allow removing specular contribution in dielectric materials
2022-07-31 15:45:21 -07:00
Hugo Locurcio
4b42379c8f
Rename RenderingServer global shader uniform methods to be more explicit
...
The `global_shader_uniform` name is longer, but it makes it much
easier to find the methods when searching in the class reference.
2022-07-28 18:46:59 +02:00
clayjohn
93c82ab4b9
Evaluate specular reflections using specular dominant direction instead of assuming mirror reflections
2022-06-29 23:36:18 -07:00
clayjohn
5f52936350
Implement MultiMesh in 3D and flesh out MultiMesh functions
2022-06-14 21:23:20 -07:00
clayjohn
39f1be760f
Fix sky updating when DirectionalLight mode changed and shader compatibility for certain drivers
2022-05-19 17:44:38 -07:00
clayjohn
9b61c855ef
Add basic lighting to GLES3 renderer.
...
This includes all three light types and IBL, but does not include shadows or any form of GI
2022-05-16 15:07:09 -07:00
Somnath Sarkar
52aeaf5d16
Fix computation of screen_uv
2022-05-16 00:00:01 -04:00
clayjohn
652adcd5bf
Basic 3D rendering
2022-05-12 10:37:27 -07:00
clayjohn
2bf8831dd6
SceneShader compiling
2022-05-11 21:00:21 -07:00
Yuri Roubinsky
0d9aecd967
Rename several transform built-ins in shaders
2022-03-18 12:10:55 +03:00
clayjohn
fe49244611
Use Filament specular models and parametrization
2022-02-22 19:39:41 -08:00
clayjohn
99064d57db
New OpenGL batching canvas renderer
2022-01-11 22:26:18 -08:00
luz paz
a124f1effe
Fix various typos
...
Found via ` codespell -q 3 -S ./thirdparty,*.po,./DONORS.md -L ackward,ang,ans,ba,beng,cas,childs,childrens,dof,doubleclick,expct,fave,findn,gird,hist,inout,leapyear,lod,nd,numer,ois,ony,paket,seeked,sinc,switchs,te,uint,varn`
Update editor/import/resource_importer_layered_texture.cpp
Co-authored-by: Raul Santos <raulsntos@gmail.com>
Update doc/classes/TileSetScenesCollectionSource.xml
Co-authored-by: Raul Santos <raulsntos@gmail.com>
Update scene/gui/graph_edit.cpp
Co-authored-by: Raul Santos <raulsntos@gmail.com>
Update scene/resources/animation.cpp
Co-authored-by: Raul Santos <raulsntos@gmail.com>
Update scene/resources/animation.cpp
Co-authored-by: Raul Santos <raulsntos@gmail.com>
Update scene/resources/animation.cpp
Co-authored-by: Raul Santos <raulsntos@gmail.com>
Update scene/gui/rich_text_label.cpp
Co-authored-by: Raul Santos <raulsntos@gmail.com>
Revert previously committed change
2022-01-02 01:03:58 -05:00
Clay John
8a10bb7d0d
Use OpenGL 3.3 core profile instead of compatibility profile
...
- Rename OpenGL to GLES3 in the source code per community feedback.
- The renderer is still exposed as "OpenGL 3" to the user.
- Hide renderer selection dropdown until OpenGL support is more mature.
- The renderer can still be changed in the Project Settings or using
the `--rendering-driver opengl` command line argument.
- Remove commented out exporter code.
- Remove some OpenGL/DisplayServer-related debugging prints.
2021-10-31 15:56:45 +01:00
Rémi Verschelde
386968ea97
Remove obsolete GLES3 backend
...
Due to the port to Vulkan and complete redesign of the rendering backend,
the `drivers/gles3` code is no longer usable in this state and is not
planned to be ported to the new architecture.
The GLES2 backend is kept (while still disabled and non-working) as it
will eventually be ported to serve as the low-end renderer for Godot 4.0.
Some GLES3 features might be selectively ported to the updated GLES2
backend if there's a need for them, and extensions we can use for that.
So long, OpenGL driver bugs!
2020-02-13 10:36:44 +01:00
Rémi Verschelde
4faaf6089a
Remove unused #if 0'ed code
2020-01-21 21:41:54 +01:00
Winston
c9fe11dec1
Use correct omni light attenuation
...
fixes godotengine/godot#34683
2019-12-29 17:22:34 +01:00
Rémi Verschelde
e21872f4b9
Merge pull request #34527 from MadEqua/fix-gles3-light-cutoff
...
Fix GLES3 light cutoff.
2019-12-21 23:40:15 +01:00
Bruno Lourenço
d47374385c
Fix GLES3 light cutoff.
2019-12-21 20:52:54 +00:00
Bruno Lourenço
d7f9d71be2
Fix contact shadow when light is outside of viewport.
2019-12-21 16:55:41 +00:00
clayjohn
676f647c74
Add a default POINT_SIZE
2019-12-10 23:08:20 -08:00
Rémi Verschelde
65e6efaa3b
Merge pull request #33836 from clayjohn/blinn-fix
...
Fix Specular Blinn function
2019-12-03 07:50:37 +01:00
PouleyKetchoupp
299b85c46f
Disable shadow map sampling when shadows are not used in GLES3
...
Fixes #20742
2019-11-29 06:21:17 +01:00
clayjohn
334d41d7cc
Fix Specular Blinn function
2019-11-22 22:03:26 -08:00
clayjohn
cd40154890
Fix issues with environment mapping
2019-11-19 22:30:48 -08:00
Rémi Verschelde
823c3def72
Fix copyright headers and style issues
2019-09-24 11:52:06 +02:00
Juan Linietsky
d81ddaf33e
Added skin support and simplified APIs to override bone position.
2019-09-18 19:46:32 -03:00
Rémi Verschelde
2b1c3878f9
Merge pull request #29031 from BastiaanOlij/alpha_shadow
...
Implement shadow to opacity
2019-05-23 13:37:54 +02:00
Bastiaan Olij
3ea778e66e
Implement shadow to opacity
2019-05-21 20:07:46 +10:00
clayjohn
cc2d862733
Scale environment lighting correctly in GLES3
2019-05-19 17:59:23 -07:00
clayjohn
55d11330b0
fix lighting bug introduced in clear color changes
2019-05-14 15:04:54 -07:00
clayjohn
5c252092e1
added radiance when using clear color and fixed brdf
2019-05-13 12:26:54 -07: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
Hein-Pieter van Braam
a83e77fded
Explicitly use floating point numbers in the our shaders
...
We need to be explicit about using floating point numbers in our shaders
for compatibility with mobile GLES drivers.
2019-02-24 23:35:10 +00:00
Juan Linietsky
95e34967d8
Fix precision issue with skeletons, closes #26057 , closes #26062
2019-02-22 13:27:19 -03:00
Rémi Verschelde
769341e180
Cleanup after @reduz :)
...
Fixes #25172 .
2019-01-21 11:12:55 +01:00
Juan Linietsky
9ed34d4423
Use GLES2 approach to vertex shading in GLES3, which has been more developed. Fixes #21852
2019-01-14 20:41:12 -03:00
Bastiaan Olij
9f266cf7e5
Override GL_position
2018-12-29 23:56:50 +11:00
PouleyKetchoupp
ab7759dbd1
Fixed fragment shader compilation error on android (S0001: Cannot compare 'float' with 'int')
2018-12-21 20:31:10 +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
dd06f6ee70
Fix style issues and signature mismatch
2018-11-28 10:21:07 +01:00
Juan Linietsky
a397d3a46a
Avoid voxel cone trace from going full 180 degrees, fixes #20716
2018-11-23 08:42:35 -03:00
Juan Linietsky
78624ad22c
Ensure double sided normalmaps work, fixes #23760
2018-11-21 08:48:33 -03:00
Juan Linietsky
8aa38c9ad8
Fix shader bug likely introduced recently.
2018-11-16 14:30:34 -03:00
Juan Linietsky
bb9127a78b
Removed unnecesary normal multiplication (only culling was really needed), fixes #17776
2018-11-16 10:52:31 -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
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
8849d3b47d
Merge pull request #22639 from tagcup/opt
...
Avoid some unnecessary calculations in scene.glsl.
2018-11-12 21:22:57 +01:00
Dominique LaSalle
f39d14dd61
Fix gles3 shader to actually multiply specular light by rev_amount for fog calculations.
2018-10-22 21:09:34 -07:00
Ferenc Arn
35ea827e83
Avoid some unnecessary calculations in scene.glsl.
2018-10-11 10:34:37 -04:00
Juan Linietsky
e0871b0f52
Baker fixes
2018-10-07 11:18:44 -03:00
tagcup
9f4e9fcb81
Optimized GGX G function for GLES2.
...
Also changed the mapping of anisotropy to match the common definition.
2018-09-30 16:33:50 -04:00
Ferenc Arn
e94f6aacee
Restore the Fresnel term in the BRDF.
...
Was uncommented in 65fd37c
, mostly likely by mistake since its important.
Also made a few corrections of specular -> specular_blob_intensity (gles2).
2018-09-30 12:17:48 -04:00
Juan Linietsky
0de8309b2c
Many fixes to GLES2 renderer, fixed compilation issues in GLES3 shaders.
2018-09-29 13:49:34 -03:00
Rémi Verschelde
60312915dc
Fix build after 65fd37c1
, using Math_PI
...
Also fix style in shaders.
2018-09-23 18:26:57 +02:00
Juan Linietsky
65fd37c149
-Rewrote GLES2 lighting and shadows and optimized state changes, did many optimizations, added vertex lighting.
...
-Did some fixes to GLES3 too
2018-09-23 12:14:50 -03:00
Rémi Verschelde
4226d56ca9
Style: Enable clang-format on GLSL shaders
...
As of clang-format 6.0.1, putting the `/* clang-format off */` hint
around our "invalid" `[vertex]` and `[shader]` statements isn't enough
to prevent a bogus indent of the next comments and first valid statement,
so we need to enclose that first valid statement in the unformatted chunk.
2018-08-27 07:34:14 +02:00
Rémi Verschelde
1b6d75a599
Style: Fix code formatting in GLES3 shaders
2018-08-24 13:42:18 +02:00
Nick Hahn
66eba18969
Fix handling of normals that approach 1
2018-08-12 12:45:43 +02:00
Hugo Locurcio
31c12f05c4
Tweak the default SpatialMaterial properties
...
Roughness is now set to 1 by default and albedo is now white,
even on meshes that do not have any materials defined.
This means there is no longer a visual difference between a
mesh with no materials defined and a mesh with a default
SpatialMaterial defined.
2018-08-07 17:04:30 +02:00
Juan Linietsky
4b549faaab
transmission was broken, fix was made. Also fixed treshold.
2018-07-22 14:04:11 -03:00
Juan Linietsky
ad88979841
Fix opaque pre pass not casting shadows
2018-07-22 13:18:27 -03:00
Alex Roman
2ce1118faa
Add disable ambient light flag to shaders and materials
2018-07-17 21:30:43 +02:00
Rémi Verschelde
92bfde531c
Merge pull request #19786 from JFonS/correct_normal_scaling
...
Add render mode to ensure correct normals when using non-uniform scaling
2018-07-04 15:09:59 +02:00
Juan Linietsky
7fc2367508
Added ability for SSAO to affect AO textures too
2018-07-02 16:50:52 -03:00
JFonS
c8cf71753c
Add render mode to ensure correct normals when using non-uniform scaling
2018-06-21 00:12:12 +02:00
JFonS
9c307d4b6c
Added flag on SpatialMaterial to disable shadows
2018-03-29 18:46:42 +02:00
AndreaCatania
252344f706
Fixed graphic artifact caused by anisotropic filter
2018-01-11 12:55:18 +01:00
Bastiaan Olij
ebc96195d8
Clamp blend to fix screen space reflections
2018-01-10 23:23:00 +11:00
Juan Linietsky
4c23f94af9
properly blend interior and exterior ambient in reflection probes, fixes #14695
2018-01-06 19:34:03 -03:00
Juan Linietsky
d72a32bc54
Use better initialization value for normalmap, fixes #14720
2018-01-06 18:09:11 -03:00
Juan Linietsky
003f2dab78
Fix dual paraboloid shadow maps, closes #14487
2018-01-05 12:13:52 -03:00
Juan Linietsky
0c86c1ad15
Fixed GIProbe blending, closes #15164
2018-01-05 10:34:31 -03:00
Juan Linietsky
b411029e31
Merge pull request #14796 from AlmightyScientist/issue-14552
...
Shader Language: Fix Vertex Lighting artifacts.
2017-12-26 12:46:48 -03:00
Juan Linietsky
2b31155baa
Fix sidedness check in material. Also remove SIDE built-in.
2017-12-26 11:09:52 -03:00
Juan Linietsky
7d0cabe9d3
Change skeleton processing to work on global coordinates, should help fix many import problems from Blender, GLTF2, etc.
2017-12-21 17:36:39 -03:00
Enzo Nocera
6c25eabbc5
Shader Language: Fix Vertex Lighting artifacts.
...
- When using Direction Lighting along with Vertex Lighting,
putting a SpatialMaterial Roughness to 1.0 causes artifacts to appear.
(#14552 )
Fixes #14552 .
2017-12-18 09:15:28 +01:00
Juan Linietsky
f3ad14224e
-Add lightmapper
...
-Fixes to unwrapper (remove degenerates), makes Thekla not crash
-Added optional cancel button in EditorProgress
-Added function to force processing of events (needed for cancel button)
2017-12-14 09:01:27 -03:00
Rémi Verschelde
663f7e6a61
Fix usage of signed type in skeleton shader
...
The resulting primitive is drawn as GL_UNSIGNED_SHORT, so uvec4 should be used.
Fixes #12804 .
2017-12-10 13:58:36 +01:00
Juan Linietsky
8c78ccb027
After a lot of trial and error, i think rim lighting implementation is now perfect, closes #13986
2017-12-08 11:09:03 -03:00
Juan Linietsky
8717afbfe1
Added small bit of bias depending on lenght for contact shadows, fixes #12726
2017-12-07 16:19:35 -03:00
Juan Linietsky
e8494f7ab7
Fixed rim lighting glitch, closes #13340 , closes #13986
2017-12-06 14:30:49 -03:00
Rémi Verschelde
9b9fcb1977
Disable invariant gl_Position to workaround Mesa bug 100316
...
Fixes #13450 , though it would be worth reverting if/when the Mesa bug is fixed.
2017-12-03 15:05:39 +01:00
Juan Linietsky
0243803117
Properly take into consideration that VERTEX must be written to in opaque pre pass, does some speed up to scenes using triplanar.
2017-12-01 08:45:36 -03:00
Rémi Verschelde
4a1d1cbbb4
Merge pull request #13290 from Chaosus/projectionfix
...
Fix invalid transform when skip_vertex_transform used
2017-11-26 21:31:02 +01:00
Chaosus
284f8f6d91
Fixed invalid transform when skip_vertex_transform used
2017-11-26 22:02:40 +03:00
volzhs
b97e87480e
Fix shader compilation fail on Android
...
Error message from logcat
**ERROR**: SceneShaderGLES3: Fragment Program Compilation Failed:
50:471: S0032: no default precision defined for parameter 'probe'
At: drivers/gles3/shader_gles3.cpp:167:_display_error_with_code() - SceneShaderGLES3: Fragment Program Compilation Failed:
2017-11-27 01:15:39 +09:00
Juan Linietsky
9738ebcda0
-Fixed height fog (was broken)
...
-Make sure materials are named in OBJ importer, so they can be saved outside as resources.
2017-11-25 12:32:41 -03:00
Ferenc Arn
6e68c86ba6
Add viewport to the other SceneData struct.
...
This was missed in #12288 .
2017-10-30 20:48:33 -04:00
Juan Linietsky
4785e66eea
Merge pull request #12288 from tagcup/expose_viewport_size
...
Expose VIEWPORT_SIZE in shader language.
2017-10-30 19:32:21 -03:00
Ferenc Arn
a0fc641f25
Expose VIEWPORT_SIZE in shader language.
...
Fixes #11710 .
2017-10-26 15:00:28 -04:00