Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Gráficos (https://www.clubdelphi.com/foros/forumdisplay.php?f=8)
-   -   Entorno en 3D con GLScene (https://www.clubdelphi.com/foros/showthread.php?t=42864)

kakarotv5 24-04-2007 20:49:29

Entorno en 3D con GLScene
 
Hola, estoy investigando con GLScene, he conseguido ya bastantes avances.

Resumiendo: he creado un entorno en tres dimensiones por el que me puedo mover y mirar libremente con el ratón.

El caso es que el entorno está un poco soso, faltan objetos tridimensionales poco comunes con los que interacturar.

Por ejemplo me gustaría "plantar" una gran casa en mi escena para poder recorrerla por dentro, pero ¿cómo debería de hacerlo?.

Se me ocurre que podría hacerla con el 3D Studio y luego cargarla desde Delphi.

¿Es esta una buena solución o lo mejor sería crearla directamente con Delphi?.

Lo mismo me pasa para meter personajes, en este tema ando un poco perdido, pero no creo que sea muy complicado.

Gracias y un saludo.

droguerman 24-04-2007 21:17:46

hola, está muy interesante la información que de la que nos hablas, tienes algun ejemplo de código o un enlace para investigar.

Respecto a tu pregunta, si tu casa va a ser estática quizas lo mejor sea 3d studio, tienes más detalle y posiblemente lo avances más rápido.

kakarotv5 24-04-2007 21:27:12

Cita:

Empezado por droguerman
hola, está muy interesante la información que de la que nos hablas, tienes algun ejemplo de código o un enlace para investigar.

Hola, por supuesto, si quieres te pongo un ejemplo sencillo y muy ilustrativo pero antes tienes que tener instalado GLScene en Delphi, sino no podrías compilar el programa.

Cita:

Empezado por droguerman
Respecto a tu pregunta, si tu casa va a ser estática quizas lo mejor sea 3d studio, tienes más detalle y posiblemente lo avances más rápido.

No había caído en eso, tienes razón, si quisiera por ejemplo hacer desaparecer un trozo de casa no podría hacerlo, no lo había pensado, pero de momento me conformo con poder meter algo que no sea una esfera, un cubo, un cilindro, etc.

Gracias por la aportación, esperemos más opiniones del resto de participantes del foro.

Un saludo.

kuan-yiu 25-04-2007 10:15:51

Las formas complejas normalmente se hacen con algún programa de modelado porque el resultado es mucho mejor. Luego se "encapsulan" dentro de objetos y se programan las colisiones y demás efectos.
Los objetos complejos es mejor modelarlos por secciones: pared, ventana, muro roto... Así pasar de una pared entera a una rota es más eficaz.

kakarotv5 25-04-2007 10:29:28

Cita:

Empezado por kuan-yiu
Las formas complejas normalmente se hacen con algún programa de modelado porque el resultado es mucho mejor. Luego se "encapsulan" dentro de objetos y se programan las colisiones y demás efectos.

¿Y hace bien las colisiones?. Lo pregunto porque una vez intenté hacer colisiones en un dodecahedro pero no estaban calculadas las coordenadas por lo que no pude hacerlo (aun no se como sacar las coordenadas del dodecahedro a mano, puede que sea una chorrada o puede que no).

Cita:

Empezado por kuan-yiu
Los objetos complejos es mejor modelarlos por secciones: pared, ventana, muro roto... Así pasar de una pared entera a una rota es más eficaz.

Gran idea así podría hacer cosas dinámicas como hacer aparecer o desaparecer una parte en tiempo de ejecución.

Otra duda que tengo es:

Supón que tengo una casa en formato 3ds, ¿cómo le digo a Delphi que el tejado tiene que tener la textura de teja, la pared la textura de cemento y el suelo la de madera?.

Según tú una solución sería tener tres modelos en vez de uno ¿verdad?.

Pero si yo no voy a tocar esa casa en tiempo de ejecución y quiero tener sólo un objeto, ¿no podría hacerlo?.

Gracias y un saludo.

kuan-yiu 25-04-2007 11:54:50

Las casas con fáciles, todo son planos, rectángulos y demás.
Un modo muy simple es construir la casa con formas básicas: cada pared un rectángulo (si quieres darle grosor a los muros). Luego a cada forma le añades una textura, que seguro que encuentras montones ya creadas de ladrillos, pintura y demás. De ese modo resuelves de un plumazo la estética y la forma, y de paso te inicias en el mundo de las colisiones poco a poco.
Yo de colisiones poco sé, porque sólo he trabajado con formas básicas (esferas sobre todo), pero existe mucha documentación sobre el tema (aunque está en inglés).

kuan-yiu 25-04-2007 11:56:45

No empieces con algo muy complejo sino te verás desbordado por demasiados problemas al mismo tiempo.
Mejor ir poco a poco y añadir complejidad a medida que entiendes las cosas.

kakarotv5 25-04-2007 12:28:31

Cita:

Empezado por kuan-yiu
Las casas con fáciles, todo son planos, rectángulos y demás.
Un modo muy simple es construir la casa con formas básicas: cada pared un rectángulo (si quieres darle grosor a los muros). Luego a cada forma le añades una textura, que seguro que encuentras montones ya creadas de ladrillos, pintura y demás. De ese modo resuelves de un plumazo la estética y la forma, y de paso te inicias en el mundo de las colisiones poco a poco.
Yo de colisiones poco sé, porque sólo he trabajado con formas básicas (esferas sobre todo), pero existe mucha documentación sobre el tema (aunque está en inglés).

Supongo que cuando dices rectángulo te refieres a un prisma con volumen ya que un rectángulo no tiene grosor.

Yo me refería a hacer una casa por ejemplo con 3D Studio o con otro programa similiar, luego meterla en Delphi y aplicar texturas al tejado, las paredes y el suelo.

A ver si alguien nos saca de dudas.

Y dudo que se puedan tratar colisiones así de primeras sin calcular coordenadas con un objeto 3ds.

A eso me refería, ya se que si me lio a hacer planos y prismas puedo construir una casa y aplicar texturas a cada plano o prisma, mi objetivo era el otro que te he dicho arriba.

Cita:

Empezado por kuan-yiu
No empieces con algo muy complejo sino te verás desbordado por demasiados problemas al mismo tiempo.
Mejor ir poco a poco y añadir complejidad a medida que entiendes las cosas.

Tienes toda la razón.

Muchas gracias y un saludo.


La franja horaria es GMT +2. Ahora son las 18:33:33.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi