Minify or decrease size of blender exported babylon format files

I am new here, just started working on babylonjs a month ago, got no modeling, designing or game development history was just curious enough to get in here and was getting things done. I am making my 3D portfolio using babylonjs almost getting towards the end of it but something just got me worried, that I am getting almost 50+ MB of downloading, addition of multiple babylon files exported through blender, using babylon export, Image attached.


What I am getting through these files?, well I used some SVGS (like logos), by using extrude shape made them 3D and just using them straight up. The text files contain some text which I wrote in illustrator converted it to SVG and same process as above.
Am I doing something wrong ? is there any better way to do it
Pardon my noobness, please help me out here
Thankyou :slight_smile:

This is a pretty interesting art question, and you could use things like draco to compress your mesh data for instance. The thing is usually the server should gzip them as well to make it all smaller.

Adding @PatrickRyan and @bghgary who are way more knowledgeable than me in this area :slight_smile:

how much these compressions gonna affect my models ? plus I was going through some websites of babylonjs, what i noticed it people using glb format and getting things under few MBs
for instance


this car is pretty much detailed than what I am working on
what I concluded from that is if I dont need camera and scene and only need meshes, is it better to do things using glb format ?

here is an example of what text.babylon is carrying inside


This + a paragraph and 2 more small text lines like this.

Welcome to BJS and a happy && healthy 2021.
A portfolio with BJS, a nice idea (especially just after finally burying Flash just lately - died dec 2020;)
May be you should use another approach to illustrate some parts of your portfolio.
Clearly this text.babylon is not something worth the weight of importing a model. It can be reproduced natively in BJS within 15min (5 for a skilled dev) and up to say 2-3 hours for a total noob (+ you can learn the bases of creating native objects in BJS). The result will be much better + you will also discover many tweaks and twists to make it look even much… just much better.
If you want to go BJS (like I did same period a year ago), take some time to go through the 101 and 201 of the doc and the playground examples. This would be my advise.

And then converting a text using extrude shape doesn’t seem like a good idea to me (for any framework).

EDIT: May be start with this for your #text.babylon

https://playground.babylonjs.com/#PL752W#150

Happy discovery of the power of BJS. I have been amazed. Will you?

Edit 2: If you choose to go along with BJS in 2021, know that the ‘snippets’ and the ‘playground’ are from now on your best friends. When you communicate about a topic, it is good to try refer to a playground example. Snippets lets you save a state (immutable) for playground and nodes (and more…). It’s cloud without the disadvantages of cloud. The other UNIQUE advantage of BJS is the playground. Use it to try your code, save your attempts and communicate with the community and admins.

3 Likes

Hey @mawa Thankyou for your time
I actually started with Mesh Writer but when I had to do something like long paragraph I felt like it was not the right method, additionally I imported some logos like this


into my website (by that same extrude mesh method) and followed the convention for rest of the text as well.
rest of the text =
text aside I just set my website to live and right now it is taking almost forever to load even these logos and icons I imported the same way, I am still not sure how am I supposed to compress it without ruining it or is there any alternative method to do it ?

EDIT : I am even using mesh writer at some points of the web.
EDIT : url of live website just incase : https://www.thedevshezzy.com

If you are talking about Blender, regardless about which export format, you get enormous mileage from reducing your geometry & texture sizes PRIOR to export. All compression does is reduce transmission time. If you have 5 million triangles and or a bunch of 4k x 4k textures, forget mobile. Compressing it will just mean you fail earlier.

For 3D Text meshes, unless you need to be able to see them from the back, edit them and delete the faces on the back.


The next thing to do is dissolve some vertices, using Limited Dissolve. This operator works on the current selection, so you probably want to do it on 1 a character at a time. Select all the vertices for a given character. Make sure you are in X-Ray mode, so you get them all. Limited Dissolve is found on the ‘X’ menu.

After you run it expand the details in the bottom left of the window. I would change to delimit by UV’s. You can change the max angle to adjust how much gets dissolved on. This probably varies by character what gets you the most bang without degrading too much. Remember, no one but you is not going to see the original, so it is going to feel worse getting rid of some smoothness. No one else knows.


Now that you have smaller geometry, delete the UV that gets generated, unless you are going to use a material with a texture. 100% reduction @ 0 cost, when you are not using it.



For a .babylon file, which is a text file, make sure you are deploying on a web server with .babylon mime type defined. That way the server knows that it can use gzip transmission. You can get about a 70% transmission reduction. I have not done this, search for more.


You can also change the number of digits to export as with the .babylon exporter. Default for vertices is 4. Drop it down, & see if you can even notice.

3 Likes

One thing I have not tried, and cannot do now since doing a large backup to cloud (to celebrate new year’s, pathetic). That is just change the extension from .babylon to .json. Think it will load, and it is highly to be gzipped.

Very few people these days have the access to .mime types on a web server. While it might be a bad example, since Microsoft now owns Github, but if you were going to do a Github.io site, the chances of you changing this are zero.

2 Likes

I started minimizing stuff myself, realized I can type text in blender (newbie), it did decrease size a little bit, later on found an option called “Resolution Preview U” decreasing that did made huge affect on size, did realize the UV part was already deleting UVs since I am not using any texture on materials after using all of this I minimized 1.7MB file to 700KB (success). Would have never known this limited dissolve thing, Thankyou soo much for that
I was not able to understand this part
“You can also change the number of digits to export as with the .babylon exporter. Default for vertices is 4. Drop it down, & see if you can even notice.”
can you help me understand it
Thankyou again :smiley:

I have gotten better results when using Limited Dissolve when delimiting by UV, so deleting UV’s later in the workflow might be good.

The exporter has a number of Custom property section. The one for World has number of digits. This is not a current picture that I made for a different reason, but shows the Max Decimal Precision section

2 Likes

Alright so I just minimized that 27 MB file to 1.9MB yayyyy !!! \o/
credit goes to you @JCPalmer Thankyou soo much


image
Method I followed

  1. Type text .
  2. Decrease Resolution Preview U till text is decent enough to read.
  3. Convert it to mesh.
  4. Remove all the back faces.
  5. Use limited Dissolve till it is decent and not ruining the text.
  6. Decrease Position shape keys of Babylon exporter to minimum.
2 Likes

In case you have multiple objects in your scene make sure to select ‘selected Objects’ on exports
, to only export the selected objects.

The Babylon exporter excludes objects on a collection basis. Objects in a disabled collection are ignored.

1 Like

i’ll keep that in mind :slight_smile:

Yes, it might not be the right method for long paragraph. To be honest, I didn’t even try it. But there are many other methods (in & out of BJS) and I can see that you found some yourself with the help of @JCPalmer (thanks for input on blender export/import: I will keep this on the side for further needs).

In between time, I visited your website. Thanks a lot for sharing. I love the idea of a museum. An idea we had already explored with Unity in 2009!

May be I should wait for an update before commenting.
As a creative and art director, my comments would likely be based on the user experience and reaching your targets. In this aspect, I would have many comments. As a long time hardcore gamer that also created dozen of UIs, it took me already all the time I had (5+ min) just to be able to understand how to interact and access the content. Next, I believe that the 3D rendering of the long paragraph has no purpose here. It only distracts from understanding the content (which is not something you want - or may be you do… because, you should review this content… or better said, have someone with native english writing skills review the content). In short, it’s never recommended to do your own com because the thing always turns ‘emotional’ (vs performance/consistency). You are claiming some pretty impressive level skills on a large variety of code and architecture (if those are true I might be interested working with you on a later project). But the way you show it in this portfolio just right now, does not reflect this in the eyes of a PM. Make it simple, make it beautiful ! less is more. That would be my recommandation (you can make of it whatever you want, all my clients do this;)

1 Like

Just one more side note on #scaling. When moving (in 1st person cam), I feel like a dwarf or a pet. 2 reasons for this.
My advise:

  1. Move the camera up a little (about 25%).
  2. Scale the floor tiles.
    Happy coding and let me know when you have an update (if you want). I’ll happily take another 5min (the average time a PM or PMO or HR would invest) to check it out.
    Also, of course, feel free to decline. Again, this is just my opinion only.
    Have a great day,
1 Like

And a final note for #recruitment, after reading your content.
Understand that we are living changing times but still based on the old methods (for #hr, for #governance, for #mgmt).
You have to be careful of what you are claiming. And even if true, you have to stay humble.
I’m quite sure, I could challenge you on your level of knowledge for one or the other (code/architecture).
Especially those with up to nearly 100%. I have been using photoshop since the beta we smuggled on disquettes from the US 3 decades ago.
I must have 2 or 3 years of life (24/24h) spent only on photoshop, but I still don’t feel like claiming a 90%+ skill level on the program, simply because when you go ‘procedural’, We humans are not up to the challenge (or the number of possible outputs).
I guess when making a portfolio (or any project), you have to focus on your objective and target(s).
Else, this will just remain a ‘personal’ project.

Cya,

1 Like

Thankyou soo much for your time and suggestions
I had plans of creating interactions with most part of my website, and had my deadline set to new year, for certain circumstances I was not able to complete it. All of this was a part of my experiment + I am way to newbie to this 3D World, never have worked before, never have researched before, just jumped right into it.
I do agree to all of the things you mentioned above, I have always lacked in designing part, I don’t get cool ideas :frowning: , the help part was supposed to be way more interactive and different but because I had to revamp models + had to work on rendering quality part I was not able to do that as well, but for the future I am definitely gonna keep your word and will create better startup guide. Yes I have been working on backend for like 4 years I guess, typical frontend with strong backend was used to be my thing, wanted to change things for me so I dived in here. Will definitely try to create different visual representation of my skills.
I actually started with this spider roof at first (0 plans) had to increase wall size because of content, will surely scale up and down things here
I had completely different perspective while making this skills part, but I guess with your comment on it I need to improve it already.
Thankyou soo much again, it is nice to have feedback of someone this experienced, your feedback helped me notice bunch of things.
Should I ping you here incase I want to request for review or want to ask you something ?

No worries, I’m here and I have committed myself to be here in 2021. Feel free to ask and share. And then, again, feel free to take from my comments whatever part you think can nurture your thinking (and leave the rest). Overall, I guess what I’m trying to say is you have to do things in order: First find a purpose then identify your targets, next imagine a strategy/tactic and finally build on it and deploy. It is way too easy to loose time in the digital (and loose your way) if you don’t focus on your purpose and objective.

2 Likes

Yup I had no plans, I was just experimenting before but this time I will start with pen and paper before going into it completely. Thankyou for all the guidance you have provided.