Documentación Bennu3D

Started by Windgate, September 28, 2008, 06:19:57 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Windgate

Hola amiguitos,
me he metido a fondo con el Bennu3D pero tengo un problemilla con la librería 3D de Irrlicht.

Se trata de la documentación disponible, hasta ahora sólo tengo un listado de las funciones de modo8 pero no cuento con su descripción ni información sobre el uso de los parámetros.

Estoy haciendo pruebas a ciegas y no es plan. Supongo que habrá disponible algún documento con más información, ¿Algún link donde encontrarlo?

Os agradezco muy mucho vuestra respuesta, enhorabuena por vuestro trabajo.

EDIT: Este topic está bloqueado por sugerencia de quien lo inició, la discursión continúa en este otro.
http://forum.bennugd.org/index.php?topic=438.0
Iván García Subero. Programador, profesor de informática, monitor de actividades culturales y presidente de TRINIT Asociación de Informáticos de Zaragoza. http://trinit.es

blostec

Bienvenido! Quien mejor te puede contestar es l1nk3rn3l que la esta desarrollando. Con la libreria se incluye un readme.pdf donde se describen las funciones, supongo que ya lo has visto. Yo solo puedo recomendarte que mires en el foro, hay diversos post sobre la libreria:

http://forum.bennugd.org/index.php?topic=114.0

http://forum.bennugd.org/index.php?topic=89.0

http://forum.bennugd.org/index.php?topic=122.0

Prg la esta usando en su Juego de Magia, en su post hablan sobre ella: http://forum.bennugd.org/index.php?topic=121.0

Espero que te sirva, saludos!

Windgate

Por supuesto que me ha servido, estoy flipando con el material que hay, llevaba muchísimo tiempo buscando. Gracias!  :o
Iván García Subero. Programador, profesor de informática, monitor de actividades culturales y presidente de TRINIT Asociación de Informáticos de Zaragoza. http://trinit.es

blostec

Me alegra que te haya sido útil, saludos!

stukita

#4
Hola. Alguna información sobre los parámetros de las funciones de bennu3d? he devorado los enlaces a los hilos de la entrada anterior, pero no encuentro ninguna lista con los prototipos de las funciones con su cometido, solamente dispongo del pdf q se incluye, que como todos sabemos es muy escaso, al menos en la version 13102008, la última que he encontrado. Es esta laúltima versión de esta libreria?

Un saludo y Gracias

Prg

hola, lamento decirte que la información es muy escasa.

http://3dm8ee.blogspot.com/

este es el link donde puedes encontrat la última versión.

Yo conozco un gran número de las funciones, y todo lo he aprendido del readme y los test :) . también sirve abrir el m8ee.h, ahí vienen muchos de los parámetros que usan algunas funciones como:

//material type flags:
EMT_SOLID =0;
EMT_SOLID_2_LAYER =1;
EMT_LIGHTMAP =2;
EMT_LIGHTMAP_ADD =3;
EMT_LIGHTMAP_M2 =4;
EMT_LIGHTMAP_M4 =5;
EMT_LIGHTMAP_LIGHTING =6;
EMT_LIGHTMAP_LIGHTING_M2 =7;
EMT_LIGHTMAP_LIGHTING_M4 =8;
EMT_DETAIL_MAP=9;
EMT_SPHERE_MAP = 10;
EMT_REFLECTION_2_LAYER =11;
EMT_TRANSPARENT_ADD_COLOR = 12;
EMT_TRANSPARENT_ALPHA_CHANNEL =13;
EMT_TRANSPARENT_ALPHA_CHANNEL_REF =14;
EMT_TRANSPARENT_VERTEX_ALPHA =15;
EMT_TRANSPARENT_REFLECTION_2_LAYER =16;
EMT_NORMAL_MAP_SOLID =17;
EMT_NORMAL_MAP_TRANSPARENT_ADD_COLOR =18;
EMT_NORMAL_MAP_TRANSPARENT_VERTEX_ALPHA =19;
EMT_PARALLAX_MAP_SOLID =20;
EMT_PARALLAX_MAP_TRANSPARENT_ADD_COLOR =21;
EMT_PARALLAX_MAP_TRANSPARENT_VERTEX_ALPHA =22;
EMT_ONETEXTURE_BLEND = 23;
EMT_FORCE_32BIT =24;


de cualquier forma amigo, estoy a tus órdenes para cualquier cosa que pueda ayudarte,  si puedo hacer algo, aquí estoy. la mejor forma de aprender es por prueba y error y estudiando los tests. ¡¡¡suerte!!!
en humos puedes mover la camara con los cursores. es necesario para los niveles a partir del dos :)

Prg

recordé que una vez me había encontrado con otra página con información,

http://www.booleansoup.org/index.php?p=bb&mode=viewtopic&id=1028&page=0

en esta página se encuentra esto, lo  cual es util para iniciar :)
Quote
/*
* Engine initialisation
*/

M8E_INIT()
    // Initialise the engine
M8E_INIT_DRIVER(int engine)
    // Initialise the engine with a specific driver, EDT_OPENGL, EDT_DIRECT3D8, EDT_DIRECT3D9
M8E_FREE()
    // The engine frees completely from the system resources
int M8E_GETDRIVER()
    // Returns the current driver being used,
    // returns one of the same values that M8E_INIT_DRIVER() takes

/*
* Miscellaneous crap
*/

? M8E_SETVIEWPORT(int view_pos_from_left, int view_pos_from_top, int view_width, int view_height)
    // Similar to defining regions in DIV/Fenix. This lets you set the size of the "window"
    // that will be rendered at the next call to M8E_RENDER. Width and height, and the coords
    // of the top-left corner. Multiple viewports appear to be broken. (As per test14.prg)
? M8E_SCRSHOT(string path)
    // Saves a jpg screenshot of the current view to the path defined.
int M8E_GETDISTANCE(model_1, model_2)
   // Get the distance between two models, or nodes. Not sure what the coordinate system actually is, but it's an integer based one.
? M8E_SETSTRPARAM(string parameter name, string value)
   // Lets you set some internal variables to other values. Not sure what kind of values...
? M8E_CLEARSCENE()
   // Removes all models and textures from the current scene
? M8E_SETAMBIENTLIGHT(int alpha, int red, int green, int blue)
   // Sets the global illumination of the current scene.
? M8E_SETFOG(int red, int green, int blue, int begin_distance, int falloff)
   // Set's the fog of the current scene.
M8E_SETTEXTFLAG(int flag, bool state)
   // Seems to set some sort of flags that relate to loading textures. Set them before
   // loading textures, takes true/false. The only ones I've seen are ETCF_OPTIMIZED_FOR_SPEED
   // and ETCF_CREATE_MIP_MAPS
M8E_MODELREMOVE(int model)
   // Take a model or node out of the scene
node_obj M8E_ADDSKYBOX(tex_obj up, tex_obj down, tex_obj left, tex_obj right, tex_obj front, tex_obj back)
   // Creates a skybox, all of the parameters are pointers to loaded textures returned
   // by M8E_LOADTEXTURE. Returns the skybox model.
tex_obj M8E_LOADTEXTURE(string image_path)
   // Loads a texture from a path and returns the pointer to it.
   // Formats are psd, jpg, png, tga, pcx, bmp.

/*
* Animations
*/

anim_obj M8E_ADDANIMCIRCLE(node_obj model, int centre_x, int centre_y, int centre_z, int radius, float speed)
   // Automates models moving in a circular movement around a mid-point.
   // For some reason. How do you change the axis?
anim_obj M8E_ADDANIMLINE(node_obj model, int start_x, int start_y, int start_y, int end_x, int end_y, int end_z, int time_taken, bool loop)
   // Moves an object between two given points. time_taken in miliseconds. Looping just
   // makes it do the animation again, it doesn't snap back.
anim_obj M8E_ADDANIMROTATION(obj_node model, int x_axis_speed, int y_axis_speed, int z_axis_speed)
   // Rotates an object around a specified axis. 
anim_obj M8E_ADDANIMTEXTURES(obj_node model, tex_arr_obj texture_list, int change_time, bool loop)
   // Makes a model change it's texture given a list. Ex:
   // tex_list = M8E_ADDTEXTURELIST();
   // M8E_TEXTURELISTADD(tex_list, M8E_LOADTEXTURE("blah.jpg"));
   // M8E_TEXTURELISTADD(tex_list, M8E_LOADTEXTURE("blah2.jpg"));
   // animation = M8E_ANIMTEXTURES(mymodel, tex_list, 500, true);
   // That will make mymodel change it's texture every 500 miliseconds from blah.jpg to blah2.jpg.
tex_arr_obj M8E_ADDTEXTURELIST()
   // Creates a texture array for M8E_ANIMTEXTURES.
M8E_TEXTURELISTADD(tex_arr_obj texture_list, obj_tex texture)
   // Adds a texture to the texture animate list for M8E_ANIMTEXTURES.
anim_obj, M8E_ADDANIMDELETE(obj_node model, int time)
   // Will remove the model after the specified amount of time in milliseconds.
anim_obj M8E_ADDANIMPOINTS(obj_node model, points_arr list, float speed, float closeness)
   // Moves an object along a spline given the points like M8E_ADDANIMTEXTURES. Ex:
   // point_list = M8E_ADDPOINTLIST();
   // M8E_POINTLISTADD(point_list, 10, 10, 10);
   // M8E_POINTLISTADD(point_list, 10, 15, 30);
   // M8E_POINTLISTADD(point_list, 10, 5, 50);
   // M8E_ADDANIMPOINTS(model, point_list, 1, 0.5);
   // Creates a spline of three points and moves the object smoothly across it.
points_arr M8E_ADDPOINTLIST()
   // Creates and returns point list for M8E_ADDANIMPOINTS.
M8E_POINTLISTADD(points_arr, int x, int y, int z)
   // Adds a point to the point list for M8E_ADDANIMPOINTS.
M8E_MODELREMOVEANIM

/*
* Collision system
*/

M8E_ADDCOLTERRAIN
M8E_ADDCOLMAP
M8E_ADDCOLBBOX
M8E_ADDANIMCOL
M8E_RAYCOL
M8E_ADDCOLLIST
M8E_COLLISTADD
M8E_ADDSCNCOL
M8E_GETMODELFROMCAM
M8E_GETMODELFROMRAY
M8E_GETMODELFROM2DPOS
M8E_GETPOS2DFROM3DPOS
M8E_SCREENEXIST
M8E_RENDER
M8E_OPTIONEXIST
M8E_LOADSCN
M8E_ADDZIPFILE

/*
* Model and object loading
*/

M8E_LOADTERRAIN
M8E_LOADMATRIX
M8E_LOADWATER
M8E_LOADANIMODEL
M8E_LOADMODELEX
M8E_LOADCUBEMODEL
M8E_LOADSPHEREMODEL
M8E_ANIMODEL
M8E_MODELANIMSPEED
M8E_MODELANIMSETFRAME
M8E_MODELANIMMD2
M8E_GETMODELANIMCURFRAME
M8E_MODELSETMATERIAL
M8E_LOADTEXMODEL
M8E_MODELADDCHILD
M8E_POSMODEL
M8E_GETPOSMODEL
M8E_MODELROTATION
M8E_GETROTMODEL
M8E_MODELSCALE
M8E_MODELVISIBLE
M8E_MODELMATTYPE

/*
* Camera stuff
*/

M8E_GETACTIVECAM
M8E_SETACTIVECAM
M8E_GETCAMTARGET
M8E_ADDCAM
M8E_ADDCAMFOLLOW
M8E_CAMFOLLOWUPDATE
M8E_ADDCAMFPS
M8E_CAMTARGET
M8E_CAMSETFAR
M8E_CAMSETASPRATIO
M8E_CAMSETFOV
M8E_CAMSETNEAR
M8E_CAMSETUPVECTOR

/*
* Lights
*/

M8E_ADDLIGHT

/*
* Flat mode7/8 like sprites
*/

M8E_ADDBOARD
M8E_BOARDSIZE

/*
* Text
*/

M8E_ADDTEXT
M8E_TEXTDRAW
M8E_TEXTCHANGE

/*
* Images
*/

M8E_IMAGEDRAW

/*
* GUI
*/

M8E_GUIREMOVE(int gui_item)
   // No real idea how to use these functions :what:
M8E_GUIMOVE
M8E_GUIADDFADER
M8E_GUIREMOVEALL

/*
* Urm
*/

M8E_FADERINSET
M8E_FADEROUTSET
M8E_FADERREADY

/*
* Particles
*/

M8E_ADDPARTICLE
M8E_PARTICLEADDBOXEMITTER
M8E_PARTICLEADDPOINTEMITTER
M8E_PARTICLEADDFADEOUTAFFECTOR
M8E_PARTICLEADDGRAVITYAFFECTOR
M8E_PARTICLESETSIZE

/*
* Shaders
*/

M8E_ADDSHADER
M8E_ADDSHADERFILE

/*
* Physics system
*/

M8E_PHYSINIT
M8E_PHYSADDMODEL
M8E_PHYSADDCUBE
M8E_PHYSADDCHARCONTROL
M8E_PHYSCHARCONTROLUPDATE
M8E_PHYSMATERIAL
M8E_PHYSADDCAR
M8E_PHYSCARUPDATE
M8E_PHYSADDFORCE
M8E_PHYSADDGLOBALFORCE
M8E_PHYSADDIMPULSE
M8E_PHYSADDLOCALFORCE
M8E_PHYSADDTORQUE
M8E_PHYSENABLE
M8E_PHYSANGULARDAMPING
M8E_PHYSLINEARDAMPING
M8E_PHYSOMEGA
M8E_PHYSBODYPOS
M8E_PHYSGETBODYPOS
M8E_PHYSBODYROT
M8E_PHYSGETBODYROT
M8E_PHYSTORQUE
M8E_PHYSVELOCITY
M8E_PHYSREMOVE
M8E_PHYSADDJOIN
en humos puedes mover la camara con los cursores. es necesario para los niveles a partir del dos :)

Windgate

#7
Es "buen" recurso. Lo pongo entre comillas porque sigue siendo un listado de nombres. Muchas de ellas no indican ni el número de parámetros que deben llevar ni una descripción mínima de lo que hacen.

Arg, sería un palo ponerse a editar ese documento para añadir la descripción de todo lo que falta. Además si lo hiciese yo por ejemplo, tendría que inventarme un poco la descripción de las funciones ya que sólo veo su funcionamiento externo.

¿El que creó la librería Bennu3D sigue desaparecido no? :'(

Tendremos que ponernos a ello. Una vez más prometo ponerme a ello después de exámenes (2 semanas!).

EDIT: No cumplí la promesa... El debate y propuesta de idea continúa en este hilo: http://forum.bennugd.org/index.php?topic=438.0
Iván García Subero. Programador, profesor de informática, monitor de actividades culturales y presidente de TRINIT Asociación de Informáticos de Zaragoza. http://trinit.es