des de hace unos dias, he estado investigando el modulo Hiper3D:
viewtopic.php?f=205&t=1059
y luego intentando buscar recursos 3D y algun editor...
viewtopic.php?f=56&t=4769
Gracias a este editor: MilkShape (DirectX Mesh Tool) y el misfit3dv1.3.8
Ya puedo importar los modelos 3D DirectX(.X)
La conversion es esta: DOGA-L3:DirectX(.X)-> MilkShape (DirectX Mesh Tool):.ms3d -> misfit3dv1.3.8: MD2
y convertirlo al MD2 que soporta el Hiper3D.
Utilizo el DOGA-L3: http://www.doga.co.jp/english/english_t ... ts/L3.html
Japones:(y descarga): http://doga.jp/2008/programs/dogal/dogal3/index.html
Es un sencillo editor de modelos 3D,Render 3D y alguna cosa mas. que funciona por piezas 3D. no se retocan poligonos, solo dejan estiralos,rotarlos.
Esto es una muestra de algunos modelos 3D y algun proyecto 3D con DarkBasic Pro.
- Hidden content: Show
Estas son TODAS las piezas que se pueden utulizar para la creacion de tu modelo 3D:
- Hidden content: Show
Pues quiero realizar un experimento para comprobar que rendimiento y que puede soportar el modulo Hiper3D.
Lo que esta claro es que contra mas Resolucion/dimensiones tenga el Graph de renderizado 3D, es mas lento...
Mas simple, contra mas pixeles que necesita pintar el Render 3D, mas lento es.
Es decir: si enfocamos con la camara a un objeto muy distante.. que de lejos se ve muy pequeño, hira muy rapido.
pero en contra: si nos acercamos mas y mas al objeto, ira perdiendo velocidad, cada vez ira mas lento...
Todo depende el numero de pixeles en pantalla del Render3D necesita pintar cada frame.
Asi que hay que buscar ese equilibrio entre resolucion de pantalla y rendimiento que no sea muy lento.
todo depende de los FPS que queremos en nuestro proyecto.
De momento solo tengo un sencillo visor3D, para comprobar mis modelos 3D y ver si tienen impacto de rendimiento:
- Program Visor_3D;
- GLOBAL
- M_V2X,M_V2Y;
- MD2_MESH,MD2_OBJ;
- MD2_TEXT_IM,MD2_TEXT_TX;
- begin
- VISIBLE=joy_status=false;
- set_mode(640/2,480/2,32,1,2,0);set_fps(60,1);
- M_V2X=MODE_GET_WIDTH()/2;M_V2Y=MODE_GET_HEIGHT()/2;
- // Create main surface to render game in this..
- graph=MAP_NEW(MODE_GET_WIDTH(),MODE_GET_HEIGHT(),0,0,0);
- // call initializer of hiper3D library..
- init_hiper3d(0,graph);
- SCREEN_SET_COLOR(62,62,255);
- // set scene in background..
- chdir("MD2");
- MD2_MESH=load_mesh("modelo3d.md2");
- MD2_TEXT_IM=LOAD_IMAGE("textura.png");
- MD2_TEXT_TX=load_texture(0,MD2_TEXT_IM);
- MD2_OBJ=new_object(2,0,0,0,100,100,100);
- set_object_mesh(MD2_OBJ,MD2_MESH);
- set_object_texture(MD2_OBJ,MD2_TEXT_TX);
- CAMARA3D(250,650);
- WRITE(0,MODE_GET_WIDTH(),MODE_GET_HEIGHT(),8,&FPS);
- z=512;VISIBLE=TRUE;
- signal(id,s_freeze);
- frame;
- end
- //---------------------------------------------------------
- process CAMARA3D(z=0,x=0,y=0);
- begin
- visible=false;
- write(0,0,0,0,&x);write(0,50,0,0,&z);
- write(0,0,10,0,&angle);
- loop
- if(key(_a)or key(_left))angle+=1000;
- SET_OBJECT_ROTATION(MD2_OBJ,0,angle/10,0);
- end
- if(key(_d)or key(_right))angle-=1000;
- SET_OBJECT_ROTATION(MD2_OBJ,0,angle/10,0);
- end
- if(key(_w)or key(_up))x-=5;end
- if(key(_s)or key(_down))x+=5;end
- if(key(_r))z+=5;end
- if(key(_f))z-=5;enD
- set_camera_position(y,z,x);
- if(key(_esc));exit(0,0);end
- frame;
- end
- end
De momento no tengo detalles precisos sobre el rendimiento y el detalle 3D que puede soportar.
depende de los FPS y la resolucion de salida del render 3D. y tambien si cuando la camara de juego enfoca a un objeto(o mas de uno) de tal manera que tape topa la region de dibujo del render 3D.
Esta claro que contra mas pixeles necesita pintar, mas lento funciona.
Que estoy haciendo ahora:
Por ahora voy creando un modelo 3D un poco LowPolygon... aun asi, me permitido mas poligonos de lo normal.
y de momento tengo suerte.
por ejemplo la mano que se ve en el editor 3D... con todo el brazo y cuerpo...
un total de 232 poligonos
y me lo aguanta bien.
Yo lo exporto como 2 Objetos 3D, la razon es para aplicar una textura a cada OBjeto 3D
limitacion de Hiper3D y MD2:
por desgracia del formato MD2 que no es capaz de soportar multiples archivos de texturas(Varios Materiales/Grupos)a la vez, en un unico Modelo3D.
Asi que no tengo otra que Dividir el Modelo3D, por las texturas que usa.
1 modelo 3d/Objeto 3D == 1 Textura.
COSAS QUE NO EXISTE EN HIPER3D
-Una IMPORANTE limitacion del Render Hiper3D(y quizas el MD2) es que NO soporta Texturas con transparencias/canal Alpha.
-Tampoco no se puede setear a un Objeto 3D que tenga un grado de transparencia un alpha, como un proceso normal 2D con la Local Alpha.
-Faltaria Iluminacion(un punto de luz) y Foggin(niebla como el modo7)
Si tubiera esas cosas, yo ya tendria suficiente, para un buen resultado 3D.
De momento voy practicando en crear, exportar, y probar el resultado.
Quizas me atreva a cargar un complejo Modelo3D de unos 512 o 1000 poligonos, aver si es capaz de cargarlo , mostrarmelo en el Render3D y ver que rendimiento tiene.
Si veo que el Render3D no le afecta mucho el numero de Poligonos del Objeto (o Objetos) pintado, quiere decir que solo hay que tener cuidado con la Resolucion de pantalla del Render3D.
de momento con 232 Pologonos a la vez, visto en toda la pantalla, me tira bien a 60FPS
Sigo investigando.
PD: por favor no me recomienden OTROS editores 3D, me resultan muy complejos. ya estoy bien con el sencillo DOGA-L3.