Thanks Al, this will help me so much I appreciate your time and super fast reply.
Posts
-
RE: Plugin DLL
-
RE: Plugin DLL
That's exactly what I'm after Al. I sent you an email. I appreciate all your help.
-
RE: Plugin DLL
@dan rathbun said:
In Ruby..
doc = Sketchup.active_model
Yes I know, but how do you get the "Sketchup" object in a DLL when it loads?
-
Plugin DLL
Assuming that you have a ruby script with only the following line...
require 'TestPlugin.dll'
Using the 2.0 type library I have the complete set of commands and properties available, and the TestPlugin.dll does load when Sketchup starts, but I don't know how to get the Sketchup CoSkpApplication interface! If I use Connect, it stalls forever.
Does anyine knows how this works? Does Sketchup sends something to the DLL when it loads? Or is there a callback of some sort, anything?
This link shows an example how to get the Application interface if you have the document object, but how do you get the document to begin with!?
Reading Textures from a SketchUp Model Using the Reader SDK
Posted by Sang Ahn, SketchUp Software Engineer In case you haven't looked yet, we have an SDK that allows you to read SketchUp files using ...
(sketchupapi.blogspot.com)
Thanks
-
RE: [Plugin] OBJexporter v3.0 20130131
@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.
-
RE: [Plugin] OBJexporter v3.0 20130131
@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!
-
RE: [Plugin] OBJexporter v3.0 20130131
*** BUG REPORT ***
Using this model from the 3D warehouse...
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.
-
RE: [Plugin] OBJexporter v3.0 20130131
@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) creditIf I was as smart as you perhaps I would!
-
RE: [Plugin] OBJexporter v3.0 20130131
Sorry to be a pest TIG, but have you had a chance to read me posts?
-
RE: [Plugin] OBJexporter v3.0 20130131
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?
-
RE: [Plugin] OBJexporter v3.0 20130131
@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.
-
RE: [Plugin] OBJexporter v3.0 20130131
WOW that was FAST Thank you, thank you!
Any thought about the Zaxis and the reverse p1,p2,p3?
-
RE: [Plugin] OBJexporter v3.0 20130131
I should know better not to ask you about the api, you're the expert, and I'm sure you've already taken the best possible route to make your exporter
About the door, you're right! I didn't catch that. Is it possible that your exporter reverse the order of the triangle's vertex because the Zaxis is down rather than up? say, p1,p2,p3 becomes p3,p2,p1 but the uv's are for p1,p2,p3, and that's why I get the face normal going in rather then out? My raytrace sees the face material just fine, but becuase it shoots a ray inward (bounce off the face normal) it hits no light, and shows real dark. When I manually reverse p3,p2,p1 to p1,p2,p3, then the bouce of the normal is outward and hits a light, and looks fine.
One suggestion, is it possible to modify your exporter to save the textures all in png rather than mixed jpg, tga etc? no matter what the original was?
Thanks tig for taking the time, I appreciate it.
-
RE: [Plugin] OBJexporter v3.0 20130131
I see what you mean. I did a test on that door, and I can't push/pull inward, skp says it's offset is at zero! If I remove the back face of the door and keep 5 sides, then it export find in yours. I don't know why it will not push/pull, I see no triangulation in skp that would show this 3D rectangle door not being 100% rectangular. If one face wasn't the same size, other faces would be triangulated accordingly in skp, and the hidden geom would show that, but it doesn't!!
I was wondering, I know little about skp api but I've look at all the api and I was wondering if there was a better way to get the data. For example, I see that you do not use uvhelper. Maybe there is a way to get the normals and tex uv using an api rather than doing it all over? skp diplays it right, so it must be stored somewhere no?
-
RE: [Plugin] OBJexporter v3.0 20130131
I was only using a simple raytrace to verify the orientation of the faces. When I click on a face, it shows me the reflected vector (also shows the normals etc), and it shows it correctly with the skp export, but with yours, it shows the reflected vector to go inwards. Not for the whole model, only for the 2 brown doors to the right. When I reverse the face (f #/#/#...) as I explained, then the reflected verctor is proper. The same thing happens with the body of the allo dinosaur, but not the head.
I know the renders takes care of that, but imho I think it's better to have a flawless obj than one the render has to fix, so I present you my findings. It seems that for those 2 doors, the triangles are CWW instead of CC (or CC instead of CCW). This makes a big difference when you do a ray/troiangle test and test for face culling or want to know if it hit the back face or not.
-
RE: [Plugin] OBJexporter v3.0 20130131
Thanks TIG, but I do have the latest. I think I found the problem. It is that in some instances, your exporter export some faces as back face, that is, in the obj file, f 1/1/1 2/2/2 3/3/3 is f 3/3/3 2/2/2 1/1/1. Here is how I found out. Check this model...
You see the first brown door on the right? Erase everything except that door, then remove the frame and the back door (it's a bifold). Now you are left only with the 3d rect (6 faces, not paper thin). Now, the last two line foe example, is the front...
f 21/21/21 22/22/22 23/23/23
f 22/22/22 21/21/21 24/24/24and it is reverse. a ray bouncing of the normal goes inward, not outward. Now, it I modify it like this...
f 23/23/23 22/22/22 21/21/21
f 24/24/24 21/21/21 22/22/22it now renders fine and the face if oriented properly.
Most render such as yours may not be affected by this, but mine is! The fact remain that the face is not oriented properly.
Or is it just me that's going nuts?
-
RE: [Plugin] OBJexporter v3.0 20130131
I have another one for you...
This guy did this by the book. It renders fine when exported using SKP obj exporter, but not when using yours!
-
RE: [Plugin] OBJexporter v3.0 20130131
TIG, I have another one for you. I created a simple Cornell box with a sphere in the middle. Sketchup OBj exporter rendered perfectly, yours seems to have not soften it! See screen shot...