G60 G60
Páginas: [1] 2 3 4   Ir Abajo
  Imprimir  
Autor Tema: Tutorial sobre implementación de librerías Google Sketchup y objetos 3d  (Leído 65522 veces)
0 Usuarios y 2 Visitantes están viendo este tema.
20 Octubre, 2013, 18:58:43
AlbertoDur
Usuario Ocasional
***
Desconectado Desconectado

Mensajes: 151



En línea
Tutorial sobre implementación de librerías Google Sketchup y objetos 3d

En primer lugar deciros que no sé exactamente si he ubicado bien el contenido en la web. Como se trataba de una especie de tutorial pues lo he puesto donde están los tutoriales. En otro caso agradezco a los moderadores el trabajo de moverlo a su sitio.

En segundo lugar que lo he hecho lo más rápido posible. Espero no tenga graves errores. De todas formas los mismos pueden corregirse.

Esto, en realidad, más que un tutorial es la forma en la que se me ha ocurrido la incorporación de los objetos 3d. Puede ir perfeccionándose entre todos y buscándosele variantes hasta que consigamos un método perfecto de incorporación de objetos.

LAS LIBRERÍAS DE GOOGLE SKETCHUP Y X-PLANE

En la página de Google sketchup hay miles de objetos 3d maravillosos que pueden ser instalados en el x-plane. Ej: http://sketchup.google.com/3dwarehouse/cldetails?mid=46f3f70fe38d801af6dcb9e43126f21d&prevstart=0
 También podemos buscar más objetos por la red tecleando en Google “free 3d models”.

La cuestión de insertar esos objetos en el x-plane en el primer momento parecía imposible o extraordinariamente tedioso. No es ni una cosa ni la otra:

Para ello necesitamos las siguientes herramientas:

Sketchup  o Sketchup Pro con su plugin para x-plane.

XnView (es un programita free de tratamiento de imágines muy fácil y versátil)

Ultraedit (como siempre) o un editor de textos que sea potente.

Overlay editor (como siempre)


Empezamos:

1º Nos bajamos un objeto de google sketchup en su formato collada. De forma que contenga el objeto 3d y toda su librería de texturas.

2º Lo primero que tenemos que saber es que x-plane únicamente reconoce una textura por objeto (.obj) y en formato .png 256X256.

Los objetos que nos bajamos no están en formato obj. Asimismo llaman a varias texturas (normalmente jpg) y además estas texturas no tienen formato 256X256. Por tanto de momento imposible para x-plane.

PRIMER PASO

Entonces lo primero que tenemos que hacer es en vez de un objeto con muchas texturas es configurar  muchos (mini)objetos con una textura cada uno.

Como lo hacemos?. Imaginemos que tenemos un objeto que se llama castillo por ejemplo en formato .dae.

Dicho objeto al descomprimirlo tendrá dos directorios:
-   Images: donde se encuentran las texturas
-   Models: donde se encuentra el objeto 3d.

Pues bien vamos a ir configurando un objeto obj por cada textura. Para ello:

a)   Del directorio images o donde se encuentren las texturas las borramos o movemos todas menos una (la primera por ejemplo) supongamos que se llama texture0.

b)   Abrimos el Sketchup e importamos el objeto. 

Difiere la versión de Sketchup  v.8 a la versión 2013 (o Pro) a la hora de importar objetos. Mientras la primera los importa a un punto fijo, la segunda habilita la herramienta de mover para ubicar el objeto en el plano. Esto es peligroso puesto que si vamos a importar varias veces el objeto con diferentes texturas para crear tantos objetos como texturas, si los objetos importados no tienen exactamente la misma ubicación en el plano 3d, después, a la hora de ensamblar, no coincidirán las diversas partes del mismo, con un resultado lamentable.

Para ello hacemos lo siguiente:

-   EN SKETCHUP 2013:

1º) Importamos el objeto por primera vez sin ninguna textura.

2º) Después de ubicarlo o instalarlo en el plano lo guardamos como Plantilla (Barra de Menús - Archivo - Guardar como plantilla).

Esa plantilla se quedará como predeterminada mientras trabajamos con el fin propuesto y cada vez que arranquemos el Sketchup. (Cuando terminemos podemos dejarla como plantilla y usar otra o eliminarla : Barra de menús: Ventana - Preferencias - Plantilla).

3º) Ya con la plantilla operativa cada vez que importemos el objeto con una textura en las siguientes operaciones, lo haremos coincidir minuciosamente con la plantilla girándolo y comprobando que coincide con la misma en sus tres dimensiones.

Una vez coincidente con la plantilla ya podremos llevar a cabo la operaciones que se detallan a continuación y grabar y exportar los diversos objetos con la seguridad de que coincidirán bien en el ensamblado final.

-   EN SKETCHUP 8:

El Sketchup 8, como se dijo, no necesita la plantilla ya que importa siempre al mismo punto sin activar la herramienta de mover. Asi, en este aspecto, podemos decir que es mejor que el Pro.

c)    Al importar el objeto nos dirá que faltan texturas (ya lo sabemos) y lo importará sin texturar menos la parte a la que corresponde la textura que hemos dejado en el directorio que aparecerá texturada. Esa parte es la que vamos a configurar como nuestro primer .obj para después ensamblarlo con los demás con el Overlay Editor

d)   En el Sketchup lo que tenemos que hacer es borrar todo lo no texturado. Para ello

-   Una vez importado el objeto, seleccionamos todo (Editar-Seleccionar todo o CTRl+A). (En la v.2013 se encuentra todo seleccionado por defecto sin necesidad de CTRL+A)

-   Ahora hay que resaltar la superficie no texturada.(Barra de menús: Herramientas-HighLight untextured.

-   Así::

-    EN SKETCHUP 8:

-   Con la opción de menú : Herramientas-HighLight untextured.

§   Con la opción de menú: Herramientas – HighLight untextured se marcarán en rojo las áreas sin textura del objeto.

§   ( Hay que tener en cuenta (normalmente para versiones antiguas del Sketchup) que si con la opción de menú Herramientas-HighLight untextured no obtenemos el resultado apetecido de que nos seleccione exactamente la superficie no texturada, nos vamos a una capa de las no texturadas (rojo fuerte) y con la tecla de selección (space) pulsada vamos clikeando hasta seleccionarla ¡PERO OJO!, QUE QUEDE  SELECCIONADA SOLO LA SUPERFICE DE LA CAPA NO LOS VERTICES O ARISTAS DE LA MISMA, (ya que lo borraría todo) .Cuando la tenemos seleccionada: Boton derecho del raton – Seleccionar – Todo el material (asi veremos que nos ha seleccionado todo lo no texturado, si por cualquier motivo vemos que ha seleccionado zonas txturadas, shift+ratón las excluimos de la selección y ya está.)

§   Le damos en el teclado a SUPR y ya nos habrá borrado todo lo no texturado.

-    EN SKETCHUP 2013:

§   Con la opción  Herramientas-HighLight untextured ya resalta en rojo lo no texturado sin necesidad de ir seleccionando con varias pulsaciones y sin afectar a aristas ni vértices.

§   Le damos en el teclado a SUPR y ya nos habrá borrado todo lo no texturado.

e)   Una vez borrada la totalidad del objeto (menos la superficie texturada) lo grabamos con el sketchup y lo exportamos en formato x-plane dándoles nombre (Ejemplo casa1.obj,casa2.obj etc).

f)   Ya tenemos nuestro primer (semi)objeto con su única textura.

g)   Vamos al directorio de texturas,  borramos la que teníamos (texture0, como dijimos en el ejemplo) y en su lugar añadimos la textura siguiente y repetimos la operación anterior. Asi vamos configurando una a una las diferentes partes del objeto con su única textura que después ensamblaremos con el overlay editor.

SEGUNDO PASO

Una vez hecho lo anterior ya tendremos múltiples .obj ensamblables con su textura cada uno. Pero, normalmente dichas texturas no son .png 256X256 que son las única que quiere el x-plane.

Entonces utilizamos el siguiente programita: El XnView.

1º Abrimos el directorio donde están las texturas o las trasladamos a un directorio ad hoc y las seleccionamos todas en el XnView.

Después – Herramientas – Conversión por lotes (añadimos la carpeta donde están las texturas) – Formato de salida png – y en la solapilla de arriba (Transformaciones) configuramos- cambiar tamaño-añadir-Parámetros:ancho:256:Alto:256 y deshabilitamos las opciones “mantener proporción” y “seguir orientación”.

Ejecutamos en “Proceder” y ya tendremos todas las texturas en .png 256X256.

Atencion a un detalle: Hemos apreciado que algún objeto 3d tiene alguna textura con el mismo nombre pero con distintas extensiones. Es dedir P.ej: texture1.jpg y texture1.png.

Eso no nos serviría a la hora de querer implementar el objeto en x-plane y además, para que el XnView no sobreescriba y perdamos una de las texturas renombraremos una de ellas por ejemplo a texture1b.png

TERCER PASO: Asignacion de texturas.

Sabemos que los .obj del x-plane se pueden editar con un editor de texto y allí vemos la textura que tiene asignada. Como hemos visto en el paso anterior hemos cambiado la extensión de todas las texturas a .png y los obj (salvo excepciones) seguirán llamando a los jpg o texturas originarias.

Para cambiarlo lo hacemos con el Ultraedit. Para ello:

Abrimos el UEdit y –Buscar-Reemplazar en archivos- (le damos el directorio ) y le decimos que nos reemplace .jpg por .png en todos. Asi ya los obj llamarán a sus png.

También podemos hacerlo manualmente editando los obj uno a uno pero el método anterior es más rápido. NO OLVIDAR lo anteriormente expuesto respecto a texturas renombradas (texture0b, p.ej.) de manera que hay que procurar que cada obj. Llame a su textura particular.

CUARTO Y ULTIMO PASO: Inserción del objeto en una librería. No he querido detenerme mirando si hay algo en el foro sobre creación de librerías. La forma de crearlas se encuentra en http://marginal.org.uk/x-planescenery/library_tutorial/ . De todas formas si alguien tiene problemas me comprometo a hacer otro dia una guía rápida sobre creación de librerías.

Seguimos. Para insertar nuestro nuevo objeto en una librería creamos un directorio de librería o creamos un nuevo directorio en el directorio donde tengamos nuestra librería de x-plane, con el nombre del objeto y en el mismo meteremos todos los obj y todos los png y lo pondremos en el fichero índice de objetos de la librería “library.txt”. Asi ya lo tendremos para poder usarlo en cualquier escenario..

Ya finalmente sólo nos queda ensamblar el objeto parte a parte en el escenario que queramos mediante el OVERLAY EDITOR de forma que establecemos el punto donde va a ir el objeto. Y ya sin mover para nada ese punto inicial, seleccionamos en la librería el objeto y vamos añadiendo mediante el botón + del overlay o pulsando enter las distintas partes del objeto hasta que quede incorporado al escenario.

That’s all.




20 Octubre, 2013, 21:55:35 #1
grrr05
Superusuario
*******
Desconectado Desconectado

Mensajes: 4344


If it ain't broke don't fix it


WWW
En línea
Re: Tutorial sobre implementación de librerías Google Sketchup y objetos 3d

Gracias  Azn

No se me había ocurrido el hecho de eliminar las texturas para separar los objetos eliminando su correspondiente geometría, muy buena idea Giñar

Sólo dos apuntes,

- X-Plane 9 admite texturas hasta 2048x2048 y X-Plane 10 hasta 4096x4096, y en cualquier relación de aspecto siempre que las medidas de X y Y sean potencia de 2 (256,512,1024, etc...).
Dicho esto, si fuera el caso que nos encontramos con texturas con unas medidas no estándares siempre las podemos redimensionar a las medidas apropiadas aunque la textura acabe deformada, el mapeado se calcula mediante fracciones del tamaño relativo, que siempre equivale a 1.

- No es necesario el uso de librerías (library.txt) siempre que metamos los objetos resultantes dentro de la misma carpeta del escenario (o subcarpetas que estén dentro). Los paths (rutas) virtuales siempre parten de la raiz (carpeta del escenario). Las librerías son útiles en otros casos como para referenciar un único objeto y que de éste se deriven objetos distintos para dar variedad, por ejemplo los coches (tanto estáticos como dinámicos), dentro del library.txt podemos definir un "objeto virtual" que se llame cars.obj y que este apunte -por ejemplo - a car01.obj, car02.obj, car03.obj etc donde cada uno de estos objetos sería un modelo de coche distinto. De este modo al crear un parking de coches en un escenario sólo debemos utilizar el objeto cars.obj, y X-Plane ya se encargará de aleatorizar los modelos al que hace referencia dicho objeto, y por si no fuera poco cada vez que se arranque el XP variará (no se si me explico...).
Las librerías también pueden ser útiles en otros casos (objetos backup, como el "placeholder" de opensceneryx), pero para un escenario que contenga objetos exclusivos no es necesario en absoluto.

Si me funciona todo bien ya colgaré algunas capturas.

« Última modificación: 20 Octubre, 2013, 22:20:01 por grrr05 »




Albert Ràfols
www.spainuhd.es
21 Octubre, 2013, 01:02:57 #2
AlbertoDur
Usuario Ocasional
***
Desconectado Desconectado

Mensajes: 151



En línea
Re: Tutorial sobre implementación de librerías Google Sketchup y objetos 3d

De nada. Un placer compartir ideas con entendidos e interesados que al momento captan la esencia del tema.

Fíjate, ya he aprendido dos detalles más con tu respuesta: la dimensión de las texturas (creo que el 256x256 lo ví en algún sitio allá por la versión 8 y no volví sobre el tema) y el tema de las librerias. Yo lo utilizo porque hace tiempo empecé a elaborar una librería propia que siempre llevo de comodín con los objetos más atractivos que voy encontrando y cuando convierto un escenario o lo veo deficiente suelo tirar de la librería estándar en vez de incluir los objetos en los diversos escenarios.

Respecto a lo que comentabas en el otro post sobre la posibilidad de trabajar con comandos, por ahí van los tiros, se trataría de la elaboración de ficheros por lotes aunque desde dichos ficheros por lotes se requiriera la ejecución de aplicaciones externas en bucles o rutinas de ida y vuelta. No obstante, no sé por qué, siempre le tuve aversión al Blender y lo esquivé con el AC3D o incluso el SketchUp y respecto al Python igual; si no habia más remedio aguantaba Python, si no, déjalo por ahí.

El esbozo de la elaboración de un script o ejecutable para la ejecución del tema que nos ocupa (algunos objetos 3d tienen muchas texturas) no es, de momento, más que una idea y he de confesar que  me da un poco de miedo. He comprobado que cuando sólo eres aficionado, meterte en temas de programación es cuando más te absorbe la máquina en todos los aspectos.

Sería estupendo que los entendidos en la materia, como comentabas, se tomasen interés y analizasen la viabilidad del tema.

Lo importante es que la idea del spanish landmarks, que comentabas, fuera, con el granito de arena de todos, tomando forma y avanzando poco a poco... Y después el Europe landmarks... Y después el world landmarks... And so on...



21 Octubre, 2013, 17:29:56 #3
grrr05
Superusuario
*******
Desconectado Desconectado

Mensajes: 4344


If it ain't broke don't fix it


WWW
En línea
Re: Tutorial sobre implementación de librerías Google Sketchup y objetos 3d

Ok, acabo de hacer las primeras pruebas con un par de objetos de Barcelona, los mas sencillos que he encontrado (6 texturas cada modelo).

Torres Trade


Plaza España (torres venecianas)


Mola  Sonreir

La verdad, los objetos no son para nada óptimos para X-Plane, el segundo modelo tiene 20000 triángulos en total, pero almenos mi máquina ni se entera. Pero lo bueno es que el trabajo duro ya está hecho, y la conversión es facil mediante el tutorial, aunque repetitiva y monótona (he visto objetos con 400 texturas!!) pero es que nadie regala nada, y aunque aburrido a mas no poder merece muchísimo la pena. Os recuerdo a los que no habéis estado al caso, que me tiré un mes en modelar y texturizar la twr de LERS (sin hacer el vago y el gandul, no como ahora...), y esos dos objetos me han llevado sólo una hora convertirlos.

No me gusta el tema de automatizar el procesamiento de las texturas, he visto que te vienen en cualquier medida, relación de aspecto, etc... sin tener en cuenta estándares ni ná. Lo que he hecho -lo mas duro del proceso- ha sido abrir cada una en photoshop para redimensionar a las medidas habituales (potencia de 2) intentando mantener una relación de aspecto aproximada y siempre redimensionando a la baja (primer valor potencia de 2 mas bajo a partir del valor original).

También me he encontrado con algunos modelos que tienen caras sin texturizar (la Torre de Collserola por ejemplo, en cada uno de los cuatro modelos disponibles...) y estos requieren edición manual sí o sí. Pero ya puestos también se le pueden añadir las balizas luminosas, o si hay algún rascacielos con una helisuperficie en el tejado asignarle el atributo hard para que sea funcional, etc...


Y ahora la pregunta del millón... ya se que soy muy pesao con esto...
¿Cómo va el tema copyright con el contenido del Warehouse?

El ToS o EULA de google, al igual que casi todos está escrito en un idioma o mas bien con una jerga que no entiendo en absoluto.

http://www.google.com/intl/es/sketchup/3dwh/tos.html

En lo que al contenido de Warehouse se refiere, dice:

(c) By publicly posting or displaying the content you give other end users of the Services a perpetual, sublicensable, irrevocable, worldwide, royalty-free, and non-exclusive license to reproduce, adapt, modify, translate, publish, publicly perform, publicly display and distribute (subject to the restrictions set forth in Sections 11.4 and 20.3 of these Terms) any Content or derivative works thereof which you publicly post or display on or through the Services.

Los usuarios finales (¿sólo los de warehouse o todos?) pueden adaptar, modificar y distribuir cualquier contenido o derivado.
Sujeto a las restricciones definidas en el párrafo 11.4 (el 20.3 no nos afecta)

11.4 Notwithstanding anything to the contrary, without Google’s prior authorization, you may not: (i) aggregate Content obtained from Google Services for redistribution, or (ii) use or distribute Content obtained from Google Services in a mapping or geographic application or service.

...Ahora ya me he perdido, no he entendido nada.

También he visto en foros que se permite el uso libre del contenido, pero ya sabemos que en internet no hay credidiblidad y menos cuando los participantes de dichos foros no tienen absolutamente nada que ver ni con Google, ni Trimble ni nada, son End Users al igual que nosotros...

¿Alguien que sepa de la materia puede arrojar algo de luz sobre este tema?
Claro que todo eso lo digo por si hay intención de publicar un escenario. Como siempre si se lo hace uno mismo y es para uso -exclusivo- privado no hay ningún problema.

EDITO
Tremendo!! 30 texturas  Sonreir



« Última modificación: 21 Octubre, 2013, 19:35:20 por grrr05 »




Albert Ràfols
www.spainuhd.es
21 Octubre, 2013, 21:51:30 #4
AlbertoDur
Usuario Ocasional
***
Desconectado Desconectado

Mensajes: 151



En línea
Re: Tutorial sobre implementación de librerías Google Sketchup y objetos 3d

That's right!.

Con el hecho de que te entusiasme la idea (los resultados son fabulosos) ya me doy por casi satisfecho.

Respecto al tema que comentas de la redimensión de las texturas, el tema que señalabas del Photoshop me parece demasiado trabajo. Vale para un edificio concreto o que le tengas muchas ganas. Para el resto, la utilización del programita XnView (al que conocí exclusivamente por el tema de la redimensión de las texturas Google Sketchup), como indica el tutorial te permite la redimensión y la resolución de la textura por directorios enteros en cuestión de segundos. Échale un vistazo a la rutina de redimensión porque es bastante completa y si el resultado te es suficiente, fíjate el trabajo que te ahorras.

Sigo dándole vueltas al tema de suavizar el trabajo. Igual no hace falta tanta profundidad de programas externos. Quizá nos sobre con plugins internos que realicen el trabajo duro. Lo más duro es el importar - modificar - exportar que es la tarea repetitiva.

El Sketchup sólo lo he utilizado para el presente tema, para otras cuestiones 3d relacionadas con X-Plane siempre utilicé el AC3D. No tengo mucha idea más allá de la básica en el manejo del Sketchup. Pero recordé que siempre trabajé sobre los DSF a través del Ultraedit y de sus scripts elaborados en regular expresions con la herramienta que el mismo te suministra a través de lo que llama Macros.

Buscando a ver si había algo parecido en Sketchup he conocido que trabaja también, desde dentro, con programación de scripts con lo que él llama lenguaje Ruby.

http://www.sketchup.com/intl/es/download/rubyscripts.html

Eso podía salvarnos la vida: Un plugin interno o un par de ellos que: dándole un path con el directorio de las texturas: 1º Seleccionara primera textura. 2º Importara objeto 3º Seleccionara geometría texturada 4º Borrase el resto 5º Exportase obj 6º Pasase a la siguiente textura. Return.

Fíjate en esta página http://rhin.crai.archi.fr/rld/plugins_sections.php en la zona de Files/Misc hay algunos plugins que apuntan hacia nuestras intenciones. Así que por favor, !!alguien que conozca ruby!!!. No pedimos tanto.

Creo que merece la pena, porque el trabajo no es tan ingrato y los resultados son espectaculares. 

We keep trying...


21 Octubre, 2013, 23:11:42 #5
zxplane
Administrador
Superusuario
*****
Desconectado Desconectado

Mensajes: 4288




En línea
Re: Tutorial sobre implementación de librerías Google Sketchup y objetos 3d

Han quedado muy bien esos edificios.
Este tema se ha abordado ya algunas veces.

En el punto 11.4 viene a decir:

No se permite la distribución sin la autorización de Google en estos casos:

1- Agregar contenido de los servicios de Google para la redistribución.
ó
2- Utilizar o distribuir contenido a partir de los servicios de Google para programas de mapas o servicios geográficos.

Es sobre todo en el punto 2 donde Google incide especialmente, ya que algunos desarrolladores utilizaron estos recursos para utilizarlos en aplicaciones de navegación GPS en dispositivos móviles.

Por el tipo de contenido traslado el hilo como tema fijo a la sección WorldEditor (WED) & Overlay Editor
Sección para comentar dudas sobre la creación de escenarios, aeropuertos y objetos para x-plane.


21 Octubre, 2013, 23:44:05 #6
grrr05
Superusuario
*******
Desconectado Desconectado

Mensajes: 4344


If it ain't broke don't fix it


WWW
En línea
Re: Tutorial sobre implementación de librerías Google Sketchup y objetos 3d

Si, creo que yo he estado presente algunas de las veces que se ha abordado Cheesy
Pero ahora ya es un hecho  Sonreir

Respecto al tema que comentas de la redimensión de las texturas, el tema que señalabas del Photoshop me parece demasiado trabajo. Vale para un edificio concreto o que le tengas muchas ganas. Para el resto, la utilización del programita XnView (al que conocí exclusivamente por el tema de la redimensión de las texturas Google Sketchup), como indica el tutorial te permite la redimensión y la resolución de la textura por directorios enteros en cuestión de segundos. Échale un vistazo a la rutina de redimensión porque es bastante completa y si el resultado te es suficiente, fíjate el trabajo que te ahorras.
Na, esto está solucionao ya.

He encontrado un script para Gimp que hace exactamente lo mismo que yo con PS, escalar las texturas a potencia de 2, tanto X como Y al valor mas bajo.
Bueno de hecho el script lo hace a la alta pero me "he iluminao" y mi modificación funciona.

http://gamedev.stackexchange.com/questions/12997/tool-to-convert-textures-to-power-of-two (último post)

Corre desde línea de comandos y procesa por lotes, todos los jpg de dentro de la carpeta.
No me preguntes porqué pero dentro del script he visto la palabra "ceiling" y la he sustituido por "floor" (lógica aplastante, notése la ironia...) y al ver que el NP++ me ha pintado la palabreja de color azul he pensado, ¡no si hasta será un comando válido y todo! y cierto... he invertido el funcionamiento del script y el cálculo lo hace a la baja. En serio, ha sido un "por probar que no quede..." ya que apenas sabía lo que hacía.

El script original con mi modificación (he cambiado el comentario también)
Código:
(define (script-fu-resize-upper-pot pattern)
(let* ((filelist (cadr (file-glob pattern 1))))
(while (not (null? filelist))
(let* ((filename (car filelist))
(image (car (gimp-file-load RUN-NONINTERACTIVE filename filename)))
(drawable (car (gimp-image-get-active-layer image))))
 (let*
        (
            ;; Store LOWER power of two for height and width of image
            (height (pow 2 (floor (/ (log (car (gimp-image-height image))) (log 2)))))   
            (width (pow 2 (floor (/ (log (car (gimp-image-width image))) (log 2)))))
        )
(gimp-message filename)
(gimp-image-scale-full image width height INTERPOLATION-CUBIC))
(gimp-file-save RUN-NONINTERACTIVE image drawable filename filename)
(gimp-image-delete image))
(set! filelist (cdr filelist)))))

No me convencía el Xnv por el hecho de que escale a unos valores fijos y por ejemplo, el objeto de la última captura tenía entre otras, una textura de 352x1106 y con este script queda reducida a 256x1024, si ahora le sumamos que se ejecuta desde línea de comandos y procesa por lotes, creo que lo convierte en "cuasi-perfecto" para este cometido.

Los scripts de SU me los tengo que mirar aún, a ver si mañana cuando salga del curro puedo echarle un vistazo.




Albert Ràfols
www.spainuhd.es
22 Octubre, 2013, 00:02:32 #7
AlbertoDur
Usuario Ocasional
***
Desconectado Desconectado

Mensajes: 151



En línea
Re: Tutorial sobre implementación de librerías Google Sketchup y objetos 3d

Estupendo!.

Ya sabía yo que la semilla caía en buena tierra...

Si pudiéramos conseguir algo respecto a la cuestión de atenuar el trabajo repetitivo, sería genial!.

We keep trying.


22 Octubre, 2013, 15:47:35 #8
grrr05
Superusuario
*******
Desconectado Desconectado

Mensajes: 4344


If it ain't broke don't fix it


WWW
En línea
Re: Tutorial sobre implementación de librerías Google Sketchup y objetos 3d

Acabo de encontrar este plugin de SU
http://rhin.crai.archi.fr/rld/plugin_details.php?id=744

Select by material - el nombre lo dice todo.

Básicamente con esto te ahorras todo el peñazo de ir eliminando las texturas e importar el modelo constantemente para separar los objetos.
Consta de dos partes; Selección de las entidades POR MATERIAL y ocultar entidades no seleccionadas.

Con el modelo ya importado:

-Seleccionar el material (textura) desde la ventana de materiales
-Llamar "Material Selection" (desde el menú complementos)
-Llamar "Hide All Un-Selected (menú complementos)
-Guardar modelo (tal y como se dice en el tutorial, dándole un nombre distinto cada vez)
-Exportar a X-Plane.
-Deshacer última acción (Menú edición / tecla Alt+Retroceso)
-Repetir desde el primer paso, para cada textura que tenga el modelo.


No sólo quita trabajo a la hora de hacerlo manualmente, creo también que el script para automatizarlo sería mucho mas simple; a partir de la lista de materiales del modelo se van llamando las funciones de este plugin y que repita el proceso hasta terminar con la lista, sin tener que lidiar con archivos externos ni nada...
 

« Última modificación: 22 Octubre, 2013, 17:12:16 por grrr05 »




Albert Ràfols
www.spainuhd.es
22 Octubre, 2013, 16:19:47 #9
jorduran
Superusuario
*******
Desconectado Desconectado

Mensajes: 9986



WWW
En línea
Re: Tutorial sobre implementación de librerías Google Sketchup y objetos 3d

Y yo sin poder perderme, bueno, solo con la lectura  Cheesy Cheesy, para cuendo disponga de los medios ya habreis creado media España, (la otra media va bien  Lengua )


Un buen aterrizaje es el que sales andando.
Un gran aterrizaje es cuando el avion puede seguir volando.

Telefonica ha cerrado mi WEB sin preaviso.
PHOTOBUCKET A CORTADO LAS FOTOS
23 Octubre, 2013, 12:51:41 #10
AlbertoDur
Usuario Ocasional
***
Desconectado Desconectado

Mensajes: 151



En línea
Re: Tutorial sobre implementación de librerías Google Sketchup y objetos 3d

Venga compañeros, todas las manos son pocas. Es un tema complicado, pero como salga más o menos bien, !vaya pelotazo!.

Grrr05, en el tema gráfico eres un crack. Cuesta trabajo seguirte.

He estado probando el plugin que comentabas referente a material select. Podría ser una solución intermedia mientras se consigue otra más elaborada. Pero me está volviendo loco. Con algunas texturas funciona y con otras no, dentro del mismo objeto. Tiene problema a la hora de fijar la selección, de forma que no selecciona y, lógicamente al ejecutar el hide unselected borra la totalidad del objeto.

Lo he probado en Sketchup 7 (ya que la página dice que se hizo para el 7) y en Sketchup 8, 32 y 64 y hace lo mismo: Con algunas texturas no da problemas, con otra no las fija, no las selecciona. Y la cuestión es que no encuentro el criterio por el que actúa de esa manera cuando analizando las texturas son prácticamente iguales. Las he redimensionado e incluso cambiado de formato y nada. Ya no sé si pudiera ser su ubicación en el objeto por cuestión de grupos, aristas o vértices, pero tampoco debiera ser. La verdad es que me tiene desconcertado.

Por favor, échale un vistazo a ver que te parece.


23 Octubre, 2013, 14:08:42 #11
Dragunov
Usuario Ocasional
***
Desconectado Desconectado

Mensajes: 164



En línea
Re: Tutorial sobre implementación de librerías Google Sketchup y objetos 3d

Yo ayer le heche un vistazo a este tema, la verdad que hay objetos muy chulos que quedarian de lujo en los escenarios de xplane, de hecho me baje 2 de ellos muy chulos, una palmera en 3d  y un hangar con una torre de la 2 guerra mundial o asi, y me tire hasta las 2 de la  madrugada con la dichosa palmera y nada que no habia manera de hacerla funcionar en xplane, y eso despues de aver seguido el tutorial paso por paso.

El problema es el largo proceso que hay que hacer, pero si funcionara de una manera mas sencilla seria la leche, hay miles y miles de objetos que harian que nuestro simulador fuera perfecto, si a eso le añades que para mover un programa de diseño 3d como sketchup hace falta un ordenador potente la cosas enmpeoran, solo para cargarme la dichosa palmera el ordenador tardaba lo suyo...

La idea es muy buena, a ver si con el tiempo se pule y logramos que el proceso de conversion a xplane sea mas facil, solo de pensar como quedaria la palmera y el hangar en el aeropuerto de mundana, en un estilo parecido al creado por khamsin, se me hace la boca agua......

En fin 1 cordial saludo.

23 Octubre, 2013, 14:40:22 #12
grrr05
Superusuario
*******
Desconectado Desconectado

Mensajes: 4344


If it ain't broke don't fix it


WWW
En línea
Re: Tutorial sobre implementación de librerías Google Sketchup y objetos 3d

Lo he probado en Sketchup 7 (ya que la página dice que se hizo para el 7) y en Sketchup 8, 32 y 64 y hace lo mismo: Con algunas texturas no da problemas, con otra no las fija, no las selecciona. Y la cuestión es que no encuentro el criterio por el que actúa de esa manera cuando analizando las texturas son prácticamente iguales. Las he redimensionado e incluso cambiado de formato y nada. Ya no sé si pudiera ser su ubicación en el objeto por cuestión de grupos, aristas o vértices, pero tampoco debiera ser. La verdad es que me tiene desconcertado.

Por favor, échale un vistazo a ver que te parece.
Pásame el enlace, yo no he encontrado ningún problema acerca de esto con los modelos que tengo. Si que es cierto que la selección por materiales sólo es efectiva dentro de un grupo, pero todos los collada que he importado siempre me han aparecido como un único grupo. El otro problema que vi es que algunos modelos utilizan texturas png para las transparencias, en sí no es un problema pero el nombre del archivo puede dar mucho por saco, ya que los png siguen su propia numeración con lo que nos podemos encontrar con un texture5.jpg y otra texture5.png, distintas entre ellas y que forman parte de distinto material.

De hecho ayer por la tarde estuve recordando mis primeras clases de programación en basic (que abandoné por completo), buscando ejemplos de ruby y mirando la documentación de las API...
Fué mi primer intento de script para SU, al que copié las dos rutinas del Select by Material para automatizar el este paso.

La cosa acabó con que teniendo el modelo importado y el material seleccionado, se ejecuta el script desde el menú complementos y hace automáticamente todos los pasos hasta la exportación del obj.
Es decir, seleccionar material -> ejecutar script, seleccionar material -> ejecutar script and go on... y van apareciendo los obj exportados.

La cosa es muy preliminar y estoy buscando la manera de contabilizar los materiales para crear un bucle "FOR iteracion = 0 TO num_materiales" (o como sea...) para seleccionar un material cada vez y que cada objeto resultante contuviera un nombre de archivo como un texto fijo seguido del número referente a la textura del material (así relacionamos OBJETO24.obj con TEXTURE24.png, mas que nada para mantener un poco de orden).
Por ahora no he logrado que el nombre del archivo pueda contener el valor de una variable juntamente con el texto pero sigo probando (actualmente el nombre del archivo lo tengo hard-coded dentro del script, lo que requiere renombrarlo manualmente).

Por ahora lo que hace el script es

-ejecutar material_selection
-ejecutar hide_all_unselected
-guardar archivo
-cargar archivo guardado (paso necesario porque el comando model.save sólo guarda un archivo pero no lo deja activo en SU, y el SU2XPlane lo requiere.
-llamada al módulo XPlaneExport (obviamente requiere el SU2XPlane instalado)

Mis conocimientos de programación som limitadísimos y eso habría que pulirlo mogollón, pero antes tendríamos que averiguar esos fallos de selección o buscar otro método para la separación de objetos, sin descartar la propuesta inicial de ir borrando texturas, que por ahora parece lo mas fiable.

En fin, si tengo un rato esta tarde seguiré rompiéndome los cuernos, que esto promete jeje.
« Última modificación: 23 Octubre, 2013, 14:44:19 por grrr05 »




Albert Ràfols
www.spainuhd.es
23 Octubre, 2013, 15:27:24 #13
Cestomano
Superusuario
*******
Desconectado Desconectado

Mensajes: 5484


Me cansé de la capa; ahora sólo vuelo en avión...


WWW
En línea
Re: Tutorial sobre implementación de librerías Google Sketchup y objetos 3d

Enhorabuena por el método. Hasta ahora yo también he usado algún objeto "libre" del sketchup pero lo de convertir varias texturas en una sola era un coñazo..........

Y sobre el tema de "libre", nada es libre en el círculo todopoderoso de Google. Hay que tener cuidado con eso.

Ahora bien, no sé si sería producente o contraproducente (levantar la liebre) hacer escenarios con objetos convertidos del sketchup (objetos "libres") y poner la referencia al autor en el archivo de autoría correspondiente. Desde luego, desde nuestros agradecidos ojos, sería lo más lógico pero, eso... la liebre...


¡¡NO contesto dudas por mensaje privado!!

x-plane.cestomano.com
www.spainuhd.es

[
23 Octubre, 2013, 18:24:24 #14
grrr05
Superusuario
*******
Desconectado Desconectado

Mensajes: 4344


If it ain't broke don't fix it


WWW
En línea
Re: Tutorial sobre implementación de librerías Google Sketchup y objetos 3d

Bueno a ver si no explota nada...

El intento de script "semi-automático" para exportar los modelos.
https://dl.dropboxusercontent.com/u/59143574/WH2XP.7z

Debido a mi torpeza, etc, lo primero que hay que hacer es importar el modelo en formato Collada y guardarlo en formato SKP en cualquier sitio (de este modo asignamos el directorio de trabajo, no he encontrado otra manera de hacerlo).

Seleccionar el material (desde el primero) y ejecutar el plugin desde el menú Complementos -> WH2XP y repetir para cada material. No hay que hacer absolutamente nada mas (aparte de darle a Aceptar cuando aparezca la ventana del SU2XPlane)
Cada objeto exportado tiene el nombre "obj_WH2XP#.obj" además de conservar una copia del skp con el mismo nombre.

Alberto prueba y me cuentas. No he tenido en cuenta los fallos de selección (está basado en el mismo plugin Select By Material), hasta que no me tope con un modelo de estos no lo podré mirar.







Albert Ràfols
www.spainuhd.es
Tags:
Páginas: [1] 2 3 4   Ir Arriba
  Imprimir  
 
Ir a:  

www.x-plane.es.
Página creada en 0.804 segundos con 18 queries.