GLB ScreenShoter

When you’re dealing with hundreds or even thousands of GLB files , manually uploading and capturing screenshots becomes inefficient and time-consuming. GLB ScreenShoter batch processing automates this workflow, enabling:

  • Time savings: Generate hundreds of previews in minutes.
  • Consistency: Apply uniform lighting, camera angles, and resolution across all outputs.

Upload and preview your 3D models. Simply drag and drop GLB files or click to select them. A screenshot will be automatically generated for each model. One may change background color, opacity and screenshot size in Settings.Download reports in HTML or PDF or zip-archive with all screenshots.

This tool is particularly useful for developers, designers, and content creators who need to quickly generate preview images of 3D models without setting up a full 3D engine environment.

Whether you’re preparing assets for a game, showcasing products online, or building a portfolio, this tool can save time and streamline your creative process.

More settings and functions will follow, suggestions are welcome!

14 Likes

Great work @labris! Works well.

1 Like

This is pretty cool! Agreed that having an easy way to generate consistent screenshots (size, angle, background…) across models is a really nice time saver :slight_smile:

1 Like

Definitively useful :+1: I indeed have reached the point where I lose track of the 3d models in my current project :open_mouth:

So fyi, my use case is cataloging assets.


Got some feature requests if you do not mind:

  1. Allow directories to be dragged in (apparently this is possible according to google). Currently, I have models spread over 37 (sub-)dirs. So it would be very useful if I could drag and drop the root folder.
  2. Allow filtering of file name (regex?). E.g.: For some models I use an actualModel.glb and anActualModel_ext.glb. The latter contains stuff like simplified bounding boxes or destruction cells for which I do not need a screenshot. (This is only useful when drag and dropping directories)
  3. Display model directories as well or even display in actual categories.
    3.1 Embed the model path (or maybe only the last 2 subdirs, idk) in the screenshot file name
    Points 3 are just for convenience so that the web view or the file name shows you instantly where the model is located.

That was my initial motivation :slight_smile:

Sure, directory handling and reporting is possible. I believe I’ll add a separate mode for it, in order not to deal with some browsers which have poor support (or its own syntax) for directories dragging.
Also, the report in this case should be done a bit in another way to be more informative.

Later I am planning to add some model stats, currently testing this feature.

1 Like

Is it too early for bug reports? Sometimes the preview pics seem to be unlit (or so):

In case of the 3 wooden planks, the 3rd one should like the other two. If I click the preview, it renders just fine.

I should mention that I drag&dropped the whole directory of 41 files. Maybe some sort of shader readiness issue or so?

There also is some console warnings:

console log
WEBGL_debug_renderer_info is deprecated in Firefox and will be removed. Please use RENDERER. index-COPEEpL7.js:282:24587
BJS - [12:15:37]: Babylon.js v6.49.0 - WebGL2 2 index-COPEEpL7.js:274:1482
BJS - [12:15:39]: Babylon.js v6.49.0 - WebGL2 2 index-COPEEpL7.js:274:1482
BJS - [12:15:40]: Babylon.js v6.49.0 - WebGL2 index-COPEEpL7.js:274:1482
BJS - [12:15:41]: Babylon.js v6.49.0 - WebGL2 index-COPEEpL7.js:274:1482
BJS - [12:15:42]: Babylon.js v6.49.0 - WebGL2 2 index-COPEEpL7.js:274:1482
Loading progress: 100.00% index-COPEEpL7.js:6739:243398
BJS - [12:15:43]: Babylon.js v6.49.0 - WebGL2 index-COPEEpL7.js:274:1482
BJS - [12:15:44]: Babylon.js v6.49.0 - WebGL2 index-COPEEpL7.js:274:1482
BJS - [12:15:45]: Babylon.js v6.49.0 - WebGL2 2 index-COPEEpL7.js:274:1482
Loading progress: 100.00% index-COPEEpL7.js:6739:243398
BJS - [12:15:47]: Babylon.js v6.49.0 - WebGL2 2 index-COPEEpL7.js:274:1482
BJS - [12:15:48]: Babylon.js v6.49.0 - WebGL2 2 index-COPEEpL7.js:274:1482
Loading progress: 100.00% index-COPEEpL7.js:6739:243398
BJS - [12:15:50]: Babylon.js v6.49.0 - WebGL2 2 index-COPEEpL7.js:274:1482
BJS - [12:15:51]: Babylon.js v6.49.0 - WebGL2 index-COPEEpL7.js:274:1482
BJS - [12:15:52]: Babylon.js v6.49.0 - WebGL2 index-COPEEpL7.js:274:1482
BJS - [12:15:53]: Babylon.js v6.49.0 - WebGL2 2 index-COPEEpL7.js:274:1482
BJS - [12:15:54]: Babylon.js v6.49.0 - WebGL2 index-COPEEpL7.js:274:1482
BJS - [12:15:55]: Babylon.js v6.49.0 - WebGL2 index-COPEEpL7.js:274:1482
BJS - [12:15:56]: Babylon.js v6.49.0 - WebGL2 2 index-COPEEpL7.js:274:1482
BJS - [12:15:57]: Babylon.js v6.49.0 - WebGL2 index-COPEEpL7.js:274:1482
BJS - [12:15:58]: Babylon.js v6.49.0 - WebGL2 index-COPEEpL7.js:274:1482
BJS - [12:15:59]: Babylon.js v6.49.0 - WebGL2 2 index-COPEEpL7.js:274:1482
BJS - [12:16:01]: Babylon.js v6.49.0 - WebGL2 2 index-COPEEpL7.js:274:1482
BJS - [12:16:02]: Babylon.js v6.49.0 - WebGL2 2 index-COPEEpL7.js:274:1482
BJS - [12:16:04]: Babylon.js v6.49.0 - WebGL2 2 index-COPEEpL7.js:274:1482
BJS - [12:16:05]: Babylon.js v6.49.0 - WebGL2 index-COPEEpL7.js:274:1482
BJS - [12:16:06]: Babylon.js v6.49.0 - WebGL2 index-COPEEpL7.js:274:1482
BJS - [12:16:07]: Babylon.js v6.49.0 - WebGL2 2 index-COPEEpL7.js:274:1482
BJS - [12:16:08]: Babylon.js v6.49.0 - WebGL2 index-COPEEpL7.js:274:1482
BJS - [12:16:09]: Babylon.js v6.49.0 - WebGL2 index-COPEEpL7.js:274:1482
BJS - [12:16:10]: Babylon.js v6.49.0 - WebGL2 2 index-COPEEpL7.js:274:1482
WEBGL_debug_renderer_info is deprecated in Firefox and will be removed. Please use RENDERER. index-COPEEpL7.js:282:24587
BJS - [12:17:05]: Babylon.js v6.49.0 - WebGL2 index-COPEEpL7.js:274:1482
WebGL warning: generateMipmap: Tex image TEXTURE_CUBE_MAP_POSITIVE_X level 0 is incurring lazy initialization.
WebGL warning: generateMipmap: Tex image TEXTURE_CUBE_MAP_NEGATIVE_X level 0 is incurring lazy initialization.
WebGL warning: generateMipmap: Tex image TEXTURE_CUBE_MAP_POSITIVE_Y level 0 is incurring lazy initialization.
WebGL warning: generateMipmap: Tex image TEXTURE_CUBE_MAP_NEGATIVE_Y level 0 is incurring lazy initialization.
WebGL warning: generateMipmap: Tex image TEXTURE_CUBE_MAP_POSITIVE_Z level 0 is incurring lazy initialization.
WebGL warning: generateMipmap: Tex image TEXTURE_CUBE_MAP_NEGATIVE_Z level 0 is incurring lazy initialization.
WEBGL_debug_renderer_info is deprecated in Firefox and will be removed. Please use RENDERER. index-COPEEpL7.js:282:24587
BJS - [12:17:32]: Babylon.js v6.49.0 - WebGL2 index-COPEEpL7.js:274:1482
WebGL warning: generateMipmap: Tex image TEXTURE_CUBE_MAP_POSITIVE_X level 0 is incurring lazy initialization.
WebGL warning: generateMipmap: Tex image TEXTURE_CUBE_MAP_NEGATIVE_X level 0 is incurring lazy initialization.
WebGL warning: generateMipmap: Tex image TEXTURE_CUBE_MAP_POSITIVE_Y level 0 is incurring lazy initialization.
WebGL warning: generateMipmap: Tex image TEXTURE_CUBE_MAP_NEGATIVE_Y level 0 is incurring lazy initialization.
WebGL warning: generateMipmap: Tex image TEXTURE_CUBE_MAP_POSITIVE_Z level 0 is incurring lazy initialization.
WebGL warning: generateMipmap: Tex image TEXTURE_CUBE_MAP_NEGATIVE_Z level 0 is incurring lazy initialization.
WEBGL_debug_renderer_info is deprecated in Firefox and will be removed. Please use RENDERER. index-COPEEpL7.js:282:24587
BJS - [12:17:53]: Babylon.js v6.49.0 - WebGL2 index-COPEEpL7.js:274:1482
WebGL warning: generateMipmap: Tex image TEXTURE_CUBE_MAP_POSITIVE_X level 0 is incurring lazy initialization.
WebGL warning: generateMipmap: Tex image TEXTURE_CUBE_MAP_NEGATIVE_X level 0 is incurring lazy initialization.
WebGL warning: generateMipmap: Tex image TEXTURE_CUBE_MAP_POSITIVE_Y level 0 is incurring lazy initialization.
WebGL warning: generateMipmap: Tex image TEXTURE_CUBE_MAP_NEGATIVE_Y level 0 is incurring lazy initialization.
WebGL warning: generateMipmap: Tex image TEXTURE_CUBE_MAP_POSITIVE_Z level 0 is incurring lazy initialization.
WebGL warning: generateMipmap: Tex image TEXTURE_CUBE_MAP_NEGATIVE_Z level 0 is incurring lazy initialization.
WEBGL_debug_renderer_info is deprecated in Firefox and will be removed. Please use RENDERER. index-COPEEpL7.js:282:24587
BJS - [12:18:00]: Babylon.js v6.49.0 - WebGL2 index-COPEEpL7.js:274:1482
Loading progress: 100.00% index-COPEEpL7.js:6739:243398
WebGL warning: generateMipmap: Tex image TEXTURE_CUBE_MAP_POSITIVE_X level 0 is incurring lazy initialization.
WebGL warning: generateMipmap: Tex image TEXTURE_CUBE_MAP_NEGATIVE_X level 0 is incurring lazy initialization.
WebGL warning: generateMipmap: Tex image TEXTURE_CUBE_MAP_POSITIVE_Y level 0 is incurring lazy initialization.
WebGL warning: generateMipmap: Tex image TEXTURE_CUBE_MAP_NEGATIVE_Y level 0 is incurring lazy initialization.
WebGL warning: generateMipmap: Tex image TEXTURE_CUBE_MAP_POSITIVE_Z level 0 is incurring lazy initialization.
WebGL warning: generateMipmap: Tex image TEXTURE_CUBE_MAP_NEGATIVE_Z level 0 is incurring lazy initialization.
WEBGL_debug_renderer_info is deprecated in Firefox and will be removed. Please use RENDERER. index-COPEEpL7.js:282:24587
BJS - [12:19:51]: Babylon.js v6.49.0 - WebGL2 index-COPEEpL7.js:274:1482
WebGL warning: generateMipmap: Tex image TEXTURE_CUBE_MAP_POSITIVE_X level 0 is incurring lazy initialization.
WebGL warning: generateMipmap: Tex image TEXTURE_CUBE_MAP_NEGATIVE_X level 0 is incurring lazy initialization.
WebGL warning: generateMipmap: Tex image TEXTURE_CUBE_MAP_POSITIVE_Y level 0 is incurring lazy initialization.
WebGL warning: generateMipmap: Tex image TEXTURE_CUBE_MAP_NEGATIVE_Y level 0 is incurring lazy initialization.
WebGL warning: generateMipmap: Tex image TEXTURE_CUBE_MAP_POSITIVE_Z level 0 is incurring lazy initialization.
WebGL warning: generateMipmap: Tex image TEXTURE_CUBE_MAP_NEGATIVE_Z level 0 is incurring lazy initialization.

​

Thanks, I think I’ll add more readiness checks to be sure :slight_smile:

Let me know if it is better now :slight_smile: - https://screenshoter.babylonpress.org/

1 Like

Ohoh :open_mouth: It is still not working. :pleading_face: I tried the same files. It is different files though that look “unlit” and the display order is different, too (if that matters). The console log is similar, too.


Did some experimentaitons: I selected the 3 wood plank models and drag&dropped them into your app. I repeated this serveral times. I reloaded the browser in between trials. It consistently displayed the 1st plank (15x10) correct but the other 2 (15x25, 30x50) looked unlit again. Here is the files:
woodPlankModels.zip (3.8 KB)

Let me know if I can do anything else.


Wait, come to think of it: could it be something with the uv channel? Babylon defaults to the 1st. I use the 2nd channel for all my models. Hm, but then why do some models work…

1 Like

looks good to me

3D Models Report.zip (73.7 KB)

1 Like

I am using the Edge Browser.

The same result for me with Chrome.
I believe this is Firefox issue…
But probably it is a good idea to update Babylon version and have a look.
I’ll do some update soon.

1 Like

Thanks guys! Chrome it is :slightly_smiling_face:

1 Like