Anuncios Google

Problema gráfico con Onelua

Hola a todos:

Estoy portando un juego que hice en Android para verlo con un HMD de RV. El juego, en cuestión, es un FPS de terror que tiene lugar en una casa abandonada, la cual ya he portado a onelua (sólo el modelo que se ve desde el exterior). En el ppsspp se ve perfectamente pero cuando lo pruebo en mi PSP, algunas texturas desaparecen y aparecen según me voy moviendo.

He probado distintas opciones cuando exporto desde el Blender, pero no consigo arreglar el problema.

¿Alguien podría ayudarme?


Anuncios Google

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de Mills

Hola, puedes poner alguna

Hola, puedes poner alguna imagen del fallo?

Puede ser que las texturas que usas son muy grandes para psp, como mucho usa imagenes de 128x128.

También puede ser que según te acercas a objetos, la camara corta triangulos del objeto si son muy grandes, y entonces tienes que evitar que la camara se acerque mucho a los objetos, o hacerlos con más triangulos.


Pobre PSP

Gracias por la respuesta

Gracias por la respuesta. La verdad es que sí que utilizo texturas de gran tamaño, normalmente son de 256x256 pero algunas como el fondo son incluso mayores.

Voy a probar a hacer el suelo, el fondo y el muro que rodea la casa con más caras, a ver si se arregla. Ya contaré y pondré alguna imagen también.

Imagen de Mills

El máximo es 512x512, y ya

El máximo es 512x512, y ya con dos de esas va a ir lento, y además tienen que ser cuadradas, porque si no, no se ven, o se ven mal.


Pobre PSP

El port va progresando, pero...

Vale, ya he resuelto unos cuantos "problemillas" y el port va avanzando, aunque me ha surgido uno que no le encuentro solución (rotar un objeto sobre un punto concreto, ej: una puerta). ¿Se puede hacer este tipo de rotaciones?.

Imagen de Mills

Si

Solamente tienes que mover el origen del la puerta a el lado por donde rota.

Con el programa que uses, solo es eso, dejar el objeto de tal forma que rote en torno al punto que tu quieras.

Yo uso blender en blender entras en modo edición, seleccionas la parte donde gira la puerta y mueves el cursor ahí (Mayusculas + s -> cursor a selección). Y luego vuelves al modo objeto y lo situas en el 0,0,0.

Ahí mismo en blender lo puedes ver si le das a rotar-z (r y luego z) y mueves la puerta, ya ves que rota en torno al borde donde tiene el centro.


Pobre PSP

Gracias por la respuesta,

Gracias por la respuesta, pero eso ya lo hice anteriormente cuando creé el juego para Android. Moví tanto el origen como el cursor 3D al punto que deseaba y funcionó perfectamente en Unity pero aquí...

Hoy estuve añadiendo el segundo nivel y me da error al pasar al mismo desde el primero (se cuelga en el emulador).

Creo que el problema está aquí...:

borrafisicas() --Aquí utilizo model3d.deletephysics para cada objeto

borranivel() --Aquí var1,var2,... = nil,nil,...

model3d.finishphysics()

collectgarbage("collect")

cargaplantabaja = loadfile("nivplantabaja.lua")

cargaplantabaja()

...pero no acabo de dar con la tecla.

 

Perdón por ser tan pesado Vergüenza

Imagen de Mills

El problema era, creo, que no

El problema era, creo, que no le da tiempo a borrar las fisicas en un solo frame, y al empezar de nuevo el while, intentaba utilizarlas o utilizar alguna cosa que ya estaba borrada, y claro, se congela.

Así lo puse en el spaceball y creo que con esto ya nunca se congelará, al menos por culpa de las fisicas o los objetos.

function Salir_del_nivel()
	 model3d.deletephysics(Model,1)
         model3d.deletephysics(Model1,1)
         --etc etc
         Model, Model1,sound = nil,nil,nil
         --etc etc
         model3d.finishphysics()
         os.delay(100) --importante, así le da tiempo a borrar todo!		 
	 collectgarbage()
         os.delay(100) --por si acaso otro retraso
end
 

De todas formas, es mejor hacer solamente un model3d.initphysics() con el numero maximo de objetos físicos y el tamaño del mundo ya definidos al iniciar el juego, y luego ya nunca usar el model3d.finishphysics().

Las físicas ocupan unos 5 megas en RAM, pero si lo quitas y pones muchas veces, termina comiendose mas RAM de la cuenta, asi que es mejor dejarlas ahí.

Pero siempre ponle el delay antes del collectgarbaje aunque solo borres las fisicas de los objetos.

Podrías enviarme un ejemplo de lo que quieres hacer con las puertas, que no te funcione?


Pobre PSP

Ya he localizado el problema..., pero no lo doy solucionado

Ya he localizado el problema del giro de la puerta. Cuando la exporto, el origen se mueve a las coordenadas 0,0,0.

El caso es que no sé como mantener las coordenas de la puerta y también el origen cuando la exporto.

Respecto a lo de las físicas, se sigue bloqueando con los retardos. ¿Puede ser porque repito estas líneas en los scripts de los 2 niveles?:

amg.init()

amg.quality(__8888) --Calidad de la imagen (__8888 __4444 __5551 __5650)

amg.perspective(60.0) --Campo de vision de la camara

model3d.initphysics(22,{-20,-20,-20},{20,20,20}) --Cantidad de objetos con físicas y tamaño del mundo físico

 

Muchas, muchas gracias.

Imagen de Mills

Si alejas el objeto del

Si alejas el objeto del 0,0,0, aunque configures su origen bien, el programa le va a poner el suyo.

Cuando vayas a exportar la puerta, colocala de tal forma que el lado de las bisagras esté en el punto 0,0,0 del "espacio/mundo" del editor, porque al exportarla, siempre le pone el origen del editor como punto central. 

Por otra parte:

amg.init(): es la que te está congelando el juego seguro, esta función inicia el motor 3d y solo lo debes iniciar una vez. no se si poniendo amg.finish() se puede activar y desactivar, pero yo solo lo activaría una vez. Lo que pasa es que ya siempre deberás dibujar las imágenes planas dentro del modo 2D -> amg.mode2d(1); image.blit (image, 0, 0, 255); amg.mode2d(0).

amg.quality(__8888) y amg.perspective(60.0): solo las deberias utilizar al inicio con amg.init, sobre todo si activas el modo TV, si no, tampoco influyen mucho


Pobre PSP

Algunas imágenes del port de Darkness para PSP

Hoy he actualizado mi blog con imágenes del juego. Si te apetece, pásate y coméntame que te parece.

Gracias.

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.