fix(ImageTo3D): enforce glb format in Meshy API payload
Build and Deploy / build-and-push (push) Successful in 46s
Build and Deploy / build-and-push (push) Successful in 46s
This commit is contained in:
@@ -0,0 +1,12 @@
|
|||||||
|
const fs = require('fs');
|
||||||
|
const fflate = require('fflate');
|
||||||
|
|
||||||
|
const zipBuffer = fs.readFileSync('indicav2.titanscene');
|
||||||
|
const unzipped = fflate.unzipSync(zipBuffer);
|
||||||
|
const sceneData = JSON.parse(new TextDecoder().decode(unzipped['scene.json']));
|
||||||
|
console.log('cameraProps:', sceneData.cameraProps);
|
||||||
|
console.log('modelData:', sceneData.modelData);
|
||||||
|
console.log('sceneObjects length:', sceneData.sceneObjects?.length);
|
||||||
|
if (sceneData.sceneObjects?.length > 0) {
|
||||||
|
console.log('Main model transform:', sceneData.sceneObjects[0].transformProps);
|
||||||
|
}
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
const fs = require('fs');
|
||||||
|
const fflate = require('fflate');
|
||||||
|
|
||||||
|
const zipBuffer = fs.readFileSync('newmodel.titanscene');
|
||||||
|
const unzipped = fflate.unzipSync(zipBuffer);
|
||||||
|
const sceneData = JSON.parse(new TextDecoder().decode(unzipped['scene.json']));
|
||||||
|
console.log('cameraProps:', sceneData.cameraProps);
|
||||||
|
console.log('modelData:', sceneData.modelData);
|
||||||
|
console.log('sceneObjects length:', sceneData.sceneObjects?.length);
|
||||||
|
if (sceneData.sceneObjects?.length > 0) {
|
||||||
|
console.log('Main model transform:', sceneData.sceneObjects[0].transformProps);
|
||||||
|
}
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
const fs = require('fs');
|
||||||
|
const fflate = require('fflate');
|
||||||
|
|
||||||
|
const zipBuffer = fs.readFileSync('model.titanscene');
|
||||||
|
const unzipped = fflate.unzipSync(zipBuffer);
|
||||||
|
const sceneData = JSON.parse(new TextDecoder().decode(unzipped['scene.json']));
|
||||||
|
console.log('cameraProps:', sceneData.cameraProps);
|
||||||
|
console.log('modelData:', sceneData.modelData);
|
||||||
|
console.log('sceneObjects length:', sceneData.sceneObjects?.length);
|
||||||
|
if (sceneData.sceneObjects?.length > 0) {
|
||||||
|
console.log('Main model transform:', sceneData.sceneObjects[0].transformProps);
|
||||||
|
}
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
const fs = require('fs');
|
||||||
|
const fflate = require('fflate');
|
||||||
|
|
||||||
|
const zipBuffer = fs.readFileSync('model.titanscene');
|
||||||
|
const unzipped = fflate.unzipSync(zipBuffer);
|
||||||
|
const sceneData = JSON.parse(new TextDecoder().decode(unzipped['scene.json']));
|
||||||
|
console.log('cameraProps:', sceneData.cameraProps);
|
||||||
|
console.log('modelData extension:', sceneData.modelData?.extension);
|
||||||
|
console.log('sceneObjects length:', sceneData.sceneObjects?.length);
|
||||||
|
if (sceneData.sceneObjects?.length > 0) {
|
||||||
|
console.log('Main model transform:', sceneData.sceneObjects[0].transformProps);
|
||||||
|
}
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -301,7 +301,8 @@ export const ImageTo3DModal: React.FC<ImageTo3DModalProps> = ({ isOpen, onClose,
|
|||||||
image_url: dataUrl,
|
image_url: dataUrl,
|
||||||
model_type: meshyModelType,
|
model_type: meshyModelType,
|
||||||
should_texture: meshyShouldTexture,
|
should_texture: meshyShouldTexture,
|
||||||
should_enhance_image: meshyEnhanceImage
|
should_enhance_image: meshyEnhanceImage,
|
||||||
|
target_formats: ['glb']
|
||||||
};
|
};
|
||||||
|
|
||||||
if (meshyModelType !== 'lowpoly') {
|
if (meshyModelType !== 'lowpoly') {
|
||||||
|
|||||||
@@ -403,6 +403,7 @@ export default function Editor() {
|
|||||||
if (sd.cameraPresets) setCameraPresets(sd.cameraPresets);
|
if (sd.cameraPresets) setCameraPresets(sd.cameraPresets);
|
||||||
|
|
||||||
if (sd.modelData && sd.modelData.data) {
|
if (sd.modelData && sd.modelData.data) {
|
||||||
|
setModelData(sd.modelData);
|
||||||
reImportModel(sd.modelData);
|
reImportModel(sd.modelData);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -992,6 +993,7 @@ export default function Editor() {
|
|||||||
|
|
||||||
// Re-load model if data exists
|
// Re-load model if data exists
|
||||||
if (data.modelData && data.modelData.data) {
|
if (data.modelData && data.modelData.data) {
|
||||||
|
setModelData(data.modelData);
|
||||||
reImportModel(data.modelData);
|
reImportModel(data.modelData);
|
||||||
}
|
}
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
@@ -5300,3 +5302,5 @@ export default function Editor() {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,9 @@
|
|||||||
|
const fflate = require('fflate');
|
||||||
|
|
||||||
|
const zipObj = {};
|
||||||
|
zipObj['model.glb'] = new Uint8Array([1, 2, 3, 4, 5]);
|
||||||
|
|
||||||
|
const zipped = fflate.zipSync(zipObj);
|
||||||
|
const unzipped = fflate.unzipSync(zipped);
|
||||||
|
|
||||||
|
console.log(unzipped['model.glb']);
|
||||||
+10
@@ -0,0 +1,10 @@
|
|||||||
|
const fs = require('fs');
|
||||||
|
const fflate = require('fflate');
|
||||||
|
|
||||||
|
const zipObj = {};
|
||||||
|
zipObj['model.glb'] = new Uint8Array([1, 2, 3, 4, 5]);
|
||||||
|
|
||||||
|
const zipped = fflate.zipSync(zipObj);
|
||||||
|
const unzipped = fflate.unzipSync(zipped);
|
||||||
|
|
||||||
|
console.log(unzipped['model.glb']);
|
||||||
Reference in New Issue
Block a user