SyntaxBomb - Indie Coders

General Category => Worklogs => Topic started by: Santiago on May 23, 2020, 19:57:01

Title: 3D materializing pipeline (project)
Post by: Santiago on May 23, 2020, 19:57:01
Hello, I decided to work on the next project.

A while ago I had the idea to edit the games within the games, while the developer is playing, that we can change colors, textures and everything, simply by editing it in-game.

When I started AGK I found a bottleneck in terms of handling 3D models and their properties.

The idea is to create a tool, which would prepare the 3D model to be easily loaded in our game.

this is what i thinking to do.
(https://scontent.faep8-2.fna.fbcdn.net/v/t1.0-9/99440086_2636749636426931_3336919302405095424_o.png?_nc_cat=102&_nc_sid=730e14&_nc_ohc=Aaj6iAJaeLQAX_oq_j8&_nc_ht=scontent.faep8-2.fna&oh=21ba2d2a7d54a65f27ff0cc19b7814f3&oe=5EEF2181)


The scale is a other very important thing.

this project dosent change animations, or anything of the original file. never write de original file.



AGK forum topic about this
https://forum.thegamecreators.com/thread/226312


I share the basic explanation of how this program would work

QuoteThe 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



Upcoming changes to history
Translation history will soon only be available when you are signed in and will be centrally managed within My Activity. Past history will be cleared during this upgrade, so make sure to save translations you want to remember for ease of access later.
Got it
el materializador (un soft, que lee los archivos 3D, y genera un archivo .mat con las modificaciones que el usuario quiere realizar.)

la funcion de carga de modelo3d y aplicarle todo lo materializado con el soft.
loadmesh(objeto3d)
apply_materialization(objeto3D)

La funcion, podria escribirse en cada engine de forma que sirva el materializador para cualquier engine, blitz, blitzmax, AGK, etc.


1. SOFT - Materializador
   - manipulacion de datos de modelo
   - posibilidad de aplicar "materiales", crear materiales, editarlos, y tener librerias de materiales generados por usuarios.
2. Materiales, seria la combinacion de propiedades que se le aplica a un mesh, texturas, color, brillos, shaders, reflejos, blends, etc.
3. archivo.mat seria el archivo de datos textual, facil de leer que tendria toda la informacion que aplicaremos cuando carguemos el modelo3D
4. Funciones para cada engine que aplican los cambios generados con el materializador.



the materializer (a soft, which reads the 3D files, and generates a .mat file with the modifications that the user wants to make.)

the loading function of model3d and apply everything materialized with the soft.
  loadmesh (object3d)
  apply_materialization (3D object)

The function could be written to each engine so that the materializer works for any engine, blitz, blitzmax, AGK, etc.


1. SOFT - Materializer
    - manipulation of model data
    - possibility of applying "materials", creating materials, editing them, and having libraries of materials generated by users.
2. Materials, would be the combination of properties that is applied to a mesh, textures, color, brightness, shaders, reflections, blends, etc.
3. file.mat would be the textual data file, easy to read that would have all the information that we will apply when we load the 3D model
4. Functions for each engine that apply the changes generated with the materializer.







Title: Re: 3D materializing pipeline (project)
Post by: Santiago on May 23, 2020, 20:09:19
Material editor idea concept

(https://scontent.faep8-1.fna.fbcdn.net/v/t1.0-9/100709272_2636772616424633_2087805094601949184_o.png?_nc_cat=103&_nc_sid=730e14&_nc_ohc=eCQjHGtaS7IAX_qqukN&_nc_ht=scontent.faep8-1.fna&oh=2d68d027a33cb532f59327bca61e8fe5&oe=5EED3419)
Title: Re: 3D materializing pipeline (project)
Post by: 3DzForMe on May 24, 2020, 05:42:21
Intriguing work Santiago, reminds me of using something called ultimate unwrap 3D many moons ago 😁