Godot Voxel plugin based on a fragment shader writing to NORMAL, TANGENT and BINORMAL without reading them from the mesh.
Describe the problem or limitation you are having in your project
The engine is giving a repeated warning, which does not apply to my shader, causing log spam:
servers/rendering/renderer_rd/forward_clustered/render_forward_clustered.cpp:3854 - Attempting to use a shader (res://addons/voxel/Shaders/Opaque.gdshader) that requires tangents with a mesh that doesn't contain tangents. Ensure that meshes are imported with the 'ensure_tangents' option. If creating your own meshes, add an ARRAY_TANGENT array (when using ArrayMesh) or call generate_tangents() (when using SurfaceTool). (User)
It happens to other assets of other game developers as well, causing a lot of log spam.
That ticket is closed, but the problem is not resolved in general.
Describe the feature / enhancement and how it helps to overcome the problem or limitation
Since such log spam issues will likely happen in the future, I I suggest adding a generic temporary solution as a set of project settings:
Log filters: Regex, pattern or similar. Removes any matching log messages.
Flags to disable specific log messages by their code location (Godot version specific), for example: render_forward_clustered.cpp:3854
Integer value to limit the number of times a specific log message (from the same code location) is shown per editor or game session.
The config dialog should include a warning that such filters/limits on logging should be removed once their root cause is fixed. Also a warning that rules by code location are likely to be invalidated by Godot updates, which is normal.
Describe how your proposal will work, with code, pseudo-code, mock-ups, and/or diagrams
If the game developer faces such log spam and it cannot be fixed in other ways, then he/she configures a filter to reduce or eliminate the offending log messages.
If this enhancement will not be used often, can it be worked around with a few lines of script?
It cannot be worked around without having a full custom Godot build with the offending log removed from the code.
Is there a reason why this should be core and not an add-on in the asset library?
Describe the project you are working on
Godot Voxel plugin based on a fragment shader writing to
NORMAL
,TANGENT
andBINORMAL
without reading them from the mesh.Describe the problem or limitation you are having in your project
The engine is giving a repeated warning, which does not apply to my shader, causing log spam:
It happens to other assets of other game developers as well, causing a lot of log spam.
It has been a long standing issue. Please see the discussion here: https://github.com/godotengine/godot/issues/84875
That ticket is closed, but the problem is not resolved in general.
Describe the feature / enhancement and how it helps to overcome the problem or limitation
Since such log spam issues will likely happen in the future, I I suggest adding a generic temporary solution as a set of project settings:
The config dialog should include a warning that such filters/limits on logging should be removed once their root cause is fixed. Also a warning that rules by code location are likely to be invalidated by Godot updates, which is normal.
Describe how your proposal will work, with code, pseudo-code, mock-ups, and/or diagrams
If the game developer faces such log spam and it cannot be fixed in other ways, then he/she configures a filter to reduce or eliminate the offending log messages.
If this enhancement will not be used often, can it be worked around with a few lines of script?
It cannot be worked around without having a full custom Godot build with the offending log removed from the code.
Is there a reason why this should be core and not an add-on in the asset library?
It cannot be done with an add-on.