Draco is a library for compressing and decompressing 3D geometric meshes and point clouds. It is intended to improve the storage and transmission of 3D graphics.
im using Draco to encode and decode my meshes. But Draco does not support to WebGL #436 . However, Draco supports javascript. And is that possible to run the Draco javascript decoder inside the unity? that is my .jslib file under the assets/plugin
mergeInto(LibraryManager.library, {
DecodeMesh: function (byteArray) {
<script src="https://rawgit.com/google/draco/master/javascript/draco_decoder.js"></script>
'use strict';
let dracoDecoderType = {};
const dracoModule = DracoModule(dracoDecoderType);
const decoder = new dracoModule.WebIDLWrapper();
const buffer = new dracoModule.DecoderBuffer();
buffer.Init(byteArray, byteArray.length);
let outputGeometry = decoder.DecodeMeshFromBuffer(buffer);
alert('Num points = ' + outputGeometry.num_points());
dracoModule.destroy(outputGeometry);
dracoModule.destroy(decoder);
dracoModule.destroy(buffer);
},
});
and my script:
public class caller : MonoBehaviour
{
[DllImport("__Internal")]
private static extern void DecodeMesh(byte[] array);
void Start()
{
array1= "array to decoded"
decodeMesh(array1);
}
}
When I try to build for webGL I get the following errors:
Failed running "C:/Program Files/Unity/Hub/Editor/2019.3.10f1/Editor/Data/PlaybackEngines/WebGLSupport\BuildTools\Emscripten_Win\python\2.7.5.3_64bit\python.exe" -E "C:/Program Files/Unity/Hub/Editor/2019.3.10f1/Editor/Data/PlaybackEngines/WebGLSupport\BuildTools\Emscripten\emcc" @"C:\Users\alitokur\Desktop\js\Assets\..\Temp\emcc_arguments.resp"
stdout:
stderr:JS optimizer error:Unexpected token: name (dracoDecoderType) (line: 2099, col: 12, pos: 86653)================================ GLctx.bindTexture(GLctx.TEXTURE_2D, GL.textures[texture]); } function _DecodeMesh(byteArray) { // Create the Draco decoder. let dracoDecoderType = {}; ^================================C:\Program Files\Unity\Hub\Editor\2019.3.10f1\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\Emscripten\tools\eliminator\node_modules\uglify-js\lib\parse-js.js:282 throw new JS_Parse_Error(message, line, col, pos); ^Error at new JS_Parse_Error (C:\Program Files\Unity\Hub\Editor\2019.3.10f1\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\Emscripten\tools\eliminator\node_modules\uglify-js\lib\parse-js.js:260:22) at js_error (C:\Program Files\Unity\Hub\Editor\2019.3.10f1\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\Emscripten\tools\eliminator\node_modules\uglify-js\lib\parse-js.js:282:15) at croak (C:\Program Files\Unity\Hub\Editor\2019.3.10f1\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\Emscripten\tools\eliminator\node_modules\uglify-js\lib\parse-js.js:752:17) at token_error (C:\Program Files\Unity\Hub\Editor\2019.3.10f1\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\Emscripten\tools\eliminator\node_modules\uglify-js\lib\parse-js.js:760:17) at unexpected (C:\Program Files\Unity\Hub\Editor\2019.3.10f1\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\Emscripten\tools\eliminator\node_modules\uglify-js\lib\parse-js.js:766:17) at Object.semicolon (C:\Program Files\Unity\Hub\Editor\2019.3.10f1\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\Emscripten\tools\eliminator\node_modules\uglify-js\lib\parse-js.js:786:51) at prog1 (C:\Program Files\Unity\Hub\Editor\2019.3.10f1\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\Emscripten\tools\eliminator\node_modules\uglify-js\lib\parse-js.js:1325:29) at simple_statement (C:\Program Files\Unity\Hub\Editor\2019.3.10f1\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\Emscripten\tools\eliminator\node_modules\uglify-js\lib\parse-js.js:917:35) at C:\Program Files\Unity\Hub\Editor\2019.3.10f1\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\Emscripten\tools\eliminator\node_modules\uglify-js\lib\parse-js.js:827:35 at block_ (C:\Program Files\Unity\Hub\Editor\2019.3.10f1\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\Emscripten\tools\eliminator\node_modules\uglify-js\lib\parse-js.js:1010:32)ERROR:root:'C:/Program Files/Unity/Hub/Editor/2019.3.10f1/Editor/Data\Tools\nodejs\node.exe --stack_size=8192 --max-old-space-size=4096 C:\Program Files\Unity\Hub\Editor\2019.3.10f1\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\Emscripten\tools\js-optimizer.js C:\Users\alitokur\AppData\Local\Temp\tmpiqi8rq\build.bc.o.js.pp.js.mem.js noPrintMetadata AJSDCE minifyWhitespace' failed
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)
im using Draco to encode and decode my meshes. But Draco does not support to WebGL #436 . However, Draco supports javascript. And is that possible to run the Draco javascript decoder inside the unity? that is my .jslib file under the assets/plugin
and my script:
public class caller : MonoBehaviour { [DllImport("__Internal")] private static extern void DecodeMesh(byte[] array);
}
When I try to build for webGL I get the following errors: