Please have a look at this link, it’s edited and published by playcanvas,
Why can’t I find any glb file in this link?
but it has lots of *.btx file looks like models
I’d like to publish and host a project on the web, but I don’t want the users find the glb file and download them.
So this link looks very useful to me, it let the visiters just view the 3D in an internet navigator but can’t find the 3D model(like glb) and download them.
How can I do that?
Looks like they encrypted the model files with a salt hash and decrypted it client side.
Do you please have any guide to me to achieve this effect?
The way I would this is to run a script on a downloaded build that would parse the config.json (which is effectively the asset registry), find all the model/container assets, find and convert the GLBs via the URL path and encrypt them with something.
You would also need to patch or use your own fork of the engine that would decrypt the GLB on the container/model resource handler after download and before using it in the engine.
There are still issues with this method. As you are decrypting client side, its still possible to get that data relatively easily and there’s also the performance cost of decrypting large files on the user side.
The developers may have also just used their own format for models making it harder fro someone else to use them.
Thank you, we will try it that way.
Had a closer look and it seems like they have their own fork of the engine that adds support of BTX file type which is encrypted using a library.
They’ve also obfuscated the code that does the decryption to make it harder to get the data out.
It also looks like they use: Web Crypto API - Web APIs | MDN with a SALT value