sisilicon / godot-3d-text-plugin Goto Github PK
View Code? Open in Web Editor NEWLicense: MIT License
License: MIT License
Hi, I am new to Godot and 3D graphics so I apologize if I am missing some details.
I have used the plugin to create meshes from text, converted the mesh node to CSGMesh and used it to subtract from a cube. However I noticed that there are some places where the sky "leaks" through the subtracted space.
I am not sure yet how to figure out what exactly is wrong with the vertices/planes, if I can find more info I will attach it.
Example of the visual bug created by this issue:
Font in use is here: https://github.com/numerics/WorkBench/raw/master/UIFont/Font%20Files/Eurosti.TTF
I was trying to create a sort of embossed look, as if a letter was burnished into a wood tile. I believe ultimately the problem is that there are some vertices that are not connected/covered in the extrusion process.
Steps to reproduce:
Expected:
Should see a label
Result:
I could not get a label to appear, even though I was trying to copy the options from the other example.
Note: I noticed output
res://addons/SIsilicon.3d.text/label_3d.gd:56 - Invalid set index 'text' (on base: 'Nil') with value of type 'String'.
Workaround:
Saving the new scene and re-opening seems to fix the issue.
....
However - this isn't a real solution because I get an exception when I run my game and use the scene.
The function below (in label_3d.gd) is called too early:
func set_text(string): text = string; label.text = text label.rect_size = Vector2() label.force_update_transform()
This function is called BEFORE _ready() has created label or viewport. This means that the debugger throws an exception.
First off, this is amazing! Thanks so much for making this!
The main problem right now is that it's really hard to keep the text within a predefined box on a 3d surface because it doesn't wrap and as the text grows the text as a whole is center aligned (yes there's a left-aligned option which only affects text that is shorter and on a newline)
Thanks so much for your effort!
I can't reproduce it now. Hmmmm - perhaps it only occurs occasionally?
...
I'm using the head of the godot 3.1 branch in the GitHub repository - manually compiled. I'm not sure if you can repro this one but I'm going to mention it anyway...
What I did
Observe:
Editor becomes unresponsive, it essentially has crashed / halted.
...
Steps:
Expected :
3D Text should be listed in the filtered nodes
Result:
I cannot find 3D Text in the list. I cannot find it in the non-filtered list either.
When component is instanciated _ready()
setting billboard mode is not done thus causing all labels on scene to point initial camera position.
Using Convert to MeshInstance
, is it possible to modify the resolution of the font? The resulting mesh is too polygonal.
I've been missing a proper label3D in Godot since forever, hence this plugin is a godsend.
My question is how performant is it? Should I use it sparingly? Contrary to my current implementation of sprite sheet animated sprite 3D where i slap lots of nodes of those changing frame numbers according to which character i need.
Thanks!
after changing font, the convert to mesh instance button disappears. works in 3.3, not 3.4
Godot 3.4
iOS 15.2
MacOS 12.0.1
Neither flat nor extruded
WARNING: Could not find vertex shader attribute 'bone_weights' to match BindAttributeLocation request.
WARNING: Could not find vertex shader attribute 'instance_xform_row_1' to match BindAttributeLocation request.
WARNING: Could not find vertex shader attribute 'bone_transform_row_1' to match BindAttributeLocation request.
WARNING: Could not find vertex shader attribute 'tangent_attrib' to match BindAttributeLocation request.
WARNING: Could not find vertex shader attribute 'normal_attrib' to match BindAttributeLocation request.
WARNING: Could not find vertex shader attribute 'bone_ids' to match BindAttributeLocation request.
WARNING: Could not find vertex shader attribute 'uv2_attrib' to match BindAttributeLocation request.
WARNING: Could not find vertex shader attribute 'bone_transform_row_2' to match BindAttributeLocation request.
ERROR: Implementation limit of 32 varying components exceeded. Unable to allocate 'specular_interp'.
ERROR: Input of fragment shader 'vertex_interp' not written by vertex shader
ERROR: Input of fragment shader 'm_ViewtoUV' not written by vertex shader
ERROR: Input of fragment shader 'm_normalMatrix' not written by vertex shader
at: _display_error_with_code (drivers/gles2/shader_gles2.cpp:126) - SceneShaderGLES2: Program linking failed:
WARNING: Could not find vertex shader attribute 'bone_transform_row_0' to match BindAttributeLocation request.
WARNING: Could not find vertex shader attribute 'instance_xform_row_2' to match BindAttributeLocation request.
WARNING: Could not find vertex shader attribute 'instance_color' to match BindAttributeLocation request.
WARNING: Could not find vertex shader attribute 'instance_custom_data' to match BindAttributeLocation request.
WARNING: Could not find vertex shader attribute 'color_attrib' to match BindAttributeLocation request.
WARNING: Could not find vertex shader attribute 'instance_xform_row_0' to match BindAttributeLocation request.
WARNING: Could not find vertex shader attribute 'bone_weights' to match BindAttributeLocation request.
WARNING: Could not find vertex shader attribute 'instance_xform_row_1' to match BindAttributeLocation request.
WARNING: Could not find vertex shader attribute 'bone_transform_row_1' to match BindAttributeLocation request.
WARNING: Could not find vertex shader attribute 'tangent_attrib' to match BindAttributeLocation request.
WARNING: Could not find vertex shader attribute 'normal_attrib' to match BindAttributeLocation request.
WARNING: Could not find vertex shader attribute 'bone_ids' to match BindAttributeLocation request.
WARNING: Could not find vertex shader attribute 'uv2_attrib' to match BindAttributeLocation request.
WARNING: Could not find vertex shader attribute 'bone_transform_row_2' to match BindAttributeLocation request.
ERROR: Implementation limit of 32 varying components exceeded. Unable to allocate 'specular_interp'.
ERROR: Input of fragment shader 'vertex_interp' not written by vertex shader
ERROR: Input of fragment shader 'm_ViewtoUV' not written by vertex shader
ERROR: Input of fragment shader 'm_normalMatrix' not written by vertex shader
2021-12-13 20:56:07.755524-0800 beads_lounge[529:39434] ERROR: Method failed. Returning: nullptr
2021-12-13 20:56:07.755554-0800 beads_lounge[529:39434] at: get_current_version (drivers/gles2/shader_gles2.cpp:422) - Method failed. Returning: nullptr
ERROR: Method failed. Returning: nullptr
at: get_current_version (drivers/gles2/shader_gles2.cpp:422) - Method failed. Returning: nullptr
2021-12-13 20:56:07.755578-0800 beads_lounge[529:39434] ERROR: Condition "!version" is true. Returned: false
2021-12-13 20:56:07.755594-0800 beads_lounge[529:39434] at: bind (drivers/gles2/shader_gles2.cpp:87) - Condition "!version" is true. Returned: false
ERROR: Condition "!version" is true. Returned: false
at: bind (drivers/gles2/shader_gles2.cpp:87) - Condition "!version" is true. Returned: false
2021-12-13 20:56:07.755612-0800 beads_lounge[529:39434] ERROR: Condition "!version" is true. Returned: -1
2021-12-13 20:56:07.755626-0800 beads_lounge[529:39434] at: _get_uniform (drivers/gles2/shader_gles2.h:258) - Condition "!version" is true. Returned: -1
ERROR: Condition "!version" is true. Returned: -1
at: _get_uniform (drivers/gles2/shader_gles2.h:258) - Condition "!version" is true. Returned: -1
2021-12-13 20:56:07.755647-0800 beads_lounge[529:39434] ERROR: Condition "!version" is true. Returned: -1
2021-12-13 20:56:07.755660-0800 beads_lounge[529:39434] at: _get_uniform (drivers/gles2/shader_gles2.h:258) - Condition "!version" is true. Returned: -1
ERROR: Condition "!version" is true. Returned: -1
at: _get_uniform (drivers/gles2/shader_gles2.h:258) - Condition "!version" is true. Returned: -1
adding xcode output if it can help
It's fine on PC but got an error below and no 3d text on screen with Galaxy S9+.
it happens on both GLES2 & 3.
E 0:00:01.429 _display_error_with_code: SceneShaderGLES2: Program linking failed:
L0006 The number of fragment shader input components (62) is greater than the maximum number allowed (60).
L0006 The number of vertex and fragment shader varying components (63) is greater than the maximum number allowed (60).
<C++ Source> drivers/gles2/shader_gles2.cpp:130 @ _display_error_with_code()
E 0:00:01.592 _display_error_with_code: SceneShaderGLES3: Program LINK FAILED:
L0004 The number of fragment shader input components (62) is greater than the maximum number allowed (60).
L0004 The number of vertex and fragment shader varying components (63) is greater than the maximum number allowed (60).
<C++ Source> drivers/gles3/shader_gles3.cpp:164 @ _display_error_with_code()
Hi! Nice Plugin. I wanted to use it for my space game.
https://twitter.com/RecallSingular1
Steps to reproduce:
Expected:
The two text fields should change by themselves, without affecting each other.
Result:
It's clear they are both rendering into the same backing buffer and the text is only changed when you edit the original node. However, the dimensions of the second are independant of the first's dimensions.
It'd be really nice to see support for billboard text (make the text always face the camera), as that's what I need for my project I'm working on.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.