Jump to content

amit

Members
  • Posts

    35
  • Joined

  • Last visited

amit's Achievements

Newbie

Newbie (1/14)

0

Reputation

  1. yep, i too hope so. would be waiting for LE3. Good documentation is what i could have really wanted few weeks before. but thanks to this forum, its a lot of help.
  2. Works like a charm, thanks. Where do you get all this info?
  3. Hi, trying to print child mesh name, using: int mesh_childrencount = CountChildren(mesh1); dbprint("no of children for %s : %d", MeshName(mesh1), mesh_childrencount); for(int i=1; i<=mesh_childrencount; i++) { TEntity sm = GetChild(mesh1, i); TSurface ts = GetSurface(sm,1); str mat_name = MaterialName( GetSurfaceMaterial(ts) ); str entity_name = MeshName(sm); mat_surface_map.insert(mat_name,(void*)&sm); dbprint("surface : %d : %s : %s\n", i, mat_name, entity_name); } The material name prints well, but the mesh name does not. MeshName(mesh1) gives the file path of the gmf, From Model I get one root mesh, which has around 129 child mesh, each of them has a name as shown in Model viewer, but if i do the code above, it does not. If I open the model (in a .gmf) in Model Viewer, It shows all the child mesh name well. any suggestions?
  4. sorry for late reply, was trying to test the code you gave (modified to my requirement), but wasn't working for me, here it is: require("scripts/class") local class=CreateClass(...) function class:CreateObject(model) local object=self.super:CreateObject(model) function class:InitDialog(grid) local group, meshx, childrencount gridme = grid self.super:InitDialog(grid) meshx=object.model:GetChild(1) --return meshx:CountSurfaces() childrencount = meshx:CountChildren() group=grid:AddGroup( "Abc" ) group:AddProperty("aaaa",PROPERTY_INTEGER ,childrencount) end function object:Init() --group=gridme:FindGroup( "Xyz" ) --group:AddProperty("test",PROPERTY_CHOICE,"") end function object:SetKey(key,value) return self.super:SetKey(model,key,value) end function object:GetKey(key,value) --if key=="surfacecount" then -- abc=object.model:GetChild(1) -- --return abc:CountSurfaces() -- return abc:CountChildren() --else return self.super:GetKey(key,value) --end end object:Init() end the value of "aaaa" in group Abc is 0. If I uncomment all the code lines in GetKey() function, then the value comes to be 169 (which is right for my model).
  5. Please see the commented lines for my problem. require("scripts/class") local class=CreateClass(...) local gridme; function class:InitDialog(grid) local group gridme = grid self.super:InitDialog(grid) group=grid:AddGroup( "Abc" ) group:AddProperty("aaaa",PROPERTY_CHOICE,"") -- here i want to access the object/model instance but in all tried cases, -- I get error like "attempt to index field 'object' (a nil value)" -- local mymesh = class.super.object.model:GetChild(1) end function class:CreateObject(model) local object=self.super:CreateObject(model) function object:Init() -- This also does not, work. My guess is that this is not the place to code UI! --group=gridme:FindGroup( "Appearance" ) --group:AddProperty("aaaa",PROPERTY_CHOICE,"") end function object:SetKey(key,value) return self.super:SetKey(model,key,value) end function object:GetKey(key,value) return self.super:GetKey(key,value) end object:Init() end
  6. I didn't get it, ( not a lua programmer ), but InitDialog and CreateObject are both defined in class, <class>. Can you guide me with some code?
  7. Ok, now I know, how to mark it solved :-)
  8. Hi, Thanks, looked at few scripts in editor for various objects, The function InitDialog(grid), is the one which is responsible for the property ui, but the only connection i can see to the model is via, SetKey() function, which is like a callback to AddProperty(). What I want to do is to check the no of children for model, and its assigned materials and list them in the ui, so it can be edited as required. somehow I would like to access the model instance in InitDialog function, but was not able to do so. Any suggestions?
  9. Hi, As far as i understand there is only one type of PropertyDialog for all objects if we use, require("scripts/myclass") local class=CreateClass(...) in the class lua script. But now I want to read the model while the creation of UI < class:InitDialog(grid) >, which seems to be not possible in current setting as model is created only when we create an instance of it, Right? < class:CreateObject() > q1) Is it possible to get and use model class, while ui creation? q2) Is it possible to create ui for each instance, and also created in CreateObject code, so ui can be customized as required! Also, all this had to be figured out, so any link to details of editor working would be great help. If any trouble understanding what I wrote, please let me know, I'll try to detail it more.
  10. The .3ds seems ok in UU3d, and thanks to DaDonik, gmf exported from UU3d, is as expected with 8 surfaces. Some how 3ds2gmf.exe is far optimizing the model to club 4 surfaces together, and on what logic, I am not able to get. ... ... wait I think I can get some thing to it ..... Fount it ... It seems that "3ds2gmf.exe" is coupling all surfaces with materials having "texture applied to it,", to the very first ok surface. It may also be that this does happen because of texture name or if texture not found or something like that. hope someone can shed some light on it.
  11. Hi, I am exporting a 3ds file from 3d studio max. The export as such goes fine ( .max->[3d studio max]->.3ds->[3ds2gmf.exe]->.gmf ). I can view the model in ModelViewer, all white and grey. There are 8 material applied to model in 3d studio max. But somehow only 5 sufaces are shown in ModelViewer, (Also confirmed programatically in c/c++). Even thou the mesh is full, the first surface seems to contain a number of meshes combined. If this is a problem with 3d studio 3ds export? or with 3ds to gmf export? Anything else please suggest?
  12. That there, but not as structured or detailed as would have wanted it. Anyways thanks for the help up there, really worked for me. Now, I am stuck somewhere else. Only 5 surfaces exported from 3ds max. Time to get support.:-)
  13. So, It is not possible to change material for individual surfaces, without programing. Well, back to coding (c/c++ for me). Maybe I can do some Lua Stuff and make it happen in Editor itself! Thanks, @ChrisMAN : Thanks for the info.
  14. Yep its, GetChild(model, index=1), thanks a lot. Any text/Manual/Guide i can refer to for such kind of info?
  15. Hi, Just starting with leadwerk after a long time. What I am trying is to load a scene(a small building) from 3ds max. The scene contains 15 odd meshes in it and 6 materials, including 1 glass type material. I am exporting is to 3ds format, and then usinf 3ds2gmf.exe converting it to a .gmf file. Now I am using c/c++ for coding an loading the .gmf file using LoadModel(). My idea is now to assign material to different meshes in it, which I can not as there is no function to getsurfaces from TModel type. I think is suppose to be TModel<-TMesh<-TSurface, while getting Surface from mesh is possible, but getting mesh from model ... I do not know. Any suggestion?
×
×
  • Create New...