Foro The Movies Cinema Machinima Español
BIENVENIDO a la comunidad sobre el juego The Movies y otros Machinimas. Aquí encontraras una gran familia, ayuda, etc, y sobre todo compartir la afición que nos gusta a todos, que es crear películas con motores de juegos. Regístrate o identifícate para quitar la publicidad y poder participar en el foro.
Si tienes problemas con el registro, en el foro Bienvenidos hay un post-it abierto a invitados.
------------------------------------------------------------
WELCOME to the community about the game The Movies and other Machinimas. Here you will find a great family, help, etc, and above all share the hobby that we like to all, which is to create movies with game engines. Register or identify to remove the publicity and to participate in the forum. If you have problems with the registration, in the Welcome forum there is a post-it open to guests.

Prevención del error SHRT_MAX

Página 3 de 5. Precedente  1, 2, 3, 4, 5  Siguiente

Ir abajo

Re: Prevención del error SHRT_MAX

Mensaje por kubo10 el Jue 03 Mayo 2018, 00:30

Creo que se está yendo la cabeza con este error emoticon1072

kubo10
 

Mensajes : 2299
Fecha de inscripción : 28/01/2015

Ver perfil de usuario

Volver arriba Ir abajo

Re: Prevención del error SHRT_MAX

Mensaje por Dibujante el Jue 03 Mayo 2018, 00:56

Una vez que empiezo con algo, me meto tanto tanto y tanto que hasta que no lo consiga resolver, no paro mellado, así es mi persistencia. Lo malo es que la locura es una secuela garantizada, pero creo que necesito estar en este estado para poder disfrutar de Nobody.

No me vas a creer, pero el Decimate, que tanto nos daba error, no me lo ha dado mellado porque he sabido resolverlo. Total, que aunque podamos meter modelos de 500.000 vértices en el juego y con muchas texturas (muchísimo peso), mi meta es conseguir una calidad decente y parecida al de alta calidad, pero en formato low-poly y textura unificada (bajo peso). Acabo de conseguir shortear el SHRTMAX a base de decimate mellado (Ya se me va la olla). Mañana más.
avatar
Dibujante
 

Rol : Director
Mensajes : 4988
Fecha de inscripción : 13/02/2011
Localización : Murcia

Ver perfil de usuario

Volver arriba Ir abajo

Re: Prevención del error SHRT_MAX

Mensaje por Regolero el Jue 03 Mayo 2018, 07:35

Hay un truco mucho mejor, más ,fácil, más rápido, que mantiene la calidad a tope, y no da errores, es el regotruco jajajaja
avatar
Regolero
Alcaide

Rol : Director
Mensajes : 8690
Fecha de inscripción : 17/08/2010
Localización : Sevilla
. : Totems 2010: 2º Mejor Cortometraje, 2º Mejor Dirección, 2º Mejor Guión, 2º Mejor Tráiler . : Águilas 2011: 1º Mejor Ambientacion, 1º Mejor FX, 2º Mejor Sonido

Ver perfil de usuario

Volver arriba Ir abajo

Re: Prevención del error SHRT_MAX

Mensaje por Dibujante el Jue 03 Mayo 2018, 10:59

Lo de fácil y rápido no mellado, pero efectivo sí good

Tiene toda la pinta de que hay un límite de 65534 vértices, cosa que podría solucionarse editando en el script la estructura de los modelos, para que permita 16 bits y se amplíe. No obstante, el hecho de que se pueda prevenir el error mediante regotruco 2.0, evidencia que hay un límite de vértices por grupo, por lo que cuantos más grupos creemos, mejor permitirá exportar el modelo. Es simplemente que dentro de un solo MESH hay un límite de vértices que puede tener.

Por otro lado, puede ser que los 'Faces' sean contados como vértices, a su vez. O que en cierta manera el contador del Blender no sea preciso. He aquí tres sendos ejemplos:

Mod sin error:


Mod con error SHRT_MAX







avatar
Dibujante
 

Rol : Director
Mensajes : 4988
Fecha de inscripción : 13/02/2011
Localización : Murcia

Ver perfil de usuario

Volver arriba Ir abajo

Re: Prevención del error SHRT_MAX

Mensaje por Dibujante el Jue 03 Mayo 2018, 11:25

Respecto a la posibilidad de reducir vértices en lugar de crear más grupos, una ventaja que tiene o tenía el 'Decimate' es que disminuye el número de 'Faces'. Los faces son aquellos vértices mapeados en el modelo, cuya acumulación puede ser la responsable del error.

Aunque he conseguido aplicar el 'Decimate', si lo recordáis, nos daba un error en el que ponía algo así como "insuficientes faces". Me temo que este script lo que hace es borrar por completo el mapeado del modelo, por eso daba error al exportar, porque el modelo tiene 'faces' no mapeados cuando teóricamente un 'face' es una parte del modelo mapeada. Esta incongruencia provoca error, cosa que se puede evitar si mapeamos el modelo. El problema es que se borra el que tenía originalmente, y no existe manera de copiar y re-guardar el mapeado. De hecho, buscando por Internet la opción de reducir los 'faces' preservando el mapeado es posible en Blender 2.63. Y en estos sitios donde lo he buscado, indican que en nuestro Blender hay una opción de reducir vértices manteniendo el mapeado: Poly Reducer (que fue el mismo que os dije en otro tutorial) mellado

Con lo cual, este método podría funcionar si, como bien leí, abriéramos el mod en el Blender 2.63, lo redujéramos de faces, lo reexportáramos a .obj y trabajáramos con él en Blender. Alguien podrá decir que es una tontería cuando con el regotruco se soluciona, y ciertamente lo veo tontería si nuestro modelo no es de excesiva calidad. Pero en el caso de modelos de 500.000 vértices (que solo el .obj puede ocupar unos 60 MB) con sus texturas y demás, podemos tener un mod que ocupe mucho espacio para ser descargado y que haga que nuestro juego vaya lento al rodar (por no decir si grabas en Fraps, el potente PC que tienes que tener para que no se trabe). Así que, solo en casos en los que verdaderamente haya demasiados vértices, lo propondría como solución.

En vista de que no es desacertado el vídeo al mencionar los vértices, lo mantendré, aunque con algunas peculiaridades que comento aquí:

En esta ocasión, en lugar de separar los vértices, vamos a separar los 'Faces'

1. Pon el objeto en modo edición.
2. Haz 'Ctrl + Tab' y selecciona 'Faces'. Esto hará que se vean los 'Faces' o los puntos mapeados del modelo.



3. Realiza la separación de vértices (Barra espaciadora - Vértices - Separate).

Intenta seleccionar por debajo de 60.000 Faces

Cuando hayas acabado, recuerda rehacer 'Ctrl + Tab' y poner 'Vértices' para recuperar el modo de edición original.

Ya sabemos que el contador de Blender puede ser impreciso y que los triángulos de los Faces pueden ser contados como vértices, por lo que es posible que teniendo 40.000 vértices y 68.000 faces, nos dé el SHRT_MAX. En teoría, debe haber más 'Faces' que vértices, por eso indico que hagáis la separación de vértices seleccionando los 'FACES' primero, que son más.

Del contador de 'Edges' todavía no he encontrado información que lo vincule a este error.
avatar
Dibujante
 

Rol : Director
Mensajes : 4988
Fecha de inscripción : 13/02/2011
Localización : Murcia

Ver perfil de usuario

Volver arriba Ir abajo

Re: Prevención del error SHRT_MAX

Mensaje por kubo10 el Jue 03 Mayo 2018, 13:18

Ahora mismo estoy pegándome con un modelo con el struct.error, que nunca se habla de él, pero me da tantas veces como el shrt_max. Yo creo que están estrechamente relacionados porque hasta ahora, me parecía que las soluciones era comunes. Y digo hasta ahora, porque estos días he sorteado el struct.error haciendo varios grupos y emparentando, pero hoy, por más grupos que he hecho me ha seguido dando el error (y eso que he revisado vértices y ningún grupo tenían mas de 20 mil).

Así que estoy atento a este hilo por si tuviera que aplicarle alguna de las soluciones que has dado (de momento estoy probando consolidando en una única textura)
avatar
kubo10
 

Rol : Director
Mensajes : 2299
Fecha de inscripción : 28/01/2015
Localización : Cantabria

Ver perfil de usuario

Volver arriba Ir abajo

Re: Prevención del error SHRT_MAX

Mensaje por Dibujante el Jue 03 Mayo 2018, 14:15

Sube si quieres el modelo que te da error junto con el archivo .blend.

¿Qué mensaje de struct.error te ha salido?

avatar
Dibujante
 

Rol : Director
Mensajes : 4988
Fecha de inscripción : 13/02/2011
Localización : Murcia

Ver perfil de usuario

Volver arriba Ir abajo

Re: Prevención del error SHRT_MAX

Mensaje por kubo10 el Jue 03 Mayo 2018, 14:22

Tienes razón, el shrt_max es un tipo de struct.error, lo que pasa es que tanto llamarlo shrt, ya le he asignado ese nombre  mellado

Al que llamo struct.error es este:

stream.write(struct.pack("bbbb", i[0], i[1], i[2], i[3]))
struct.error: byte format requires -128 <= number <= 127

¿Subo un .blend con los grupos ya creados (tiene como 12) o antes de tocar nada?

Edito: Consolidando ha funcionado, pero ha perdido mucha calidad
avatar
kubo10
 

Rol : Director
Mensajes : 2299
Fecha de inscripción : 28/01/2015
Localización : Cantabria

Ver perfil de usuario

Volver arriba Ir abajo

Re: Prevención del error SHRT_MAX

Mensaje por kubo10 el Jue 03 Mayo 2018, 14:36

Aquí está, se me hace raro que con el truco de regolero de dividir en grupos dé un struct.error.
A lo mejor hay que seguir dividiendo. Aquí está el modelo sin tocar, salvo por el error de los 32 caracteres que ya está arreglado:
https://app.box.com/s/lse238bffpu8ban2hdralkf86mrd4z26
avatar
kubo10
 

Rol : Director
Mensajes : 2299
Fecha de inscripción : 28/01/2015
Localización : Cantabria

Ver perfil de usuario

Volver arriba Ir abajo

Re: Prevención del error SHRT_MAX

Mensaje por Dibujante el Jue 03 Mayo 2018, 14:48

El -128 a 127 te ha dado seguramente al querer hacerlo con la fusión a un mesh del juego. Si hubieras hecho empties, te habría dado el SHRT_MAX.

La fusión al .msh (regotruco 1.0) es una forma para convertir mods que te asegura que funcione después en el juego (no se estropee al cargar en el MED ni en el juego, y no haya texturas estiradas). Que genere un modelo seguro y funcionable al 100 % no significa que sea una conversión segura, pues está suscrita a las mismas normas que el resto de procedimientos. La conversión por empties (regotruco 2.0) es otra forma para convertir mods que es más rápida y te ahorra meter el .msh del juego, que aunque funcione, puede hacer que el modelo no se exporte al 100% a prueba de errores o peculiaridades. Es decir, es una forma más económica de convertir mods de muchos meshes, pero no tiene tanta garantía de que luego no de error.

En ambos casos, el modelo está suscrito a un grupo (el del .msh o el empty que hemos creado) y como tal el grupo está metido en un buffer de 16 bits (con límite en 65.534 unidades), algo que no se puede remediar. Significa que si se excede esta cantidad en dicho grupo, saltará un error de estructura porque los 16 bits que soporta Blender y la mayoría de las tarjetas gráficas en casos de modelos 'high-poly' son 65.534 vértices. Es una forma de impedir que montones de vértices queden compilados en un mismo mesh, lo que haría más enlentecido su rendimiento en videojuegos y plataformas 3D, además de que estropearían la gráfica. Por eso, es un límite que marca la diferencia y puedes sortear dividiendo un MESH en varios OBJETOS por debajo de 65.534 vértices, conservando su calidad pero haciendo más fluido y liviano el renderizado final.

El siguiente paso para pretender mayor fluidez es la reducción del número de vértices, no es necesario para sortear el struct.error, pero sigue siendo una forma.

Yo estoy recomendando el unificado de texturas para reducir el peso de los archivos, y permitiendo así aplicar el regotruco 1.0 para que el modelo funcione bien después.

Voy a echarle un ojo a tu mod.
avatar
Dibujante
 

Rol : Director
Mensajes : 4988
Fecha de inscripción : 13/02/2011
Localización : Murcia

Ver perfil de usuario

Volver arriba Ir abajo

Re: Prevención del error SHRT_MAX

Mensaje por kubo10 el Jue 03 Mayo 2018, 15:07

El -128 a 127 te ha dado seguramente al querer hacerlo con la fusión a un mesh del juego

No, lo da desde el primer intento con un solo empty, el 00.00 antes de hacer ninguna fusión (y con varios emptys también)

Luego miro lo de reducción de vértices.
avatar
kubo10
 

Rol : Director
Mensajes : 2299
Fecha de inscripción : 28/01/2015
Localización : Cantabria

Ver perfil de usuario

Volver arriba Ir abajo

Re: Prevención del error SHRT_MAX

Mensaje por Contenido patrocinado


Contenido patrocinado


Volver arriba Ir abajo

Página 3 de 5. Precedente  1, 2, 3, 4, 5  Siguiente

Volver arriba


 
Permisos de este foro:
No puedes responder a temas en este foro.