7

主に three.js を使用して、webGL について少し学びました。.obj ファイルを読み込んで、3D で描画します。

www.mydomain.comのようなものでプロジェクトをオンラインにしました

人々が私のソース コードをブラウザで閲覧することは気にしませんが、私が示している .obj ファイルは、他人に譲渡したくない人からのものです。

私はこれに関してまったくの初心者です。

私のソース コードは誰でも利用できるので、.obj ファイルも誰でも利用できると思います。誰もダウンロードできないように隠したり保護したりすることはできますか?

4

3 に答える 3

8

Javascript / WebGLでファイルにアクセスして使用したい場合は、ファイルを保護できないと確信しています。ブラウザ/JavaScriptで表示できるようにするには、ある時点でそれらを使用可能な形式に解析する必要があります。2つのオプションがあります。

1)難読化。結局、誰かがFirebugや他のツールを使用して、ファイルのいくらか有用な表現にアクセスできるため、これはあまり良いオプションではないと思います。サーバー側でデータを暗号化またはスクランブリングし、Javascriptでデータを再構築することで、作業を少し簡単にすることができます。または、ファイルをロードして表現するために型破りな方法を使用するだけです。

シェーダーコードでデコード/復号化を行うこともできますが、これは盗むのが1ステップ難しくなります。しかし、それはおそらくテクスチャにのみ当てはまります。

2)ファイルの有用性を低下させます。誰かがあなたのOBJファイルを再利用するために、彼らはおそらくモデルを彼らの選んだソフトウェアにインポートして何かをしたいと思うでしょう。これを防ぐことはできませんが、ファイルの操作を容易にする余分な情報をファイルから取り除くことはできます。これにより、潜在的な泥棒にとってファイルはあまり望ましくなくなります。

私はまったく別の理由でそれを行っていますが、WebGLの主な用途は、SketchupからColladaにモデルをエクスポートし、それらをWebGLで表示することです。私のエクスポートコードはいくつかのことを行いますが、副作用として、エクスポートされたモデルを操作するのが面倒になります。これには、すべてのコンポーネントインスタンスを一意にする(インスタンス化を解除する?)、すべてのコンポーネントとグループをプレーンジオメトリに展開する、すべての面を三角形分割する、非表示のジオメトリを削除するなどが含まれます。

元のファイルなしで編集するためにSketchupに戻すPITAになります...特に、私が使用するモデルは、本質的にコンポーネントとグループのインスタンス化に大きく依存しているためです。しかし、それでも、誰かが「現状のまま」ジオメトリを盗むことを妨げるものは何もありません。

于 2013-01-02T12:58:17.550 に答える
2

他の回答を参照してください。ただし、これは WebGL に固有のものではありません。どの言語のどのプログラムにもこの問題があります。データがユーザーのコンピューター、電話などにあると、人々はデータを取得できます。例:

  1. iOS アプリのデータの読み取り
  2. ネイティブ PC アプリのデータの読み取り

一方、上記のテクニックに従うことができます。独自のフォーマットを使用してください。レンダリングに最適なようにデータをマッサージします。これは通常、編集には適していません。

もちろん、gmail、facebook、google docs などでログインが必要なのと同じように、最初にファイルを読むために誰かがあなたのウェブサイトにログインする必要があるようにすることもできます。サインアップすると、ファイルを取得できなくなるわけではありませんが. アプリだけがファイルをダウンロードできるようにサーバーをセットアップすることもできます。繰り返しになりますが、アプリがファイルをダウンロードした後 (またはブラウザー拡張機能を介して JavaScript を挿入した後) に、ユーザーがファイルを取得するのを防ぐことはできませんが、データに直接リンクしている他のサイトから帯域幅が盗まれるのを防ぐことができます.

于 2013-01-03T17:08:57.440 に答える
2

誰かがブラウザにダウンロードできる場合、それはユーザーのコンピュータにあります。

ファイルの読み取りを難しくすることはできますが、.obj データの取得が遅くなるだけです。やろうと思えば、いつかやれる。復号化キーは常にクライアント コンピューター上にある必要があります。したがって、プロセスを遅くすることしかできません。したがって、質問は、「.obj 読み取りコードを作成するのはどのくらい難しく、どのくらい複雑になりたいですか? また、努力する価値はありますか?」ということになります。ファイルの先頭に 1 バイト追加するだけで、モデリング ソフトウェアでファイルが開かないようにすることができます。

インターネットがどのように機能するかを誰かに教育し、それを行うことは不可能である、または試みる価値がないことを簡単に伝え、自作の実装を考え出してデータの読み取りをより困難にする方法を考え出すことをお勧めします。

于 2013-01-02T13:19:25.737 に答える