› Foros › Retro y descatalogado › Consolas clásicas
jordigahan escribió:cegador escribió:Soy diseñador gráfico y modelador 3D.
Si alguien se anima a hacer un juego para N64 me gustaría colaborar.
me apunto !!!
yo tengo diseñado todo el primer circuito en el unreal engine.
Señor Ventura escribió:Se soluciona fácilmente.
@BMBx64 ¿Que expectativas de rendimiento esperais, por ejemplo, si hablamos de un daytona usa?.
Calculinho escribió:@Sexy MotherFucker esa rom que comentas la descubrí poco después de sacar las 120 estrellas sino recuerdo mal sólo salió en Japón y de lo que no estoy seguro al 100% es de si es el único caso o si hubo algún juego más que fue relanzado con soporte para el rumble.
Sexy MotherFucker escribió:Cifras del Daytona U.S.A de ARCADE para establecer más visualmente la comparativa:
- 300.000 polígonos por segundo.
- Mapeado de texturas com mip mapping, correción de perspectiva, y 16 bit de profundidad de color.
- 60 fps inamovibles.
- 496x384p (24 khz).
- Hasta 39 ias en carrera.
- Sonido a 48 canales PCM y 44 Khz.
Que conste que yo me conformo con 50.000 polígonos, las mismas IAs que en Saturn, 60 fps constantes, y 0 pop up.
BMBx64 escribió:La idea es que cuando todas las funciones RDP estén 100% testeadas, se empiece a migrar código al RSP, ahí si que se va a ver el verdadero salto de rendimiento con esta librería.
Sexy MotherFucker escribió:- Expectativas modestas; 320x224 (quitamos 16 líneas horizontales para aligerar algo la C.P.U), 50k de poly count, después de todo la N64 trabaja mucho mejor las superficies con unos pocos polígonos que la Saturn
jordigahan escribió:para los que dicen que daytona no es posible en N64, solo dire esto:
https://www.youtube.com/watch?v=H-S0BwVQ5Vo
BMBx64 escribió:@Señor Ventura
Sí, libn64 va a tener un microcódigo programado en ASM para el RSP, Factor 5 tenía parcialmente un ucode de este tipo, Boss Studios también, esos juegos tenían un rendimiento por encima del resto y eso que eran cosas reprogramadas parcialmente de libultra.
La libultra base maneja 2 triángulos a la vez, el ucode de Krom maneja 8, la unidad vectorial de N64 tiene un registro de 128bits, 8 elementos de 16bits.
Luego libultra igual fue compilada con GCC 2.XX, ha llovido mucho de eso, n64lib usa GCC 7.XX con todos los parches que han aparecido en los últimos 20 años para incrementar rendimiento en los MIPS, además la librería es óptima.
El mayor problema de N64 es el filltrate, en ese caso también has visto un progreso en mis demos de libdragon, como usaba recarga inteligente de texturas o el recorte de zonas tapadas para ir mejorando la velocidad del scroll, los motores 3D antiguos no recortan zonas tapadas, las 3D estaban en pañales en aquel entonces, se puede hacer mucho mejor.
Igual que los modelados 3D, los del Mario de DS usan menos polígonos que el de Mario 64 y se ven menos cuadradotes, ya solo por como ha avanzado los conocimientos en 3D y las herramientas los juegos deberían verse mejor, claro que hay que meterle trabajo a eso.
A mi me gustaría aspirar siempre a 60fps
En los próximos días a ver si ya empiezo a subir una demo de un cubo 3D rotando.
Señor Ventura escribió:Que hardware tan complicado, y lo que hay que saber para dominarlo tiene tela.
Con la game cube no tuve tantos errores de concepto jamás, pero con la n64 aún me cuesta no perderme ^^u
Sexy MotherFucker escribió:Señor Ventura escribió:Que hardware tan complicado, y lo que hay que saber para dominarlo tiene tela.
Es que está mal diseñado de cojones, me atrevería a decir que hasta un desastre como Saturn tiene un diseño más amable, después de todo en esa consola si te limitas a las 2D la vida florece para el programador; pero es que en Nintendo 64 hasta para hacer un puto Cadillac & Dinosaurs hay que pelear.
Por eso la libn64 es una noticia fantástica.
@los sceners: Ni problemas de fillrate ni hostias; mandad al carajo de una vez el buffer Z y los filtros que hagan falta. Un bilinear, perspective correction, y a tirar palante como los de Alicante con la libn64.Con la game cube no tuve tantos errores de concepto jamás, pero con la n64 aún me cuesta no perderme ^^u
Porque el cubito es una N64 sólo que bien diseñada xDD
Sexy MotherFucker escribió:@LINKr2 yo es que probé el Daytona del LIVE a 60 fps hace poco y la jugabilidad estaba a 1.000 jodidas millas del «Circuit Edition» a 25-30 fps de la Saturn, por lo que yo ya no quiero tocar un Daytona a menos de, como mucho, 50 frames. De hecho es que esta versión es incluso más rápida que la recreativa, ya que el ARCADE rula ade 57,XX hz, y el otro a 60.
Lista de prioridades en un racing game: VELOCIDAD »»» JUGABILIDAD »»» SONIDO »»» DETALLE GRÁFICO.
Sogun escribió:60 fps sería ideal, pero también queremos ver algo gráficamente impactante y ahí es cuando notaríamos que nos faltan recursos por todos lados. Yo partiría de 30 fps a 320x240 que ya es más que el 99% del catálogo de la consola y luego buscaría meterle toda la traya posible con efectos de luz y de framebuffer por un tubo. También un uso inteligente de los mipmaps porque te permiten crear efectos gráficos como el agua del super mario sunshine.
Con imaginación se pueden hacer cosas muy chulas en N64. Un par de ejemplos de una demo que estaba haciendo. Esto corre en el GoldenEye:
-Fur shading: Cinco capas con cuatro texturas diferentes, aunque se podría conseguir el mismo efecto con la misma textura y diferentes grados de transparencia y pintado de vértices. En consola no funciona muy bien incluso con tan poca carga gráfica. Tengo que hacer más pruebas.
-Normal mapping: cinco capas con una textura de 64x32 a 4 bits de color. He hecho pruebas con mipmaps personalizados pero no se ve bien en consola cuando la textura se ve de canto. Lo más seguro es que haya que desactivar los mipmaps. No quedaría mal porque aunque se pixelice la textura a la distancia estaría simulando bordes de polígonos en cada ladrillo. También se podría probar con una textura de 32x32. El rendimiento no parece resentirse, lo trata como polígonos normales. Estamos multiplicando por 5 la carga poligonal en escenarios, por lo que habría que controlar dónde se usa.
-Vegetación: Cinco capas con dos texturas diferentes (en realidad una de suelo y otra para la vegetación). Es un paso intermedio entre los otros dos, el rendimiento no se ve afectado porque no se usan semitransparencias. Aquí el uso de mipmapping queda bien, pero necesitas texturas cuadradas porque sino queda raro.
-El agua del mario Sushine a la derecha, también corriendo en el engine de GoldenEye. Estoy intentando mejorar el efecto añadiendo envmapping o más mipmaps para que dependiendo del ángulo de visión o la distancia se vea más azul o más verde.
-Celshading: este truco dobla la carga poligonal, aunque quizás se pueda optimizar un poco. La linea negra se consigue crean un modelo ligeramente más grande, texturizado en negro e invirtiendo los polígonos. El efecto de la textura se consigue con environmental mapping (el mario metálico del Mario 64) y dependiendo de la textura se podría hacer mejor el efecto.
https://files.catbox.moe/xgv36b.mp4
Este vídeo no es mío, pero era una idea que me rondaba en la cabeza de hace tiempo tras ver este vídeo y me alegro que alguien lo haya probado.
Creo que sacando partido a las texturas, el mipmapping y el env mapping se podrían hacer más efectos chulos. Sólo es cuestión de que alguien dé con la tecla.
BMBx64 escribió:La corrección de perspectiva, el filtro bilinear y la mayoría del RDP se activa en 1CYCLE, si quieres pintar en 3D hay que ir a este modo, porque en COPY no tendrías ni iluminación, ahí ya viene el sacrificio que es pasar de pintar 4 pixels por ciclo a solo 1, activar o no algunos efectos tiene un impacto menor en el rendimiento, dar transparencia es inapreciable por lo que vi, ya se le ha dado tiempo al chip para su buen funcionamiento.
BMBx64 escribió:El mip mapping requiere irse a 2CYCLE (0.5 pixels por ciclo, la mitad que el otro modo), se interpolan 2 texturas de distinto tamaño y todo lo que sea trabajar con 2 texturas a la vez requiere este ciclo, como el morphing o renderizar una superficie con 2 texturas como el suelo de Zelda OOT o para otro tipo de efectos.
Lo ideal es renderizar la mayoría en 1CYCLE y dejar 2CYCLE para efectos especiales, como partes metálicas reflectantes, el agua, etc, claro que en un mundo 3D si coges y pones la cámara en frente de una superficie de estas ya le estas pidiendo a la consola que pinte a pantalla completa en ese ciclo.
Sexy MotherFucker escribió:@BMBx64 pues entonces a darlo TODO en 1 cycle; 50-60k polycount, 320x224p, A TOMAR X CULO el buffer Z, y a quemar la libn64 cuando estén a tope las partes para manejar ASM.
@Señor Ventura y ni reflejos, dobles texturas, ni mariconadas; esas pijadas pa los millenials, el 2 cycle ni tocarlo. A Daytona U.S.A se viene a correr a 60 fps y a fliparlo con la música.
Tendríamos una versión ++ del de Saturn con filtro bilineal, corrección de perspectiva, y a 60 fps.
¡VamonoosssSSSS!
Sexy MotherFucker escribió:@BMBx64 pues entonces a darlo TODO en 1 cycle; 50-60k polycount, 320x224p, A TOMAR X CULO el buffer Z, y a quemar la libn64 cuando estén a tope las partes para manejar ASM.
@Señor Ventura y ni reflejos, dobles texturas, ni mariconadas; esas pijadas pa los millenials, el 2 cycle ni tocarlo. A Daytona U.S.A se viene a correr a 60 fps y a fliparlo con la música.
Tendríamos una versión ++ del de Saturn con filtro bilineal, corrección de perspectiva, y a 60 fps.
¡VamonoosssSSSS!
BMBx64 escribió:@Sexy MotherFucker
@Señor Ventura
Sí, 1cycle activa todas las propiedades 3D de la maquina, los 2 sirven para 3D.
2cycle se puede usar, no dejan de ser efectos a nivel de hardware, el agua de las olas de Waverace es 2cycle.
Ahora me he encontrado algo curioso, en CEN64 me están yendo los ejemplos, en cuanto los he probado en N64, me han empezado a cascar y he visto defectos en pantalla.
Resulta que con libn64 el código va más rápido que el chip gráfico, termina antes las tareas y lo corta a medias, así que se quedan texturas a medio pintar y cosas raras, hay una función interna de sincronización en el RDP, para esperar a que se cargue un tile, esperar al pipeline, etc..
Ahora estoy editando las funciones para usarlo, allá donde casca, lo cual es un buen indicativo de velocidad, Marathon por su parte acaba de implementar los contadores internos, así que pronto podré empezar los benchmarks.
Sexy MotherFucker escribió:60-70 k a 30 fps. Ahora imaginátelo a 60, menor pop-up, y las texturas filtradas; ¿Tan mal lo ves?
Sexy MotherFucker escribió:@Señor Ventura ¿Pero tú has jugado al Daytona U.S.A alguna vez xD? Porque eso del tercer gif no es Daytona U.S.A; el éxito de su jugabilidad se basa en un alto frame-rate.
En serio, te hace falta el documental de DF.
dirtymagic escribió:cuándo lo máximo que se a conseguido comercialmente es 120.000 Pol/Seg a 30 Fps.
BMBx64 escribió:No puedo darte expectativas ni decirte como funcionará el Daytona si no sé todavía ni como va a ir la librería
BMBx64 escribió:De todas formas tienes el ejemplo comercial de World Driver Championship:
- +120K~
- 320x240 (30fps, estables)
- Sin Z-buffer
- Cartucho de 16MB
Señor Ventura escribió:¿Que opinas?, ¿un virtua racing con 100.000 polígonos planos a 60fps hubiera podido ser posible durante su etapa comercial?.
por cierto, ¿que tal incide en el fill rate si no texturizas los polígonos?.
Señor Ventura escribió:Mejor 90k polígonos a 640x480 que 180k a 320x240.