Simple project encrypting 3d assets. Using GLTF as 3d model format. The encrypted object can still be rendered.
Useful if
- Your application must fetch data from public server
- You dont have control to the public server
- You want to manage access control to your data hosted in public server
Original 3d assets (Duck.gltf from gltf sample model)
There are 3 encryption method in this example :
-
Obfuscating the vertices by applying XOR operations against random number.
-
Obfuscating the vertex component by shuffling the vertex component index.
Although encrypting 3d assets secure the assets, user can still rip the assets using tools that can extract the data in GPU memory (which we have no control). Its like, if you show a video, people can still record it.
All is not lost though. There are ways to protect 3d asset from ripping tools. You can refer to how industries protect their video, audio, software from piracy.
You can view GLTF models using https://gltf-viewer.donmccurdy.com/