Sorry your browser is not supported!

You are using an outdated browser that does not support modern web technologies, in order to use this site please update to a new browser.

Browsers supported include Chrome, FireFox, Safari, Opera, Internet Explorer 10+ or Microsoft Edge.

AppGameKit Classic Chat / AGK 3dmodels/texture pipeline?

Author
Message
Santiago3D
User Offline
Joined: 11th May 2020
Location: Argentina
Posted: 22nd May 2020 20:01 Edited at: 23rd May 2020 00:28
Hello, I would like to reach out to AppGameKit developers with this message.

I think AppGameKit is a solid, agile and stable engine for creating video games.

Note that loading 3D models is a complicated topic, which I think generates frustration and a bottleneck in users who are not expert shaders, 3D and texturing and achieving materials with acceptable graphic results.

I managed to do in these two weeks with AppGameKit great adventures, but I am frustrated trying to find a way to load my 3D models easily and suitable for the use I need in a fairly complex video game.

In the forum I found and shared different ways of loading models, others have done work on it but it is not available.
I also found that there are many discussions about which file format to use.

it is like to go a little crazy with this theme, I am currently a new user and I don't have enough agk experience to create my own loader and editor of objects, elements, textures and effects to bridge between 3d soft and AGK.

With code you can texture, and materialize objects, but on many occasions, there are 3D models that require a different type of work dynamics, and the ideal is to have a suitable tool to do this type of work, efficiently and dynamically.


I think it would help AppGameKit a lot to resolve this issue.
many users have problems with this and this is evident in the final quality of the work, since many non-advanced users in this area cannot achieve results due to not having the right tool.

I am currently having difficulties in:

- load the 3D models, define a format,
- that the load respects the scale (metric in my case), 1 unit in agk = 1 meter. (this I suppose depends on each format?)
- texture the models efficiently, easily and dynamically.
- be able to obtain names and mesh materials or sub-elements of the object, with their respective pivot, axes, rotation, and materials.
since using loadmesh or loadmeshwithchildrens, I am still not managing to get element names which is crucial.

So far the format that works best for me is .x
but I understand that it is an old format.

It does not seem to me that the method of generating multiple files with elements is a suitable solution, since it greatly complicates the editing and manipulation and the work with it.

Many times, it is practical to manipulate objects, elements, textures, colors, properties and effects of entities from the code, but that is very useful when you really need it, and very cumbersome if you want to achieve advanced graphics.

I think that a solution would be to generate an editor of materials and elements, that works in the same way as Lumion, where you import a 3D model, edit it, and if you update the 3D model, the materials are still updated automatically.

that also allows renaming elements, manipulating their pivots, changing materials, and that all this is automatically loaded in a friendly and simple function.

So users who are not advanced in these topics, in which I include myself, since I am not being able to load my plane properly, would have a definitive solution to this problem that I see years ago exists in the forum.


--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

conclusion, I think that AppGameKit has a bottleneck here, at this point, which greatly limits the graphic quality in 3D video games, that having a pipeline could be solved and help many users.

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

what I propose is the following.

I don't know how to program scripts, nor in anything other than basic.

My only way to achieve this is to do it with AppGameKit or B3D, so I think it is best to do it directly in AGK.

Even so, there are many things that I do not know, about shaders, I never used them, about file formats, I never understood them, but I do know a lot about 3dsmax and how to work a model to have good results with few resources.

I will try to do it, it would be ideal to do it together with other interested parties, so that AppGameKit can have it, and that the developers of AppGameKit help too. but I would definitely need help from people who know more about this than I do.


-----------------------------------------------------------------------------------------------------
Objective, would be to load with a simple function, 3D models and that are already finished, I share graphic examples of .b3D models that I model with 3dmax, using standard materials of max and some of the b3D pipeline in 3dsmax9, using the exporter b3dpipeline. and loaded into b3d using loadmesh () or loadanimmesh (), and then I just had to use Findchild () to get my parts and manipulate them like nodes, objects, wheels, spoilers, collisions, LODS etc.

Cockpit 3D, i use loadanimmesh, and i have all functions elements only need to use findhild to get the object from this 3d, then i use a update_cockpit to give live to all gauges.



Warship, i made this model in 3dsmax9 for my simulator naval, i only have to use findchild to get the objects, torrets, cannon, proppelers, helm, cranes, collision.


in this case, the 3D objects, have all elements, and manual bone mesh, the ropes and other things use nodes objects, and many propiertys of the sail works using the 3D data directly export from 3dmax9.


This ones, show, how other users can make models, and can add boats with just giving names to elements for work, if the don't put an "helice" the boat dosent have engine.
the materials, are automatic loading by the sim


This have more complex element, the n3, m3, n4... etc, works like bone to control the sails vertexs.
This works very good if you have many diferent kinds of elements, and the user can add own models.



ok, i just write to much today. look this like foward thing to do, no a critic to agk.

so, what do you thing?, what can be do?
blink0k
AGK Developer
7
Years of Service
User Offline
Joined: 22nd Feb 2013
Location: the land of oz
Posted: 23rd May 2020 00:03
Unfortunately very few people who use AppGameKit use 3DSmax. It's a bit too pricey (not free).
Most people tend to use blender or some other cheap tools like Ultimate unwrap, Wings etc
Santiago3D
User Offline
Joined: 11th May 2020
Location: Argentina
Posted: 23rd May 2020 00:17
yes, but if we use a soft who read the 3d file, you can use any soft 3d
blink0k
AGK Developer
7
Years of Service
User Offline
Joined: 22nd Feb 2013
Location: the land of oz
Posted: 23rd May 2020 00:41
Ultimately you need to be able to load and save an object with AGK.
In order to do that you need to decipher the mesh memblock from CreateMemblockFromObjectMesh() and understand the layout of whatever 3D file format you target (.obj, .3ds, .fbx .x etc)
As far as i can see that's a very tall order and to date i have not seen anything that can save ALL the data from CreateMemblockFromObjectMesh() to a file

If you don't need bones or animation then my scene splitter should do he job (.obj format). It comes with source code so you can tailor/improve it
Santiago3D
User Offline
Joined: 11th May 2020
Location: Argentina
Posted: 23rd May 2020 03:43 Edited at: 23rd May 2020 03:50
Are you familiar with how Lumion works?

you would not modify the 3D file. you only read the 3d file with the normal agk functions...

The idea is :
With the "materializer, to call it somehow", one loads the file "avion.x", and you can add textures, blends, alphas, you can modify where the pivots of each mesh will be, you can assign a new name to the mesh, which will be the childs in AGK.

All this, the only thing it does, is to generate a data file, with which the function within AppGameKit of load_model_3d should work.

You can also say that a mesh must be invisible, or that you delete it when loading it in agk, this has many uses.

then in agk, the mesh is loaded
all the changes that were arranged in the "materializer" are automatic applied to it. by the functions, who reads the data file we create with the materializer.

the file "avion.x" should only have been read once by the "materializer"
the file to call it "avion.mat" would be something like this.

The advantage of this is that if in the future you make a change to your 3D file, all the changes you already worked on in your .mat file are automatically applied to it, so you save a lot of production time.


file, plane.x
object1, fuselage
object1_color_r, 255
object1_color_g, 255
object1_color_b, 15
object1_alpha, 120
object1_LOD_assign, 0
object1_pivot_fix, 1.42,0.222,0 // new pivot position
texture1, t_diffuse.png
texture1_blend, 2
texture1_shine, 60
texture1_uvmap_metodh, 1
texture2, t_color_airplane_squad_4.png
texture2_blend, 2
texture2_shine, 60
texture2_uvmap_metodh, 1
texture3, t_normal.png
texture3_method, do that normal thing ...., I don't know how to do it in agk yet.

object2, prop_1
obje2_new_name, helice // the new name when i load in agk of this mesh
object2_color_r, 255
object2_color_g, 255
object2_color_b, 255
object2_alpha, 0.5
object2_LOD_assign, 0
object2_pivot_fix, 0,0,0
object2_pivot_rot, 90,0,0


It is a rough example, tomorrow I will start with the design of this program, it will be open source, and so that everyone can use it, and to collaborate those who want will be welcome.
blink0k
AGK Developer
7
Years of Service
User Offline
Joined: 22nd Feb 2013
Location: the land of oz
Posted: 23rd May 2020 04:19
Ok. Sounds awesome. I am looking forward to it
Santiago3D
User Offline
Joined: 11th May 2020
Location: Argentina
Posted: 23rd May 2020 20:11
the concept idea, how i want to do this



blink0k
AGK Developer
7
Years of Service
User Offline
Joined: 22nd Feb 2013
Location: the land of oz
Posted: 24th May 2020 00:58
Can you interpret the underlying .3d file format yet?
Santiago3D
User Offline
Joined: 11th May 2020
Location: Argentina
Posted: 24th May 2020 14:00
hi Blink, can you make the questions in other words?, i don't understand what mean with interpeter the format.

my english and my brains plays allways in the other team
blink0k
AGK Developer
7
Years of Service
User Offline
Joined: 22nd Feb 2013
Location: the land of oz
Posted: 24th May 2020 21:31
Can you understand the 3d file format you want to save to?
Santiago3D
User Offline
Joined: 11th May 2020
Location: Argentina
Posted: 25th May 2020 00:41 Edited at: 25th May 2020 00:49
the idea is not write, or save, or modify the 3D file, just read it.

the idea is help to AppGameKit to load the 3D file, apply materiales who you put previusly in this soft and manage the childs, mesh, pivots, new parents upload in the load, extra data you want to add.

Today, soft use this method, like lumion, is like a new fashion, is amazing to work.

because you don't touch the 3d file
and if you change something in the 3D files, all changes you make in the materializer, automatic upgrate.

and another very good thing, is, in the 3D modeller softwares, anyone, you don't need to put textures, only give a color or material to mesh and objects, and the materializer read that info, and split mesh by materiales ID.



nother good thing of this. is...

if you have a war tanks game, you make 1 tank first, in 3d.

in the materializer you put textures to that tank, and save the .mat..

in AppGameKit you loadobject the tank.3d and next you apply the .mat that you work..


the good part, is, when you make others tanks, you only need to use the same name or color in the 3D objects, and automaticly you put the .mat materials, and all textures, blends, pivots, parts, and others things upgrate automaticly.

so, like you use a css file in webpage, this is like the same thing.
blink0k
AGK Developer
7
Years of Service
User Offline
Joined: 22nd Feb 2013
Location: the land of oz
Posted: 25th May 2020 00:59
I still don't think i understand but i look forward to seeing your progress
Good luck
nz0
AGK Developer
12
Years of Service
User Offline
Joined: 13th Jun 2007
Location: Cheshire,UK
Posted: 30th May 2020 01:16
I think I know what he means... (!)

Perhaps he's looking to generate metadata for the object (any format) and apply the properties after loading the base model.
However, I've spent some time trying to do vertex painting for instance and found issues with shared vertices on adjacent polys which is going to be a problem.

There's a nice plugin I have in lightwave which can split surfaces (meshes) into separate objects and I suppose it could be useful for assembling your own bones.
I also did something along those lines, but it was pretty painstaking and the names and orders of children changed / reset frequently for unknown reasons.

I will also be interested to see any results on this.

Login to post a reply

Server time is: 2020-05-30 17:20:01
Your offset time is: 2020-05-30 17:20:01