[Plugin] Import OBJ with Materials v2.1 20131118
-
*(c) TIG 2009-2013 in parts
obj_importer.rb*
Note: Based on Jim Foltz's 'obj_import.rb'* AND with Whaat's UVW texture mapping ideas... Many thanks!
BUT it's now with added materials with opacity/texture, also units
setting and YZ axes swap dialogs.On running it a dialog asks you to select units [pick from list] the
file uses any 'units' in the .obj's header as the default value,
if not then default=Inches.The vt info in the .obj file is used for UVW texture mapping.
There's a warning in the console if .obj's .mtl or any texture files
are missing.
If the .mtl is missing or incomplete the #default material# is used.
If a texture file is missing the material's colour/opacity is used.The zoom goes to extents at the end.
A closing dialog asks if you want to swap the YZ axes - Yes/No reply -
some .obj files are created flipped like that... so if the import
appears flipped over Yes will right it...
The 'swap YZ axes' has a one step undo.
The imported materials and geometry in the OBJ groups is only undoable
in multi-steps - instead simply erase the OBJ imported groups
and delete any new materials...*** IT CAN TAKE A L_O_N_G TIME TO LOAD A BIG OBJ FILE
WITH PERHAPS MANY THOUSANDS OF FACES ***
[perhaps >> 1 minute per Mb ?]Sometimes very complex OBJ shapes don't receive their textures at all.
Some OBJ files have tiny numbers: then faces might not be created:
if so, retry with larger 'units', you can scale group(s) down afterwards.
Some OBJ files have tiny face planar discrepancies: then some faces
might get triangulated to compensate: if so, retry with smaller 'units'
and scale group(s) up afterwards.
Some complex files might need a bit of manual healing: they can also
have erroneous vertices - so it's recommended you use 'Fix Problems'
accessed from the 'Model Info > Statistics' dialog -
especially if the result takes a long time to process or
have divided faces forced to form geometry or if it feels jittery
when orbiting around the model etc...
Some complex files with excessive smoothing etc might fail to import.View textured results in 'Monochrome' to see any reversed faces...
Use:
- Menu > Plugins > OBJ Importer > Import OBJ [with Textures]
-
> Import OBJ [no Materials]
-
> Import OBJ [as Mesh]
Option 1. Imports faces with mapped textures.
Option 2. Imports faces without materials [but materials added to model].
Option 3. Imports a mesh without materials [but materials added to model].Open the Ruby Console before running to see additional reporting...
Version:
1.0 20090714 First release.
1.1 20090715 Existing Materials re-used/make variant option added.
Swap Y & Z axes ? Yes/No, option added.
1.2 20090723 Name changed to 'obj_importer.rb' / 'Import OBJ'
Proper UV texture mapping added.
Added dialog geometry & texture mapping Units.
1.3 20090728 Submenu added with '..no Materials' and '...as Mesh'
options. Material/usemtl duplicated entries trapped.
Failure to import geometry - warning message added.
Scaling errors corrected.
Model.start_action()...commit_action removed as it was
causing errors on complex files.
1.4 20100406 Different format obj file text now accepted.
1.5 20100816 Missing group in obj trapped [with "g OBJ"].
1.6 20100825 Negative face indices allowed.
1.7 20100825 Fill from mesh changes.
1.8 20100825 Trapped for spaces in image-names/paths.
1.9 20110223 Errors with occasional reversed faces resolved.
2.0 20130321 Blender-quads now import as two tri-facets.
The OBJ file must contain header-text "# Blender" or similar.
2.1 20131118 Import of OBJ files using a -ve counter for f vertices within
sub-groups fixed. View now refreshes with each group completion.
###
http://sketchucation.com/resources/pluginstore?pln=obj_importer
Download from the SketchUcation Plugin Store or AutoInstall using the toolset within SketchUp itself
http://sketchucation.com/resources/plugin-store-download -
hmm a suggestion for a future release would be the option to swap the Z and Y axis on import.
-
And thanks!
-
another very useful gem TIG - ThankYou.....
-
Thanks TIG, this will come in very handy! Thanks to Jim as well for his initial contribution.
-
Thanks TIG, to enhance Jim's plugin
Quite useful when having OBJ library.
MALAISE
-
Thanks TIG & Jim
-
Here's v1.1
http://forums.sketchucation.com/viewtopic.php?p=172790#p172790Existing Materials re-used/make variant option added.
Swap Y & Z axes ? Yes/No, option added. -
I'm confused Bagatelo. What are you asking? This is a plugin that will import .obj into SU. The inverse would be an .obj exporter.
Chris
-
@tig said:
Here's v1.1
http://forums.sketchucation.com/viewtopic.php?p=172790#p172790Existing Materials re-used/make variant option added.
Swap Y & Z axes ? Yes/No, option added.thank you!!!!!!!!
-
okies the Swap Z/Y is working perfectly
the sizing is not atm (tried importing OBJ's from trueSpace, UVmapper and Hexagon) it's almost there tho...
Edit
Thanks to the notes inside the Ruby I was able to reset my units to Metres and now things are coming in the right size
-
Hi TIG,
I can't quite tell from your description if your script imports UVs correctly. If you are looking to add this feature, I was working on an OBJ importer awhile ago that imported materials and UVs. If you would like the code, let me know and you can have it. I don't think I'll ever get around to releasing it officially.
Thanks for another great script!
-
@whaat said:
Hi TIG,
I can't quite tell from your description if your script imports UVs correctly. If you are looking to add this feature, I was working on an OBJ importer a while ago that imported materials and UVs. If you would like the code, let me know and you can have it. I don't think I'll ever get around to releasing it officially.
Thanks for another great script!
My tool imports materials and textures. It doesn't deal with UVs as most of the example OBJs I have didn't have that info in their MTLs. Thus any imported material has it's colour and opacity set correctly, AND also has the correct texture added BUT without any UVs scaling etc - it uses the default 10" square version... However if you already have a pre-existing material with a matching name that has UVs set etc it asks if you want to use it or make a new variant - if you answer Yes it uses the existing material...
Am I right in understanding you, that some OBJ/MTLs have UV mapping info ? SUp exported OBJ/MTLs don't seem to ? Please PM me your half-baked UV code and I'll look at incorporating it [with credit to you, as appropriate]... Thanks for the offer.
-
yup UV information is a core part of the OBJ Format.. makes it very useful for transfering between programs, such as Maya to trueSpace to Max....
-
@khai said:
yup UV information is a core part of the OBJ Format.. makes it very useful for transfering between programs, such as Maya to trueSpace to Max....
Where is it stored in the files ?
-
I think it's stored as the VT entries.
ah yes here we go
http://local.wasp.uwa.edu.au/~pbourke/dataformats/obj/ - Full OBJ Format Spec
@unknownuser said:
vt u v w
Vertex statement for both polygonal and free-form geometry. Specifies a texture vertex and its coordinates. A 1D texture requires only u texture coordinates, a 2D texture requires both u and v texture coordinates, and a 3D texture requires all three coordinates. u is the value for the horizontal direction of the texture. v is an optional argument. v is the value for the vertical direction of the texture. The default is 0. w is an optional argument. w is a value for the depth of the texture. The default is 0.
-
@chris fullmer said:
I'm confused Bagatelo. What are you asking? This is a plugin that will import .obj into SU. The inverse would be an .obj exporter.
Chris
Yes, I mistake. I have think about EXPORT model with obj file types. But .3ds is very good.
I try to import this model ( http://www.evermotion.org/modelshop/show_product/sculpture-01-am34/1806/0/0/ ) into sketchup and the plugin don't work properly. Export with 3ds Files from MAX result crash in Sketchup.
FBX files maybe can be de very best option.
-
@khai said:
I think it's stored as the VT entries.
ah yes here we go
http://local.wasp.uwa.edu.au/~pbourke/dataformats/obj/ - Full OBJ Format Spec
@unknownuser said:
vt u v w
Vertex statement for both polygonal and free-form geometry. Specifies a texture vertex and its coordinates. A 1D texture requires only u texture coordinates, a 2D texture requires both u and v texture coordinates, and a 3D texture requires all three coordinates. u is the value for the horizontal direction of the texture. v is an optional argument. v is the value for the vertical direction of the texture. The default is 0. w is an optional argument. w is a value for the depth of the texture. The default is 0.
Thanks - I see it now... wait for update...
-
@bagatelo said:
@chris fullmer said:
I'm confused Bagatelo. What are you asking? This is a plugin that will import .obj into SU. The inverse would be an .obj exporter.
Chris
Yes, I mistake. I have think about EXPORT model with obj file types. But .3ds is very good.
I try to import this model ( http://www.evermotion.org/modelshop/show_product/sculpture-01-am34/1806/0/0/ ) into sketchup and the plugin don't work properly. Export with 3ds Files from MAX result crash in Sketchup.
FBX files maybe can be de very best option.
Since I'm not going to pay $35 for a model of a small statue I can't see how the actual file is structured - looks like it might be very complex though !!! The current OBJ Importersare quite limited...
-
Cool, thanks TIG. I've been using Jim's importer for a long time.
One thing I've encountered with materials. You are assuming that the 'd' tag comes after the Kd tag, but it doesn't necessarily. It can show up anywhere in the list. The obj format doesn't require a specific order. So, if 'd' comes first, the plugin is crashing.
Advertisement