sketchucation logo sketchucation
    • Login
    ℹ️ Licensed Extensions | FredoBatch, ElevationProfile, FredoSketch, LayOps, MatSim and Pic2Shape will require license from Sept 1st More Info

    [Plugin] OBJexporter v3.0 20130131

    Scheduled Pinned Locked Moved Plugins
    304 Posts 96 Posters 451.3k Views 96 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • A Offline
      Alienizer
      last edited by

      @tig said:

      but that other bit is too obscure... because you should be able to have oddly place components and still return correct UVs πŸ˜•

      hmmm, but when the vertex are CC instead of CCW, the ray/triangle intersect report the hit being on the back face rather then the front! Is there a way in the exporter to know which is p1, p2 and p3? and save them in the proper order? SKP must do it right for it to be able to display the back face in blue when viewed in mono.

      I'm from Mars and moved to Earth to alienize you. Unfortunately, I became humanized.

      1 Reply Last reply Reply Quote 0
      • A Offline
        Alienizer
        last edited by

        tig, I found the problem. If you can do a test, (use a model with all faces facing the right way), run your raytrace and for every pixels on the screen, if it hits the back face (turn off back face culling) display that pixel in red, otherwise use some other color, material color perhaps. You will see that using skp exporter, they are fine, using yours, some are not. Now, a quick fix I did was to get the normal <-- cross(edge1,edge2) and then, calculate the normal for p1. Do a dot(Normal, NormalAtP1) and if the result is negative, recreate the face as p3,p2,p1 as oppose to p1,p2,p3, and swap 1 and 3 for the UVs as well. Then your raytrace will show the face correctly. I hope I make sense? Pehars that's how other render do it to correct such problem?

        I'm from Mars and moved to Earth to alienize you. Unfortunately, I became humanized.

        1 Reply Last reply Reply Quote 0
        • A Offline
          Alienizer
          last edited by

          Sorry to be a pest TIG, but have you had a chance to read me posts? πŸ˜•

          I'm from Mars and moved to Earth to alienize you. Unfortunately, I became humanized.

          1 Reply Last reply Reply Quote 0
          • TIGT Offline
            TIG Moderator
            last edited by

            I have read it, but I am busy on several other things right now. 😞
            Why don't you poke around in my code [the #500s lines] and see if you can fix it - then you can have joint (c) credit πŸ˜‰

            TIG

            1 Reply Last reply Reply Quote 0
            • A Offline
              Alienizer
              last edited by

              @tig said:

              I have read it, but I am busy on several other things right now. 😞
              Why don't you poke around in my code [the #500s lines] and see if you can fix it - then you can have joint (c) credit πŸ˜‰

              🀣 If I was as smart as you perhaps I would!

              I'm from Mars and moved to Earth to alienize you. Unfortunately, I became humanized.

              1 Reply Last reply Reply Quote 0
              • TIGT Offline
                TIG Moderator
                last edited by

                OK I try to make time to look at it next week... πŸ˜’

                TIG

                1 Reply Last reply Reply Quote 0
                • A Offline
                  Alienizer
                  last edited by

                  @tig said:

                  OK I try to make time to look at it next week... πŸ˜’

                  THANK YOU TIG 😍

                  I'm from Mars and moved to Earth to alienize you. Unfortunately, I became humanized.

                  1 Reply Last reply Reply Quote 0
                  • K Offline
                    Kralizek
                    last edited by

                    Works great for for me, thanks a lot TIG!

                    1 Reply Last reply Reply Quote 0
                    • I Offline
                      Immer
                      last edited by

                      Thanks TIG, this is an incredibly useful plugin, the most reliable obj-exporter I've tried.

                      I have one feature request though - could you add an option to export faces with distorted textures using the original texture and just save the "distorted" UV coordinates in the .obj file? As it is now doing something as simple as exporting a spherically-mapped globe can generate hundreds of distorted texture files and a correspondingly complicated .obj file, not exactly ideal for loading into another program.

                      I've modified version 1.1 to normalize the UVQ coordinates before export and it seems to work fine, it would be nice to have access to the more recent features though so I'm sending you the change in hopes that you'll incorporate it into the next version

                      the relevant change was changing the line
                      f_uvs=(1..mesh.count_points).map{|i|mesh.uv_at(i,1)}####1=front
                      to
                      f_uvs=(1..mesh.count_points).map{|i|flattenUVQ(mesh.uv_at(i,1))}####1=front
                      where flattenUVQ is defined as
                      def flattenUVQ(uvq)
                      return Geom::Point3d.new((uvq.x/uvq.z), (uvq.y/uvq.z), 1.0)
                      end

                      Thanks a bunch!

                      1 Reply Last reply Reply Quote 0
                      • TIGT Offline
                        TIG Moderator
                        last edited by

                        Sketchup's own OBJexporter also makes individual 'distorted' images when a texture has been 'distorted' by UV mapping - simple rotations or scaling shouldn't produce multiple images.
                        I added the feature to mimic it because otherwise you don't get the correct 'distortion' - I have previously tried the very method you outline in your code snippet but it never gave satisfactory results. The flattenUVQ method is actually in the code 'unused' [until the more recent updates that make distorted images...].
                        A distorted texture has 4 uvs but a triangulated mesh makes just 3 per facet ??

                        TIG

                        1 Reply Last reply Reply Quote 0
                        • I Offline
                          Immer
                          last edited by

                          Yeah, I had noticed and used the flattenUVQ method provided - I figured it was something you had brought in from someone else's code but didn't use. I didn't see it in the latest version so I thought I'd include it in case you didn't have an archive of older versions.

                          Don't get me wrong, it's awesome that you've managed to export non-linearly distorted faces accurately, however for many situations a linear approximation is preferable, especially if lots of additional textures or a complicated group layout present problems - like if you intend to use the exported object in a game engine, or want to fine-tune the UV mapping in another program. It may even be what was actually intended: for example UVTools' spherical map apparently uses distorted textures when linear interpolation is the correct method. In fact I'm not sure it's even possible to specify a lineraly distorted face in Sketchup. I've yet to find a way to, for example, squeeze a rectangular texture onto a trapezoid so the edges and center-points line up perfectly, and that's UV mapping 101.

                          All I'm suggesting is a checkbox on the option screen to choose between the accurate method and the "clean" one, it should just be a matter of changing the logic to

                          
                          if "face is distorted"     *AND* "use accurate method"
                             create accurate texture
                             export face using accurate texture
                          else
                             output face with normalized UVs # normalizing should have no effect on non-distorted faces
                          
                          
                          1 Reply Last reply Reply Quote 0
                          • A Offline
                            Alienizer
                            last edited by

                            *** BUG REPORT ***

                            Using this model from the 3D warehouse...

                            Error 404 (Not Found)!!1

                            favicon

                            (sketchup.google.com)

                            it export just fine, except the last line in the mtl file is "newmtl fueg" and nothing else after. The file is lock for writing, and after closing Sketchup, the reminder is written to the mtl file.

                            I'm from Mars and moved to Earth to alienize you. Unfortunately, I became humanized.

                            1 Reply Last reply Reply Quote 0
                            • TIGT Offline
                              TIG Moderator
                              last edited by

                              It is a 9Mb SKP and makes an OBJ file with 41 million lines of code so taking 5min+ to complete isn't surprising!
                              It worked fine for me...
                              The only 'error' was it didn't write '#EOF' into the end of the MTL file but that's just for me so I know it's done all materials [but it had?]

                              TIG

                              1 Reply Last reply Reply Quote 0
                              • A Offline
                                Alienizer
                                last edited by

                                @tig said:

                                It is a 9Mb SKP and makes an OBJ file with 41 million lines of code so taking 5min+ to complete isn't surprising!
                                It worked fine for me...
                                The only 'error' was it di dn't write '#EOF' into the end of the MTL file but that's just for me so I know it's done all materials [but it had?]

                                I let mine site all night for 9 hours and the last line of the mtl file still was "newmtl fueg", and the exporter stutus said it was done in 66 secs. So I closed Sketchup and that commited the buffer to the mtl file and it was then complete!

                                I'm from Mars and moved to Earth to alienize you. Unfortunately, I became humanized.

                                1 Reply Last reply Reply Quote 0
                                • TIGT Offline
                                  TIG Moderator
                                  last edited by

                                  Strange - might be a memory issue ?
                                  Also the missing [but not fatal] '#EOF' in the MTL was puzzling as there were no error messages ???
                                  If I get to the bottom of it I'll let you know.

                                  TIG

                                  1 Reply Last reply Reply Quote 0
                                  • A Offline
                                    Alienizer
                                    last edited by

                                    @tig said:

                                    Strange - might be a memory issue ?
                                    Also the missing [but not fatal] '#EOF' in the MTL was puzzling as there were no error messages ???
                                    If I get to the bottom of it I'll let you know.

                                    This is the second model it did this. The first one, I thought it was Sketchup because when I closed it, then file became complete. I don't remember which one it was! I know the file doesn't get closed because it has a write lock on it until you close Sketchup, even though the exporter is done without any errors!

                                    I have a suggestion 😳 Can you incorporate the fix reverse back face material in the exporter? Perhaps add a checkbox for that opton? Maybe it's faster to do it as it goes then using both plugins? I'm not the expert so I don't know.

                                    Thanks TIG, your exporter is by far the best the way it is.

                                    I'm from Mars and moved to Earth to alienize you. Unfortunately, I became humanized.

                                    1 Reply Last reply Reply Quote 0
                                    • A Offline
                                      Alienizer
                                      last edited by

                                      TIG, does your exporter use the object axis to orient the triangle? The reason I ask is, if I change the axis from blue up to blue down in a group, the triangle face is reversed when exported, and the ray/triangle test shows that it hit the backface when in fact it did not! Same happen with the SK obj exporter. Any idea? thanks.

                                      I'm from Mars and moved to Earth to alienize you. Unfortunately, I became humanized.

                                      1 Reply Last reply Reply Quote 0
                                      • X Offline
                                        xlntgraphix
                                        last edited by

                                        Thanks TIG! I'm new at this (less than a week) but this is exactly what I'll need for my 1st project. I still haven't really grasped the why to choose "group -vs- component" strategies. Now, in an above reply, it seems you were adding a "when to or whether to" aspect, where exporting is concerned. Have I mis-understood you? Could you please clarify? Again THANKS for this awesome plug-in. -XLNTgraphix

                                        1 Reply Last reply Reply Quote 0
                                        • T Offline
                                          tichit
                                          last edited by

                                          Thank you so much, this plugin is very useful for me.

                                          1 Reply Last reply Reply Quote 0
                                          • A Offline
                                            Alienizer
                                            last edited by

                                            One more model that the texture does not export properly but it does with the skp obj exporter...

                                            Error 404 (Not Found)!!1

                                            favicon

                                            (sketchup.google.com)

                                            Beside that, you rock, so as your exporter, thank you.

                                            I'm from Mars and moved to Earth to alienize you. Unfortunately, I became humanized.

                                            1 Reply Last reply Reply Quote 0
                                            • 1
                                            • 2
                                            • 3
                                            • 4
                                            • 5
                                            • 6
                                            • 15
                                            • 16
                                            • 4 / 16
                                            • First post
                                              Last post
                                            Buy SketchPlus
                                            Buy SUbD
                                            Buy WrapR
                                            Buy eBook
                                            Buy Modelur
                                            Buy Vertex Tools
                                            Buy SketchCuisine
                                            Buy FormFonts

                                            Advertisement