私は3Dデータを扱うためのWebアプリケーションを構築しており、各ユーザーに属する3Dデータをレンダリングしたいと考えています。 3Dファイル(.obj、.mtl、pngなど)はGCSに保存されており、ユーザーは自分の3Dファイルにしかアクセスできません。Google Cloud StorageのThree.jsでホストされているobjファイルとmtlファイルをロード
私は現在、three.jsを使用して3dファイルをレンダリングしようとしていますが、OBLoaderとMTLLoaderを使用してファイルをロードする良い方法を見つけることはできません。サーバーから静的コンテンツとしてファイルを提供すると、ロードとレンダリングが正常に機能しますが、GCSに格納されている非公開ファイルを読み込む方法が見つかりません。
私は問題が私のMTLファイルは、通常、このようになっていることである静的ファイルに
const mtlFile = "test.mtl";
const objFIle = "test.obj";
var mtlLoader = new THREE.MTLLoader();
mtlLoader.load(mtlFile, function(materials) {
materials.preload();
var objLoader = new THREE.OBJLoader();
objLoader.setMaterials(materials);
ObjLoader.load(objFile, function (object) {
object.position.z = 40;
scene.add(object);
}, onProgress, onError);
});
をロードするために、このコードを使用しています:それはtest.pngと呼ばれるファイルを指す。すなわち
newmtl default
Ka 1.00 1.00 1.00
Kd 1.00 1.00 1.00
Ks 0.00 0.00 0.00
Ns 20.00
illum 2
newmtl test
Ka 1.00 1.00 1.00
Kd 1.00 1.00 1.00
Ks 0.00 0.00 0.00
Ns 20.00
illum 2
map_Ka test.png
map_Kd test.png
。基本パスを設定することができます。もし私がここで動作するURL http://example.com/test.pngを使ってファイルを提供できれば。
ただし、ファイルを作成したユーザーのみがファイルにアクセスできるようにしたいとします。私はきれいに再生する方法を見つけることができません
:私はGCSでtest.pngを主催している場合、私はこのようになります署名のリンクを得ることができますOBJ/MTLローダー
だから、どのようにこれを解決するためのヒント?ユーザーにのみ接続されているファイルを処理するファイルプロキシを作成する必要がありますか?
Btw。自分のユーザーデータベースと認証をホストしているので、ユーザーのGoogleアカウントに接続していません。