-
-
Notifications
You must be signed in to change notification settings - Fork 35.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Loaders #5524
Comments
Very extensive list ! |
Most of these loaders are more important for special cases such as an editor, because for let's say games it might be better to convert into the three.js format straight away, right? In these cases the converters/exporters are more important. |
We've tested glTF as a replacement for three's formats as an optimization - there the data is binary and can be compressed with geom compression.
|
@kaosat-dev Added to the list! |
I am also looking for a IGES loader. I would even maybe start building one myself but not sure where to start. |
how about adding 3DM (used by Rhinoceros) to the list? |
@nyaaao added. thanks! |
About 3DS Loader : Hi everyone, long time ago, I needed to make a 3DS loader for 3DzzD Web 3D engine, that was a little hard to do... not difficult to obtain some first results but rather to handle all the chunks correctly, but after some times I managed to produce a pretty efficient loader. the 3DS file format spécifications are difficult to find, but I finished to find one that worked pretty well. I 've built the loader for 3DzzD with this documentation and it works even better than the one in the current photoshop (better handle on pivot/smooth groups/scale/ keyframe/etc...), so here is the spécifications I have used (3DzzD source code is opensource and may help but code is really ugly... a ten years old project...) http://dzzd.net/3DSChunkDefinitions.html About OBJ Loader : I modified the current OBJ loader and get about at least 10/15 FPS more on a lot of 3d models, but for now I did not found how I should do to post these changes ? The problème was mainly due to the fact that the current OBJ loader create too many objects (more than the original 3d model, one object created at each material change) and also the 3dFaces with same material was not groupped together even within the same object, and was producing too many WebGL calls |
Thanks! Added to the first post.
Oh! Interesting. You mean the |
Yes,, to be more precise the "if ( /^usemtl /.test( line ) ) " block create a new object/mesh for each material switch, this ends with poor performance and a wrong objects hierarchy. I will post a simple test case showing the difference between both the current loader and the one modified (difference is mainly noticeable on mobile device) |
Here is the test case for the current loader and the one optimised : http://demo.dzzd.fr/threejs/OBJMTLLoaderTest/ EDIT: PS: If you wonder where the 3D model comme from :) |
Does anyone know about IGES. I could really use an IGES loader. If someone could just point me in a direction to start on how to build one? Or if there is one out there somewhere. I noticed the folks at http://www.3dfile.io/ and some of the other 3D visualization sites are using ThreeJS and allowing for IGES uploads. |
K3D.js (MIT license) has a parser for OBJ, 3DS, MD2 and Collada. http://k3d.ivank.net. See #3843. |
how about NIfTI for doctor? |
@jugl Do you have any information about the format? |
I really hope for the .m2 models, its a huge community arround. I would offer my help with model files etc. you can contact me for that case on skype: deexone . As hint from one lib developer http://bridge.net/ could be maybe used to transform his lib to js. |
Hey I have a BVH loader that parses through a BVH file and outputs a THREE.Skeleton and AnimationClip for easy use with the Mixer: Are there any guidelines on how the loader API should look like? |
* Adds a BVH Loader & example #5524 * bVHLoader example fixed empty mesh errors. * BVHLoader: replaced internal quaternions with THREE.Quaternion * added BVHLoader example to example files * removed arrow function notation * BVHLoader example: replaced example animation.
Hi there, 3MFLoader is missing in the list but already implemented. next: ASCLoader should be added to the list, and PR will be send in few days. Best regards, |
Updated! |
OpenCTM might be a good addition, since Autodesk is using it for their On Sun, Nov 13, 2016 at 6:33 AM Mr.doob [email protected] wrote:
|
I gave a try to an IFCLoader and how to say... This is quit impossible ! The whole code required to be able to parse correctly the IFC format is around 650 class files. (I know it because i did it). The loader will be 5 times bigger than the Threejs library. About spec if you want implement your own: http://standards.buildingsmart.org/IFC/RELEASE/IFC4_1/FINAL/HTML/ I could release my code, and some help on it would be cool. But don't hope to see this loader in ThreeJs before a while... |
Why not? |
BTW: I've lately spoken with a colleague and he told me that IFC is based on the STEP format which is well known in the CAD community. In general, STEP is really hard to parse and you would need to write a custom parser similar to |
Because
and i use
Yes, one day i will show you what i'm doing with Threejs ;)
The parsing is clearly not a big problem. But The geometries generation is ! Because ifc format does not contain any geometries. But use interpolation/interaction between objects to determine the final geometry. Anyway, if you want it, maybe you should create a specific branch for this before taking any decision. Just to see the BIG thing. |
Well yes, if the loader is not so compact as the others, it's probably better to put the code into a separate repository. |
@Itee Any plan to release the IFCLOADER anytime soon? |
Not aware of anyone willing to contribute it and maintain it... |
I'm using IfcOpenShell 's IFC converter happily, it makes nice geom and materials, can do Collada DAE (which we use to import to Unity), IIRC OBJ and was there glTF nowadays too |
Yes, via Tridify's conversion service, which uses IfcOpenShell as well (I've also used it locally) for the geom. I figure those metadatas are what is easy to parse. The geometry generation is indeed nontrivial. If you wanna do it in the browser, maybe you can compile IfcOpenShell to WebAssembly and use it as a library from your Javascript. It's plain C++ with no GUI or anything, just a library for which there is a commandline interface separately, so it might be easy to build for the web too. Parsing IFCs is kinda heavy so getting the WASM performance and low memory footprint might be nice. And the lib does a beautiful job at creating the geom. |
@MaartenBreeedveld I can help with the maths, for the theoretical basis I have non doubt and I have some experience with ifc, in fact there could be several transformations in series required for the world coordinates. For the implementation in three.js perhaps it will be possible to optimize it. |
We've tried this in the past. But the WASM compiled version is a 40MB download I guess this is due to all the referenced libraries in ifcConvert. @Jesusbill, Awesome! Currently, I've got no time to work on this project. But if it's okay, I'll come back to you. |
Sounds good @MaartenBreeedveld |
Added |
Any idea about IFCLOADER? @mrdoob |
Nope |
Regarding a 3dm loader: I've started work on this now that the openNURBS library has been compiled to wasm thanks to emscripten (rhino3dm). I'm working on this here and have mesh, breps, extrusions, pointclouds, materials, layers, and groups support started and working. Relevant files: I hope to submit a PR that has support for more object types sometime soon. I must admit that I've little experience with web workers, and am leaning on the draco and basis loader examples. Hopefully #18234 simplifies this a bit. p.s. we are already adding threejs support directly to the rhino3dm.js library like here and here. Edit: update links to point to McNeel org fork. |
|
Any update about M2Loader? Anyone working with that? |
@Faq Not that I know of... |
FYI: |
I've recently implemented a basic loader for M2 assets for a small personal project. If you want to play around with the code, you can access it via: https://gist.github.com/Mugen87/c96757cec0f7ec02214d6fdea880dec9 Use const loader = new M2Loader();
loader.load( 'models/m2/cat/druidcat2.m2', function ( mesh ) {
scene.add( mesh );
} ); We can potentially add the loader's code to the repo. However, adding an example is problematic since all M2 assets I have found so far are directly from WoW and not available under an appropriate license. Independently, I would love to add more features to the loader over time. Especially animations and multi-textured assets as well as supporting more asset versions. |
I've played World of Warcraft in the past (nightelf druid, feral build) and loved the entire art design so much. Now seeing game assets rendered so nicely with |
I've created a new repository |
List of loaders that would be nice to have:
3D
Bitmap
Vector
The text was updated successfully, but these errors were encountered: