是否可以隐藏/保护webGL中使用的数据?

mth*_*pvg 6 javascript hosting webgl three.js

我主要使用three.js学习了一些webGL.我加载.obj文件,然后用3D绘制它们.

我已将我的项目放在网上,例如:www.mydomain.com

我不介意人们通过他们的浏览器查看我的源代码,但我展示的.obj文件来自不想放弃它们的人.

我是一个关于这一点的新手.

由于我的源代码可供所有人使用,我猜测.obj文件也可供所有人使用.那么是否可以隐藏或保护它们以便没有人可以下载它们?

yak*_*aku 7

如果你想在Javascript/WebGL中访问和使用它们,我很确定你无法保护任何文件.它们需要在某些时候被解析成可用的格式,以便浏览器/ javascript能够显示它们.您有两种选择:

1)混淆.我不认为这是一个非常好的选择,因为最终有人可以使用Firebug和其他工具来访问文件的某些有用的表示.您可以通过加密或加扰数据服务器端并在Javascript中重建内容来使其变得容易一些.或者只是使用非常规方式来加载和表示文件.

您还可以在着色器代码中进行一些解码/解密,这将更难以窃取.但这可能只适用于纹理.

2)使文件不那么有用.对于某人重用您的OBJ文件,他们可能希望将模型导入他们选择的软件并执行某些操作.您无法阻止这种情况,但您可以删除使文件更易于使用的额外信息文件.这将使文件不太适合任何潜在的小偷.

我这样做的原因完全不同,但我主要使用WebGL涉及将模型从Sketchup导出到Collada,并在WebGL中显示它们.我的导出代码做了一些事情,作为副作用使导出的模型很难处理.这包括使所有组件实例都是唯一的(去实例?),将所有组件和组爆炸成普通几何体,对所有面进行三角测量,删除隐藏的几何体等.

将PITA带回Sketchup进行编辑而不使用原始文件...特别是因为我使用的模型本质上很大程度上依赖于组件和组实例.但是,没有什么能阻止某人"按原样"窃取几何体.