Giter VIP home page Giter VIP logo

godot-3d-text-plugin's People

Contributors

aaronfranke avatar jummit avatar nonunknown avatar sisilicon avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

godot-3d-text-plugin's Issues

Created mesh is not completely closed

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:

image

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.

Manually creating 3D text node does not seem to work

Steps to reproduce:

  1. Create a new scene, with a 3D spatial parent.
  2. Create a Spatial child. This is going to be the 3D label.
  3. Drag label_3d.gd from /addons/SIsilicon.3d.text/label_3d.gd and drop it on the new child spatial (from step 2)
  4. Edit the options on the RHS so that the label has some contents, it's centered, etc.

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.

Example picture of 3dLabel in Use

Hi.

Thanks for making this label, here's an example of it in use in my game.

image

Feel free to reuse it if you like - I thought you might get a kick out of it.

That's all :)

Left alignment & wrapping

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!

[Intermittent] 3d Text appears to hang the editor when game running

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

  1. Create a scene with a 3D label in it - in my case a sub-scene of a main scene
  2. Launch the game
  3. Observe game is running, editor is responsive
  4. Do various things in the editor while game is running (in my case I just click on 2 scenetree nodes)

Observe:
Editor becomes unresponsive, it essentially has crashed / halted.

...

Billboard setting not set in _read()

When component is instanciated _ready() setting billboard mode is not done thus causing all labels on scene to point initial camera position.

Performance

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!

iOS not showing label

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

Same settings but not 3d text

Hello,

i try to use 3d text plugin, but i do not get the same nice result. I am using Godot 3.1.2. Your sample project works correct, but my project shows a nice block, but not the text.

3d text tscn

There must be some other settings, which i can not find.

Thanks.

Shader error on mobile phone

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()

Multiple instances in one scene don't work

Hi! Nice Plugin. I wanted to use it for my space game.

https://twitter.com/RecallSingular1

Steps to reproduce:

  1. Open test scene "3D Text.tscn" which says "Hello! this is my 3D text plugin."
  2. Duplicate the Label3D node
    3a. Edit the text in the original node
    3b. Edit the text in the duplicate node

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.

Seems to turn into a Spacial?

This was working fine then after a while it started doing this:

image

It's not easy to see but it has the right label for a Label3D but all the properties are gone in the sidebar. I tried to change the type but it has no effect. Any idea why this is happening?

Add support for billboard text

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.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.