¿La textura de la imagen podría estirarse?

Vine desde Stack Overflow, no estoy muy seguro de si este es el lugar correcto para hacer esta pregunta, me gustaría disculparme por adelantado. Acabo de terminar un par de mapas isométricos, el primer mapa es una imagen con un tamaño de 28712x27744. Sé lo grande que es eso. La razón es que mi pantalla (basada en los valores de retorno de mi programa) devuelve un tamaño de 3840x760 (pantalla completa), el programa (un juego de rol) debería poder proyectar ese tamaño desde la imagen y mostrar desplazamiento a lo largo de la x y eje y de la imagen ya que la imagen actúa como un mapa.

La imagen fue hecha en inkscape. Pero estoy planeando hacer una textura en GIMP, la cuestión es que lleva mucho tiempo, así que traté de exportar la imagen de Inkscape a la mitad del tamaño del original, pero GIMP todavía funciona bastante lento. Estaba pensando en hacerlo más pequeño, pero temía que la imagen apareciera borrosa en el juego (no estoy usando un motor comercial, sino un motor hecho personalmente, así que estoy tratando de hacer que los recursos encajen más fácilmente).

Mi pregunta es: ¿hay alguna manera de texturizar esto sin que mi PC procese como un caracol? O si no hay otra forma de reducir el tamaño, ¿tienen alguna técnica sobre cómo debo abordar la textura para que no se vea bloqueada cuando se amplíe? un ejemplo serían esos viejos juegos de rol en 2d (generalmente de la era ps2), noté que no importa cuán gigantesca sea la pantalla, la textura realmente no parece que estés mirando un píxel, sino que pareces tú estamos viendo una imagen adecuada.

Lo siento mucho si este era el lugar equivocado, estaba pensando si debería publicar esto en gamedev o graphicsdesign, aunque elegí gd porque podría conseguir más personas que tengan consejos adecuados.

¿Ha intentado texturizar su imagen de manera procesal directamente en Inkscape?
Eso fue lo que terminé haciendo. Simplemente tuve que evitar los filtros en Inkscape ya que aumentaron el tiempo y el tamaño de exportación.
Por el momento, esta es una gran resolución para ser procesada. ¿Estás trabajando en una máquina Linux?
Estoy trabajando en Windows, realmente no proceso toda la imagen. En cambio, solo obtengo una parte de la imagen y la proceso.
Veo. En mi experiencia en la misma máquina, GIMP es mucho más rápido cuando arranco con Linux. De todos modos, ¡buena suerte para tu juego!
¿En realidad? Lo comprobaré. ¡Gracias!
lecturas adicionales: megatexture ( gamedev.stackexchange.com/questions/1157/… ) etc.

Respuestas (3)

No soy un experto en desarrollo de juegos. Pero una imagen de 28712x27744 como tif RGB de 8 bits ocupa aproximadamente 2,2 Gigabytes en Photoshop. Creé una imagen de prueba. En Mac OS es 2.4 G en el disco. Pude abrirlo en Gimp pero tomó un tiempo. La imagen bloqueó el complemento de filtro que traté de usar. Creo que GIMP tiene problemas con archivos de gran tamaño. Puede intentar encontrar a alguien que conozca GIMP mejor que yo. Puede haber algunas configuraciones que podría cambiar... Recuerde que cuando va de Inkscape a GIMP, está pasando de un programa vectorial (creo) a un programa de mapa de bits. También creo que en los juegos tienen una forma procedimental de cambiar de imágenes lorez a vistas a gran escala y mayor resolución a medida que se acerca.

Hmmm, el mío es de 9 mb. Incluso tiene colores agregados por separado para que pueda elegir un color y aplicar una textura para ese color.
Bueno, los juegos en 3D no leen polígonos desde lejos, pero se vuelven más precisos de cerca. Hice una investigación sobre juegos en 2D y noté algo sobre esos píxeles, cuando se acercan, todavía retienen esos píxeles, por lo que no lo son. borroso. Al final, todos usan una sola imagen. Ni siquiera soy bueno eligiendo un color para una imagen y mucho más para hacer pixel art ahahahahha, aunque gracias.

Puede y probablemente debería cortar la imagen en mosaicos. Esto permite que su gane cargue cada segmento por separado en la memoria de la tarjeta gráfica. Pero como efecto secundario, hace que te resulte más fácil texturizar.

PD: antes de continuar, asegúrese de que su motor de juego no se ahogue con el tamaño de su textura. Muchos sistemas gfx tienen un límite de textura de 8k. (aunque podría tener varios de esos)

Hice esto y tomé el tiempo de renderizado, el tiempo de renderizado de la imagen original fue más rápido. Estoy pensando en hacer las texturas en Inkscape en su lugar, aunque gracias.

La mejor manera de hacer esto sería dividir la imagen en muchos "fragmentos" más pequeños (solo imágenes más pequeñas). Mientras tu personaje se mueve en el juego, solo muestra los fragmentos que se pueden ver en la pantalla. Esto liberará algo de RAM mientras se ejecuta el juego. Puede que sea un poco molesto pintar en varios fragmentos separados y mantenerlo sin problemas al mismo tiempo, pero ayudará con el rendimiento del juego a largo plazo. Porque en las computadoras de gama baja, una imagen de 28712x27744 puede ser un gran golpe para el rendimiento.