feat: integrate Draco compression for 3D models in backoffice
- Added support for uploading and compressing GLB models using Draco in the backoffice. - Implemented commands for importing and re-compressing 3D models. - Updated model resource to handle 3D model uploads and validations. - Introduced a new script for compressing GLB files with Draco. - Modified Vite configuration to remove GLB files from the build output. - Updated package dependencies to include GLTF-transform libraries for handling 3D models. - Added tests to ensure proper functionality of 3D model handling and compression.
This commit is contained in:
@@ -4,6 +4,7 @@ namespace App\Http\Controllers\Api;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Support\Configuratore\Media;
|
||||
use App\Support\Configuratore\Modelli3d;
|
||||
use Illuminate\Support\Facades\Storage;
|
||||
use Illuminate\Support\Str;
|
||||
use Symfony\Component\HttpFoundation\BinaryFileResponse;
|
||||
@@ -12,7 +13,7 @@ class MediaController extends Controller
|
||||
{
|
||||
/**
|
||||
* GET /api/media/{percorso}
|
||||
* Immagini del configuratore dal disco public, con gli header CORS dell'API (necessari
|
||||
* Immagini e modelli 3D (compressi) del configuratore dal disco public, con gli header CORS dell'API (necessari
|
||||
* alle texture WebGL caricate da un'altra origine).
|
||||
*/
|
||||
public function __invoke(string $percorso): BinaryFileResponse
|
||||
@@ -26,8 +27,11 @@ class MediaController extends Controller
|
||||
404
|
||||
);
|
||||
|
||||
// I modelli 3D hanno l'hash del contenuto nel nome: un nuovo caricamento cambia URL.
|
||||
$modello3d = Str::startsWith($percorso, Modelli3d::CARTELLA_DRACO.'/');
|
||||
|
||||
return response()->file($disco->path($percorso), [
|
||||
'Cache-Control' => 'public, max-age=86400',
|
||||
]);
|
||||
'Cache-Control' => $modello3d ? 'public, max-age=31536000, immutable' : 'public, max-age=86400',
|
||||
] + ($modello3d ? ['Content-Type' => 'model/gltf-binary'] : []));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user