Bennu Game Development

Foros en Español => Sugerencias => Topic started by: syous on September 05, 2009, 06:02:22 PM

Title: raytracing
Post by: syous on September 05, 2009, 06:02:22 PM
 ;D

Saludos

se me a ocurrido una idea y mejora para bennu

hace mucho de que existieran los motores 3d y las tarjetas 3d se utilizaba una técnica de representación por soft por cálculos matemáticos y físicos llamada raytracing

para los que no sabíamos diseñar por aquel entonces y ahora xDDD pero eramos buenos matemáticos y programadores salían obras de arte como estas

http://hof.povray.org/ (http://hof.povray.org/)

su mayor exponente y multisistema fue http://povray.org/ (http://povray.org/) de filosofía open source


tanto las texturas como como colores se encuentran en librerías que son ficheros .inc

un ejemplo de la potencia del lenguaje de povray:

[code language="text"]// woodbox.pov
// POV-Ray 3.5 scene file by Dan Farmer
// Copyright POV-Team, 1995
// Demonstrates some of the woods.inc textures.
// Several wooden spheres (and one glass one), in and around
// a wooden box.
//
// -w320 -h240
// -w800 -h600 +a0.3

#include "colors.inc"
#include "textures.inc"
#include "shapes.inc"
#include "metals.inc"
#include "glass.inc"
#include "woods.inc"

global_settings {max_trace_level 5}

camera {
   location <-5, 10, -15>
   direction <0, 0,  2.25>
   right x*1.33
   look_at <0,0,0>
}

// Uncomment the area lights only if you've got lots of time.
#declare Dist=80.0;
light_source {< -50, 25, -50> color White
     fade_distance Dist fade_power 2
//   area_light <-40, 0, -40>, <40, 0, 40>, 3, 3
//   adaptive 1
//   jitter
}
light_source {< 50, 10,  -4> color Gray30
     fade_distance Dist fade_power 2
//   area_light <-20, 0, -20>, <20, 0, 20>, 3, 3
//   adaptive 1
//   jitter
}
light_source {< 0, 100,  0> color Gray30
     fade_distance Dist fade_power 2
//   area_light <-30, 0, -30>, <30, 0, 30>, 3, 3
//   adaptive 1
//   jitter
}

sky_sphere {
    pigment {
        gradient y
        color_map {
            [0, 1  color Gray50 color Gray80]
        }
    }
}

#declare M_Wood18B =
colour_map {
    [0.00 0.25   color rgbf < 0.50, 0.26, 0.12, 0.10>
                 color rgbf < 0.54, 0.29, 0.13, 0.20>]
    [0.25 0.40   color rgbf < 0.54, 0.29, 0.13, 0.20>
                 color rgbf < 0.55, 0.28, 0.10, 0.70>]
    [0.40 0.50   color rgbf < 0.55, 0.28, 0.10, 0.70>
                 color rgbf < 0.50, 0.23, 0.15, 0.95>]
    [0.50 0.70   color rgbf < 0.50, 0.23, 0.15, 0.95>
                 color rgbf < 0.56, 0.29, 0.17, 0.70>]
    [0.70 0.98   color rgbf < 0.56, 0.29, 0.17, 0.70>
                 color rgbf < 0.54, 0.29, 0.13, 0.20>]
    [0.98 1.00   color rgbf < 0.54, 0.29, 0.13, 0.20>
                 color rgbf < 0.50, 0.26, 0.12, 0.10>]
}


#declare Floor_Texture =
    texture { pigment { P_WoodGrain18A color_map { M_Wood18A }}}
    texture { pigment { P_WoodGrain12A color_map { M_Wood18B }}}
    texture {
        pigment { P_WoodGrain12B color_map { M_Wood18B }}
        finish { reflection 0.25 }
    }

#declare Floor =
plane { y,0
    texture { Floor_Texture
        scale 0.5
        rotate y*90
        rotate <10, 0, 15>
        translate z*4
    }
}

#declare T0 = texture { T_Wood19 }

#declare T =
texture { T0
    finish { specular 0.50 roughness 0.1 ambient 0.25 }
}

#declare T1 = texture { T translate  x*10 rotate <0, 87, 0> }
#declare T2 = texture { T translate  y*10 rotate <0,  1, 0> }
#declare T3 = texture { T translate -x*10 rotate  <0, 88, 0> translate z*100}

#declare Front_Panel =
box      { <-3.75, 0.00, -0.5>,
           < 3.75, 1.75,  0.0> }

#declare Front_Top_Edge   =
cylinder { <-3.75, 1.75,  0.0>,
           < 3.75, 1.75,  0.0>, 0.5 }

#declare Front_Right_Edge =
cylinder { < 3.75, 0.00,  0.0>,
           < 3.75, 1.75,  0.0>, 0.5 }

#declare Front_Left_Edge  =
cylinder { <-3.75, 0.00,  0.0>,
           <-3.75, 1.75,  0.0>, 0.5 }

#declare Front_UL_Corner  = sphere   { <-3.75, 1.75,  0.0>, 0.5 }
#declare Front_UR_Corner  = sphere   { < 3.75, 1.75,  0.0>, 0.5 }


#declare Left_Panel      = box { <-0.50, 0, -2.75>, <0.50, 1.75, 2.75> }
#declare Left_Top_Edge   = cylinder { <0, 1.75, -2.75>, <0, 1.75, 2.75>, 0.5 }

#declare Left_End =
intersection {
    union {
        object { Left_Panel       }
        object { Left_Top_Edge    }
    }
    plane { x, 0 }
    texture { T2 }
    bounded_by { box { <-0.501, 0.01, -3.251>, <0.01, 2.251, 3.251> } }
}

#declare Box_Front =
intersection {
    union {
        object { Front_Panel      }
        object { Front_Top_Edge   }
        object { Front_Left_Edge  }
        object { Front_Right_Edge }
        object { Front_UL_Corner  }
        object { Front_UR_Corner  }
    }
    plane { z, 0 }
    texture { T1}
    bounded_by { box { <-4.251, 0.01, -0.51>, <4.251, 2.251,  0.01> }}
}
#declare Box_Bottom = box {<-3.75, 0.0, -2.75> <3.75, 0.25, 2.75> texture {T3} }
#declare Box_Lid =    box {<-3.75, 0.0, -2.75> <3.75, 0.25, 2.75>
    translate -2.75*z    // put "hinge" at origin
    rotate x*25          // open the lid
    translate 2.75*z     // move "hinge" back
    translate y*2        // lift to top
    texture {T3}
}
#declare Box =
union {
    object { Box_Front translate -z*2.75}
    object { Box_Front scale <1,1,-1> translate z*2.75}
    object { Left_End translate -x*3.75 }
    object { Left_End scale <-1,1,1> translate x*3.75 }
    object { Box_Lid  }
    object { Box_Bottom }
}
#declare Spheres =
union {

    // Inside of box
    sphere { <1.5, 1.5, -0.75>, 1.25
        texture {
            T_Wood14
            finish { specular 0.35 roughness 0.05 ambient 0.3 }
            translate x*1
            rotate <15, 10, 0>
            translate y*2
        }
    }
    // Inside of box
    sphere { <-1.5, 1.25,  0.5>, 1
        texture { T_Wood18
            finish { specular 0.25 roughness 0.025 ambient 0.35 }
            scale 0.33
            translate x*1
            rotate <10, 20, 30>
            translate y*10
        }
    }
    // Inside of box
    sphere { <-0.75, 1.0, -1.5>, 0.75
        texture { T_Wood10
            finish { specular 0.5 roughness 0.005 ambient 0.35 }
            translate x*1
            rotate <30, 10, 20>
        }
    }

    // Outside of box
    sphere { <-0.75, 0.75, -4.25>, 0.75
        texture { T_Wood4
            finish { specular 0.25 roughness 0.015 ambient 0.2 }
        }
    }
    // Outside of box
    sphere { <-2.25, 0.45, -4.5>, 0.45
        texture { T_Wood20
            finish { specular 0.15 roughness 0.15 ambient 0.3 }
            rotate <45, 10, 45>
            translate x*10
        }
    }

    // Outside of box
    sphere { <-5.5, 0.95, 0.8>, 0.95 texture { T_Glass4 } interior {I_Glass caustics 1} }
    // Outside of box
    sphere { <-5.00, 0.75, -2.0>, 0.75 texture { T_Copper_2B} }
    // Outside of box
    sphere { <-1.75, 0.40, -5.4>, 0.40 texture { T_Brass_3B} }
}
union {
    object { Floor }
    object { Box }
    object { Spheres }
    rotate -y*35
}

[/code]


aqui teneis el resultados del rendering:

(http://img228.imageshack.us/img228/5153/woodbox.png)
ahora mismo muchos modelos que desarrollo los diseño así por eso pensé si se podría integrar el lenguaje en bennu mediante dll dado que esta disponible su source

No pretendo desmerecer el gran trabajo que están realizando con bennu3d pero yo no soy diseñador ni tengo tiempo de aprender usar un modelador texturizar, etc o tiempo de aprender blender esto solo es una idea



Title: Re: raytracing
Post by: josebita on September 06, 2009, 12:22:25 AM
Son cosas un poco distintas: el raytracing a día de hoy no se puede hacer en tiempo real (no es posible hacer, con un ordenador normal, un juego que funcione con raytracing).
Realmente es una técnica de renderizado de escenas y no sé cómo casa eso con Bennu.
Aún así, el raytracing es más o menos genérico (indep. del lenguaje de implementación, así que posible es).
Title: Re: raytracing
Post by: syous on September 06, 2009, 03:37:47 AM
se podria a nivel de escenarios como generar el objeto estatico y colocarlo en bennu es como si colocaras tiles  algo similar al lib vse en vez de por voxel estatico


es muy sencillo yo ahora mismo estoy realizando mazmorras inteligentes son estaticas a nivel de elementos y tal y se auto genera aletoriamente los objetos en coordenadas a random

se puede generar el objeto por raytracing y luego colocarlo por bennu es como un motor de tiles pero mas versatil
Title: Re: raytracing
Post by: Windgate on September 06, 2009, 10:20:03 AM
Lo del consumo de recursos... Ya escuché que normalmente para generar sombras en los juegos, o espejos y cosas similares no hacen raytracing, suelen hacer otros apaños que consumen menos. A 40-60 imágenes por segundo prima la rapidez :P

Estando el DLL disponible y en open source, aunque no pase a formar parte de la próxima release, podría probarse a portar a Bennu y ver qué ofrece... Aunque ahí yo no puedo ayudar ya que nunca lo he hecho.

Por lo que tengo entendido (Y quizás me equivoque mucho o poco...) para usar una DLL en Bennu hay que hacer una especie de cabeceras para interfacear las funciones de las DLL con una sintaxis Bennusera.

¿Qué más hace falta además de eso? Referirnos a todos los tipos de dato a nivel de bytes... Y seguro que algún incordio más, si no sería demasiado fácil... ::)

La verdad es que me gustaría aprender un poco más sobre el tema de las DLLs y Bennu.

Por cierto, no he mencionado que la DLL de raytracing sería deseable que tuviese compatibilidad con el funcionamiento del actual Bennu3D... Ya que usar raytracing sin Bennnu3D no serviría más que para saciar nuestra curiosidad.

EDIT: Las imágenes del link soberbias syous xD
Title: Re: raytracing
Post by: syous on September 22, 2009, 11:45:54 AM
 ;D un pequeño ejemplo del rendering para el juego con povray(http://img44.imageshack.us/img44/4083/bosquee.jpg)

Title: Re: raytracing
Post by: FreeYourMind on September 22, 2009, 12:51:16 PM
Esta disponible el código fuente de tan tremenda imagen ? :o
Title: Re: raytracing
Post by: syous on September 22, 2009, 01:07:05 PM
 :D actualmente los fuentes del proyecto no estan libres cosa que me gustaria pero el patrocinador del proyecto no permite a ser un futuro proyecto comercial pero aqui os dejo algunas mas

(http://img269.imageshack.us/img269/1412/paisaje2.jpg)
(http://img14.imageshack.us/img14/7984/paisajej.jpg)
Title: Re: raytracing
Post by: SplinterGU on September 22, 2009, 03:40:20 PM
no entiendo syous... ese es tu proyecto?

cuanto tarda en renderear esas imagenes?
Title: Re: raytracing
Post by: DCelso on September 22, 2009, 03:49:19 PM
Eso es una foto a mi no me engañas :D.
Title: Re: raytracing
Post by: syous on September 22, 2009, 04:34:38 PM
Quote from: SplinterGU on September 22, 2009, 03:40:20 PM
no entiendo syous... ese es tu proyecto?

cuanto tarda en renderear esas imagenes?

si son  de mi proyecto como unos 3 dias con un duron 1300 mhz y un 1gb de ram para cada render
Title: Re: raytracing
Post by: syous on September 22, 2009, 04:35:28 PM
Quote from: DCelso on September 22, 2009, 03:49:19 PM
Eso es una foto a mi no me engañas :D.

nono :P si te fijas se nota en los arboles
Title: Re: raytracing
Post by: SplinterGU on September 22, 2009, 05:02:03 PM
entonces, sabiendo que tarda 3 dias un solo render... cual seria la propuesta del post inicial? no la entendi...

me podrias explicar un poco mejor, tipo "for dummies"?
Title: Re: raytracing
Post by: DCelso on September 22, 2009, 05:17:48 PM
sería para programar juegos para la gente que no tiene prisa :D.
A orden de 3 dias para cargar el fondo de la pantalla :D.
Tu le das a jugar hasta dentro de 3 días pues te dedicas a programar o a ver cosas que ya luego jugarás.
Title: Re: raytracing
Post by: SplinterGU on September 22, 2009, 08:01:38 PM
jejeje... pero no, pregunto en serio... quizas quiso decir algo que no entendi.
Title: Re: raytracing
Post by: Windgate on September 22, 2009, 08:31:25 PM
Sería una utilidad para generar escenas ultrarrealistas utilizando Bennu como si se tratase de un Blender por así decirlo... Utilidad no tendría demasiada...

Actualmente la calidad del render de Bennu 3D no me satisface demasiado, me gustaría saber el método de render que utiliza (Gouraud, Phong...) porque en algunas escenas que capturo veo que me saca más calidad el visor 3D que programé en 2D hace poco xD

Por supuesto a mi visor (Usa Gouraud) le cuesta un cojón sacar el render, del orden de segundos.

Antes de plantearnos Raytracing en Bennu3D yo me plantearía poder mejorar el render actual... Aunque no estoy demasiado puesto en ese tema, yo me atrevería con un Gouraud que es lo más básico por así decirlo, y tirando 100% de software... Vamos, que no me vería capaz de mejorar el motor que hay ahora mismo :S
Title: Re: raytracing
Post by: Drumpi on September 23, 2009, 01:11:58 AM
Y digo yo ¿por qué no aprovechas esos conocimientos y le das un repasito al modo7 de Bennu? que seguimos teniendo el mismo de Fenix y yo he tenido problemas por ejemplo intentando ejecutarlo en 16 bits. Sin contar cosas no implementadas:
-Los procesos pegan saltos entre pixel y pixel porque en modo7 los pixel del mapa miden más de un pixel de pantalla.
-Los pixels lejanos hacen un efecto raro al tomar el pixel que le corrersponde en lugar de una ponderación de todos los que debería ir en esa posición.
-No se puede ajustar la altura del horizonte.
-No se puede ajustar el ángulo de visión.
-No se puede ajustar la z.

Por no hablar de posibles mejoras como voxels (vease VSE) o el efecto del GT Advance 2 (un modo 7 con efecto relieve)...
Todo esto es más sencillo que un render 3D con rutinas de iluminación y todo eso ¿no? ;D
Title: Re: raytracing
Post by: Windgate on September 23, 2009, 05:21:14 AM
Si razón tienes Drumpi xD

No me puse con el visor 3D por puro placer, tenía que hacer un trabajo para una asignatura de informática gráfica y decidí usar Bennu porque el visor requería probar a fondo la memoria dinámica, el paso de parámetros "chungos" como matrices e incluso punteros a punteros y las primitivas de pantalla. (Además de que todas las asignaturas de informática gráfica de mi carrera las he sacado con Bennu y quería terminar cumpliendo la tradición).

Implementar el efecto de plano inclinado a la perfección tiene bastante menor complicación que lo que ya tiene el visor, de hecho se trataría de quitarle cosas, no de añadirle, y podría tener algún extra como paredes y techos, aunque la detección de colisiones con ellas ya sería otra historia...

El mayor problema lo veo para mapear la textura del suelo, ya que todo mi texturizado venía en base a algoritmos de generación de texturas (Ruido de Perin, Woodgrain y alguno más), no te .map con la textura en sí.

Hecho a groso modo, seguramente el mapa del suelo me quedaría igual o peor que el del actual modo 7 :S Se me ocurren métodos calculando el píxel "medio" en float y haciendo interpolación ponderada entre los colores de los píxeles adyacentes... Eso no debería quedar mal y factible es sin duda, otra cosa es el tiempo que habría que dedicar...

¿El modo 7 de DIV no era 100% funcional (90% vaya)? ¿No está disponible por ahí su código? Ya no recuerdo.

La verdad es que ahora mismo estoy ocupado como para ponerme con el modo7 :-[ y le veo más futuro a preocuparnos por Bennu3D... Es una pena ciertamente, pero gracias por sugerirlo Drumpi, no lo había valorado y si algún día me quedo sólo en casa y me puede el hastío me pondría a adaptar el visor 3D a ello... Aunque sea comenzar el proyecto, la base está hecha.
Title: Re: raytracing
Post by: syous on September 23, 2009, 08:06:37 AM
Quote from: SplinterGU on September 22, 2009, 05:02:03 PM
entonces, sabiendo que tarda 3 dias un solo render... cual seria la propuesta del post inicial? no la entendi...

me podrias explicar un poco mejor, tipo "for dummies"?

la idea mia era una libreria tipo vse pero de mas calidad yo ahora el raytracing lo uso para generar escenarios estaticos y no dinamicos objetos , etc

no digo que generes todo juego con el lo cual es inviable pero si para temas parciales darle mas utonomia , algo tipico videos generados por el propio motor grafico o escenarios random y generar objetos en tiempo real, efectos climaticos aplicaciones hay muchas
Title: Re: raytracing
Post by: Windgate on September 23, 2009, 02:27:01 PM
Sí, desde luego se le podría sacar partido... Pero quedan tantas otras cosas por hacer con el Bennu 3D... Está en pañales.

De hecho si no fuese por Prg no habría ningún juego xD

Si se trae a Bennu el Raytracing debería ser a partir de alguien que lo haya programado en su día y liberado un código medianamente eficiente, porque hacerlo "a mano"... Gouraud ya me hizo sudar y no es ni la décima parte de complicado.

Y aún nos falta la nueva física por cierto, todas las noches lloro un poquito mientras la espero :'(
Title: Re: raytracing
Post by: syous on September 23, 2009, 03:14:02 PM
Quote from: Windgate on September 23, 2009, 02:27:01 PM
Sí, desde luego se le podría sacar partido... Pero quedan tantas otras cosas por hacer con el Bennu 3D... Está en pañales.

De hecho si no fuese por Prg no habría ningún juego xD

Si se trae a Bennu el Raytracing debería ser a partir de alguien que lo haya programado en su día y liberado un código medianamente eficiente, porque hacerlo "a mano"... Gouraud ya me hizo sudar y no es ni la décima parte de complicado.

Y aún nos falta la nueva física por cierto, todas las noches lloro un poquito mientras la espero :'(


el codigo fuente del raytracing esta disponible para su descarga y posiblidades son infintas se podria genera cualquier grafico por codigo y hoy en dia con los procesadores actuales se podria hasta rendering en tiempo real para ciertas cosas
Title: Re: raytracing
Post by: Drumpi on September 24, 2009, 02:41:39 AM
Windgate: si, el modo7 de DIV era genial, estaba casi perfecto y era facilísimo crear juegos con muy buena jugabilidad (cosa que no conseguía en Fenix, no se por qué) pero tenía sus limitaciones, como los 256 colores, la falta de posibilidad de poner pixels transparentes o aplicar semitransparencia. La pega es que no existe código fuente, lo tenía Hammer Technologies y no se si luego se lo pasó a Fastrack, y si se lo pasó quien lo tiene. Pese a lo que diga Gamemaster, yo creo que .emix surgió de dicho código.
Por lo de colisiones con paredes no habría que preocuparse, al ser verticales incluso un mapa de durezas serviría. Qué recuerdos cuando intentaba añadir paredes en DIV2 a base de lineas verticales.
Tu hazlo si tienes ganas, no hay obligación. Tampoco es necesario que implementes nada 3D, con hacer que el suelo se mueva y rote con cieta suavidad ya vale, más que nada me hastía el poder hacer juegos sólo en 8bits.

Syous: que yo sepa VSE no usaba iluminación, ETD sí, pero no era una librería para realizar renders: con un poquito de maña y una máquina de las de hoy día se pueden hacer auténticos juegazos con renderizado en tiempo real. Yo tenía entre manos un platafromas que se vió retrasado por dos motivos: gráficos, y un editor de mapas de tiles (por eso insisto tanto en el tema: mi pila de proyectos requiere siempre de un motor de tiles :()
Title: Re: raytracing
Post by: SplinterGU on September 24, 2009, 02:46:33 AM
raytracing es muy lento sea con el equipo que sea... me parece que la tecnica en si es pesada...

si lleva 3 dias con ese equipo, con un equipo mas potente no hara que mejore al nivel de usarlo para tiempo real...

Title: Re: raytracing
Post by: syous on September 24, 2009, 07:31:04 AM
Quote from: SplinterGU on September 24, 2009, 02:46:33 AM
raytracing es muy lento sea con el equipo que sea... me parece que la tecnica en si es pesada...

si lleva 3 dias con ese equipo, con un equipo mas potente no hara que mejore al nivel de usarlo para tiempo real...



tardo 3 dia pues mi equipo tiene casi 10 años
con los equipos actuales los quad core y dual core y las indigentes cantidades de rama y en breve octa core se puede

exitio un juego en la epoca del msdos generaba todo los terrenos por voxels en tiempo real

el outcast
Title: Re: raytracing
Post by: laghengar on September 24, 2009, 08:18:05 AM
offtopic: perdón, pero, un motor de tiles??? a que te refieres???
Title: Re: raytracing
Post by: Windgate on September 24, 2009, 08:30:12 AM
¿Una matriz donde almacenar trocitos de escenario y mostrar por pantalla sólo la parte correspondiente? Había un ejemplo de eso por ahí...

Aplicado a 3D ya se me escapa eso del "motor de tiles".

Más offtopic: Creo que ya lo dije, pero hecho de menos poder alterar el size y el angle en el actual scroll[] de Bennu.

Offtopic 3º: Ayer vi un ejemplo de 6 region + 6 start_scroll que hizo un alumno y un multiscroll de nubes con 6 niveles de profundidad que era la verga en bicicleta.
Title: Re: raytracing
Post by: syous on September 24, 2009, 09:35:38 AM
Quote from: laghengar on September 24, 2009, 08:18:05 AM
offtopic: perdón, pero, un motor de tiles??? a que te refieres???

las librerias vse y etd si no recuerdo mal genneraban terrenos por voxels y eso hoy en dia se suele usar con bastante frecuencia consume un poco de cpu
Title: Re: raytracing
Post by: laghengar on September 24, 2009, 05:55:57 PM
Bueno tio también tienes la opción de hacer que el scroll sea un proceso y así le puedes cambiar el angle, eso lo he hecho yo, es fácil y no he tenido ningún problema.

No se, lo mismo te paso un código donde lo tengo, a ver si te ayuda (aunque lo dudo). Antes tengo que revisarlo por si lo mejoro en algo. Un saludo.

Vale, dejo esto ya, y pido perdón por este offtopic.
Title: Re: raytracing
Post by: Windgate on September 24, 2009, 08:06:41 PM
Ciertamente una opción sería pillar el fuente del mod_scroll.dll y aplicarle unos cambios sutiles... Su código tendrá una complicación similar a lo que supondría hacer un scroll usando un proceso.

Lo pensé en su día... Eso ya lo dejo para estas Navidades como pronto porque ahora mismo estoy hasta arriba.

Por cierto, estábamos hablando de raytracing, maleducaus!!! (Yo el primero ;))
Title: Re: raytracing
Post by: Drumpi on September 25, 2009, 02:32:58 AM
Pues tengo que seguir el offtopic por alusiones:
No, ni ETD ni VSE usan un motor de tiles. Un motor de tiles es una serie de funciones que generan un scroll don un escenario gigantesco creado a partir de imágenes pequeñas denominadas "tiles", que representan un suelo, una cuesta...
El motor de tiles venía a cuento simplemente para crear los niveles, más fácil que usar el paint... y para optimizar recursos, pues cree un motor de scroll tileado que dibujaba en un gráfico, y con el podía usar un voxel pequeño.

Windgate: si, mi motor está disponible para uso público, recomiendo la última porque sólo usa un proceso por tile visible en pantalla (se pueden añadir filas y columnas extra en los bordes si se quiere) NO vacío. Soporta varias capas (según potencia del equipo ;D) y gracias a eso sí que podría tener alguna utilidad 3D: imaginalo para un editor de niveles de los primeros Tomb Raider. Y espero tener en breve una versión del mismo con soporte ISOMÉTRICO, lo necesito para hacer un Tower Defense antes del día 10.

Laghengar: te olvidas de las optimizaciones de splinter en el scroll, que sólo dibuja lo que se ve. Ya sabes lo que pasa con un proceso que mueve un mapa gigante, que necesitas mucha máquina.

Windgate2: si, yo tambien pensé en modificar el mod_scroll, pero aun necesito aprender algo más de C, tanto para lo que proponeis como para pasar mis motores tileados a módulos.

Vale, vale, ya dejo el offtopic. Raytracin caca, no funciona en tiempo real ;D ;D ;D
Title: Re: raytracing
Post by: laghengar on September 25, 2009, 08:53:52 AM
http://forum.bennugd.org/index.php?topic=244.0

Perdón, no he puesto que este link es para la charla offtopic de aquí.
Title: Re: raytracing
Post by: syous on September 25, 2009, 08:56:08 AM
Quote from: Drumpi on September 25, 2009, 02:32:58 AM
Pues tengo que seguir el offtopic por alusiones:
No, ni ETD ni VSE usan un motor de tiles. Un motor de tiles es una serie de funciones que generan un scroll don un escenario gigantesco creado a partir de imágenes pequeñas denominadas "tiles", que representan un suelo, una cuesta...
El motor de tiles venía a cuento simplemente para crear los niveles, más fácil que usar el paint... y para optimizar recursos, pues cree un motor de scroll tileado que dibujaba en un gráfico, y con el podía usar un voxel pequeño.

Windgate: si, mi motor está disponible para uso público, recomiendo la última porque sólo usa un proceso por tile visible en pantalla (se pueden añadir filas y columnas extra en los bordes si se quiere) NO vacío. Soporta varias capas (según potencia del equipo ;D) y gracias a eso sí que podría tener alguna utilidad 3D: imaginalo para un editor de niveles de los primeros Tomb Raider. Y espero tener en breve una versión del mismo con soporte ISOMÉTRICO, lo necesito para hacer un Tower Defense antes del día 10.

Laghengar: te olvidas de las optimizaciones de splinter en el scroll, que sólo dibuja lo que se ve. Ya sabes lo que pasa con un proceso que mueve un mapa gigante, que necesitas mucha máquina.

Windgate2: si, yo tambien pensé en modificar el mod_scroll, pero aun necesito aprender algo más de C, tanto para lo que proponeis como para pasar mis motores tileados a módulos.


Vale, vale, ya dejo el offtopic. Raytracin caca, no funciona en tiempo real ;D ;D ;D




No sera tan caca cuando farcry y crisis lo usan  para escenarios fotorealisticos
Title: Re: raytracing
Post by: Windgate on September 25, 2009, 10:00:45 AM
Sí sí, si el raytracing se usa, pero desde Blender o 3D Max para generar el escenario y que quede lindo. Luego una vez creado y tras varios días de render el modelo del mapa se incluye en el juego y el juego en sí no realiza raytracing, simplemente aprovecha la belleza "estática" que se ha conseguido gracias al render por raytracing.
Title: Re: raytracing
Post by: Drumpi on September 26, 2009, 01:19:40 AM
Crisis, declarado oficialmente el juego que más recursos pide para un PC.
Farcry ¿funciona en PC o sólo salió en XBOX360, una de las dos consolas más potentes (y caras) del mundo? ;D ;D ;D

Para renderizar puede que esté bien, pero en Bennu hablamos de juegos en tiempo real (salvo que alguien programe un ajedrez on-line). Es una aplicación demasiado específica como para incluirse, creo yo.
De todas formas, pregúntale a Donan qué opina del raytracing, creo que en nuestra última conversación lo llamó "mierda de raytracing" (él usa un plugin con otro algoritmo supuestamente mucho más óptimo y realista)
Title: Re: raytracing
Post by: Windgate on September 26, 2009, 01:27:44 AM
¿Te refieres a la radiosidad?

Por lo que recuerdo, el Raytracing consiste en trazar rayos desde cada pixel de la cámara hacia la escena, rebotando donde corresponda, hasta localizar puntos luminosos y demás, obteniendo un realismo enorme.

Por otro lado está la radiosidad, que es lo mismo pero al revés, traza rayos desde cada punto de luz, rebotando hasta localizar la cámara (MUCHO más costoso y realista).

La diferencia fundamental es que si tenemos una luz encerrada dentro de una caracola, con Raytracing no veremos brotar luz de la abertura de la caracola, en cambio con radiosidad sí que la veremos.

Básicamente es eso, por encima de Raytracing y radiosidad (Desconozco cómo se dice radiosidad en inglés) no había oído hablar de nada, pero si pones algún link siempre viene bien saberlo Drumpi.
Title: Re: raytracing
Post by: Drumpi on September 26, 2009, 01:32:45 AM
Radiosity, me suena ese nombre, pero por desgracia, mi experiencia en 3D se limita a una asignatura optativa de informática que cogí como libre configuración, por lo que se lo básico. Ya digo que es Donan el que sabe, lo mismo incluso estoy confundiendo nombres y todo :P
Lo más complejo que he hecho es lo que nos pidieron en un exámen de tres horas y media, si quieres te lo paso, pero es un .max de la version 3DSMax 8.
Title: Re: raytracing
Post by: Windgate on September 26, 2009, 10:11:31 AM
No uso max, y si Bennu3D no lo soporta... Lo que sí puedes pasarme si quieres es ese .max exportado a algún formato soportado por Bennu si tienes un tiempo, para comprobar si la exportación genera modelos soportados, que no tendría por qué no ser así, pero bueno.

Tengo por ahí un modelo que hice con Wings 3D de una botella, con su hueco interior, material transparente y una densidad poligonal considerable... Es .obj, a ver si la rescato y la pruebo en Bennu, aunque supongo que la transparencia se la pasará por el forro, sabiendo que se basa texturas y que el motor de Quake en el que está basado no tenía de esas cosas...

Aunque texturas PNG con alpha en Bennu3D... Me se ocurren cosas... ¿Alguien ha probado esa salvajada?