Godot: Support vector images

Created on 26 May 2016  Â·  36Comments  Â·  Source: godotengine/godot

It would be very nice to support vector images in godot engines (import svg or swf file).

archived feature proposal core rendering

Most helpful comment

Flash is going down the toilet since HTML5 came out. Nobody uses swf anymore. I think would not only be a waste of time but all that effort could be used for doing something more productive.

Maybe svg?

All 36 comments

swf is too much, IMO.

@volzhs And it is proprietary as well AFAIK

Godot 3.0 will support 2D meshes, so this should cover it
On May 26, 2016 12:33, "volzhs" [email protected] wrote:

swf is too much, IMO.

—
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub
https://github.com/godotengine/godot/issues/4826#issuecomment-221906861

@bojidar-bg Some engines supports reading swf.
According to this https://en.wikipedia.org/wiki/SWF
On May 1, 2008, Adobe dropped its licensing restrictions on the SWF format specifications, as part of the Open Screen Project.
But still... too much i think.
And there are also many requests for integrating or using other animation tools.

Flash is going down the toilet since HTML5 came out. Nobody uses swf anymore. I think would not only be a waste of time but all that effort could be used for doing something more productive.

Maybe svg?

I think that it is possible to write an importer for svg using Polygon2D and plugins... hm..

I upvote svg support. I think scalable vector format support would be excellent, even if it is some basic capacity. There are already Polygon2d, but as far as I know that does not support a bezier curve. A custom svg node shouldn't be that difficult, I may see if I can whip something up. I am writing an app that sort of is a godot frontend that mirrors a web frontend and they both connect to a sailsjs backend with http and sockets. Since svg is supported on the web end, I'd like support for this on the godot end as well. Games like Asteroids used vector objects, and GoDot is not only for Games, but apps as well, don't forget! As far as I am aware, svg is an open format and widely used as a web standard so why not godot?

Scalable Vector Graphics (SVG) is an XML-based vector image format for two-dimensional graphics with support for interactivity and animation. The SVG specification is an open standard developed by the World Wide Web Consortium (W3C) since 1999. SVG images and their behaviors are defined in XML text files.

no one contributed this, also I think no one found a good library for this?

vector meshes will come for 3.1, so will kick to that milestone instead

This might be fixed now that weh have SVG an SVG importer.

Indeed, there is an importer for .svg in newest master.

WOW!

If the importer converts to .png I don't think this should've been closed. Importing is not the same as natively using (or even import to polygon2D/mesh2D if those supported curves or other SVG features).

Maybe @mefihl wanted this, but it seems like you could just export these from your vector editor instead. The only time it'd be better IMO is if you shipped the .svg with your game and could re-render it whenever the resolution of the game changed, so at very least the baseline resolution was correct.

@reduz I thought 2d meshes would use a standard image atlas - like spine2d, dragonbones, creature2d and all the others.
Are you saying that you are also planning on adding support for resolution independent svg files created in inkscape/other designer software being loaded as the atlas?
That could also be useful for making crisp GUIs

Btw loading an SVG instead of a PNG file for an atlas would be AWESOME! I don't think any other software has that. But we absolutely need to be able to load standard image files too. Svg is great for crispy clear cartoon graphics, but it's downside is that it wont work for other artistic styles very well.

TBH I don't think this is gonna happen. SVG spec is huge and importing paths as they are might not be efficient. The SVG files must be constructed in an optimum way (or optimized by some tool) before being useful to a game engine. It's much easier to blit a texture into a mesh than to render lots of polygons to each detail of the image.

Anyway, I think this ticket can remain open. Once 2D meshes are added, we see what to do about it.

converting a SVG to a 2D mesh is perfectly possible, but it's probably not
going to work as everyone is intending to, given it still needs to use
polygons.

On Wed, Dec 20, 2017 at 4:55 PM, George Marques notifications@github.com
wrote:

Reopened #4826 https://github.com/godotengine/godot/issues/4826.

—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/godotengine/godot/issues/4826#event-1396789629, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AF-Z23Nfo3lM4uI_bNG4YNz2cu53ATmwks5tCWZHgaJpZM4Inqav
.

It would make more sense if the engine converts the svg to an image file, before using it as an atlas

For the mesh,you would need a way to generate it and author it.
There is an addon that can create a single mesh of a single image here:
https://godotengine.org/asset-library/asset/75
https://www.youtube.com/watch?v=vuWSVm_vx9c&feature=youtu.be
Perhaps use for inspiration?

Please take a look at other game engines with a completed tool for authoring 2d meshes:
https://www.assetstore.unity3d.com/en/#!/content/79840

Unity devs are currently merging this plugin into Unity:
https://www.youtube.com/watch?v=xFfX48caSds

It has a great and easy workflow for the entire rigging pipeline! Generate a 2d mesh for each body part in the atlas, edit it, then skin bind the parts to bones, edit weigths, etc- everything!

Alternatively you could ask @ndee85 to get his coa-tools blender addon to export to godot's 2d mesh spec - at least as a starting point. Then later on develop authoring tools for godot- so people wont have to use external ones

Vector formats for textures should definitely be easier to render and
convert than is being suggested. Even support for SVG1.0 or
vector/curve/shape would be well worth it and might be extensively used for
bringing crisp vector shapes into models. If you are using svg for the
right things it would definitely work better than bitmaps and pngs in many
cases.

On Dec 20, 2017 2:31 PM, "Todor Imreorov" notifications@github.com wrote:

Unity devs are currently merging this plugin into Unity:
https://www.youtube.com/watch?v=xFfX48caSds

It has a great and easy workflow for the entire rigging pipeline!

Alternatively you could ask @ndee85 https://github.com/ndee85 to get
his coa-tools blender addon to export to godot's 2d mesh spec

—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/godotengine/godot/issues/4826#issuecomment-353174446,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AA7L02ZNbI092T0bSjxrrHJYHTeaeySlks5tCW6OgaJpZM4Inqav
.

Unity has commercial assets that import SVG as meshes very nicely (see e.g. https://www.assetstore.unity3d.com/en/#!/content/38258). I think even a minimal subset of SVG supporting paths and flat colors would be immensely useful.

For anyone interested, see https://github.com/poke1024/godot_svg_plus

@poke1024 what is the different with current SVG rasterizer?

@eon-s That it's not only a rasterizer, but now gives you the option to import SVGs as tessellated polygons - no more textures and sprites.

I've also written this in the SVG workaround issue but: I would LOVE full svg support! I've been waiting for years for a good game engine that supports 2D vector art!!! All my art is vector based and since steve jobs killed flash there has been no alternative. Almost no game engine supports svgs, especially animated ones. There are a lot of flash artists and gamedevs out there that still are looking for an alternative. Vector based games look awesome and are perfectly scalable. 2D Vector sprites can be any size!!! They always look perfect and it reduces a games size very drastically. I really loved flash games and animations. If you combine the visual scripting with a good timeline editor that has an Abobe Flash like feel I can guarantee that you will gain everyone from the flash scene. (which is really huge btw.) I've kind of given up and just convert my art in pngs now but I hate doing this!!!! God damn shitty outdated raster crap!!! If I weren't so poor I'd throw a lot of money at you to implement svg support! Creating assets animating them and implementing code in one software. Those where the times T_T Sry for ranting, I kinda started late, learned a lot of flash pro and had to witness it's decline just when I had learned for a couple of years and was ready to get going.....

Kicking to 3.2

What is status? Could semi proper svg support added in time for 3.2?

Could use https://github.com/poke1024/godot_vector_graphics for when c++11 starts getting added in for Godot 4.0

Godot 3.0 will support 2D meshes, so this should cover it

Cool, if this can be added to Godot 3.2, as we are close to it now. I mean svg import as 2D meshes.

Could use https://github.com/poke1024/godot_vector_graphics for when c++11 starts getting added in for Godot 4.0

I could not compile this on my machine, ubuntu 16.04.

vector meshes will come for 3.1, so will kick to that milestone instead

But only for 3D, not for 2D.

@michaelsjackson Godot has a 2D mesh implementation since 3.1. It's just that nobody has implemented SVG -> mesh conversion yet (it's not exactly easy, especially when curves are involved).

Also, please keep the conversation on-topic and report issues related to the module on the module's repository :slightly_smiling_face:

Not sure how the above module implementation works, but it would kind of work, if I could compile it, why not this is imported into godot officially?

I think it is about imporing swf on editor not for the exported templates, so if it works i guess i can be offical.

Not swf, only svg.

Feature and improvement proposals for the Godot Engine are now being discussed and reviewed in a dedicated Godot Improvement Proposals (GIP) (godotengine/godot-proposals) issue tracker. The GIP tracker has a detailed issue template designed so that proposals include all the relevant information to start a productive discussion and help the community assess the validity of the proposal for the engine.

The main (godotengine/godot) tracker is now solely dedicated to bug reports and Pull Requests, enabling contributors to have a better focus on bug fixing work. Therefore, we are now closing all older feature proposals on the main issue tracker.

If you are interested in this feature proposal, please open a new proposal on the GIP tracker following the given issue template (after checking that it doesn't exist already). Be sure to reference this closed issue if it includes any relevant discussion (which you are also encouraged to summarize in the new proposal). Thanks in advance!

Was this page helpful?
0 / 5 - 0 ratings