EMaDeLoC escribió: @Señor Ventura No existe "escala de grises" como textura en la N64, sino Intesidad o Intensidad con Alfa. Esta intensidad se refiere al color del triángulo o polígono. Si el triángulo es blanco, el valor 255 será el blanco y el valor 0 será el negro, siendo los valores intermedios una escala de grises. Pero si el triángulo es verde, 255 será el verde puro, 0 el negro y los valores intermedios los pasos de este verde al negro. Y así con otros colores que se pinte como rojo, azul, morado, naranja, etc, y supongo que también si cada vertice es de un color y se hace un degradado.
En cierta forma vendría a ser la "luminosidad", pero luminosidad es erroneo y confuso. Si el triángulo es de color azul oscuro, el valor 255 no va a dar un azul luminoso, solo el mismo azul oscuro.
SuperPadLand escribió:@radorn hola que es NTSC-M?
.Something a bit different and non-tiny3d.
This demo implements a basic ray-marcher running on the CPU and RSP.
The CPU does the basic loop per pixel incl. ray construction and the final shading,
whereas the RSP does the loop per ray to determine the distance.
Since i pre-run the first ray, CPU & RSP can run mostly in parallel.
SDFs on the RSP are baked into the ray-loop for performance reasons, so each SDF is a copy of the entire loop.
The CPU does the same to save a few instructions.
In the end, a set of constexpr-structs define what functions a scene will use.
Since the shading is done on the CPU, there is a bit more freedom for effects.
For example texturing can be done with any texture size and generated UVs.
The textures on models are 256x256 RGBA16, and the skybox a whopping 1024x512 pixel (equirectangular mapped image even).
As far as practical use-case go... well not much tbh.
Even the basic loop for the raymarcher without actually checking a SDF is slow.
So the only thing i may look into in the future is to make an optimized skybox-only version.
_________
Note: If you want to emulate this ROM, please use ares or gopher64.
Input is also very delayed, so hold down buttons for a bit.
_________
0:00 - Basic SDF
1:06 - Point Light
1:47 - Stripes
2:22 - Normal Mapping
3:27 - Octahedrons
3:45 - Simple Env-Mapping
5:04 - Skybox / Sky-Reflections
Sexy MotherFucker escribió:@doblete ¿por qué se supone que me tiene que impresionar ese pase de diapositivas con vsync galopante en algunos tramos?
EMaDeLoC escribió:Vamos, como poner al nieto a labrar el campo del abuelo. Tiene gracia, pero no futuro práctico.

![Que me parto! [qmparto]](/images/smilies/net_quemeparto.gif)
Señor Ventura escribió:Pues veo en eso una máquina con potencia para hacer todo eso incluso mas rápido de lo que esperaba, por lo que celebro que hay cpu para lo que quieras en un entorno de juego normal.
As far as practical use-case go... well not much tbh.
Even the basic loop for the raymarcher without actually checking a SDF is slow.
So the only thing i may look into in the future is to make an optimized skybox-only version.
Sexy MotherFucker escribió:@doblete ¿por qué se supone que me tiene que impresionar ese pase de diapositivas con vsync galopante en algunos tramos?
Usually you render objects with triangles, which get rasterized into pixels.
Here you do it the other way around checking for each pixel on screen if an objects is there.
For that you shoot a ray into the scene per pixel from the camera position.
Each ray then steps though the scene checking if it hits something.
If it does, it also check the direction the surface points at (normal vector) and can then apply shading.
In this case some color effects or fancy texturing.
The special part about raymarching compared to e.g. ray-tracing is the way objects are described.
Instead of meshes out of triangles, objects are just mathematical functions telling you how close you are to them (called SDFs).
Or in other words, if i give it a point in 3D space, it tells me how far away the closest point on the surface is.
So the raymarcher can then stop if the distance becomes small enough for me to consider it a hit.
Note that it has no idea where objects are, or even the direction, it can only check the distance.
A sphere for example can be described as:
"sqrt(x*x + y*y + z*z) - radius"
Where xyz are the position of the ray.
The special thing that makes raymarching "fast" is that instead of stepping the ray at small fixed steps,
you can always step by the amount the SDF returned.
Since you know that that distance is the closest thing to possibly hit.
But on N64 as you can imagine it is painfully slow, since there are many (looped) steps i have to do per pixel.
Yeah i tried skip some of the calculations for repetition, but the issue i was running into was that it ironically increased cost.
One main difference to modern hardware is that the CPU/RSP are single core processors.
So each pixel/ray happens in sequence (well the RSP is vectorized, so some calculations can do 2 rays at once).
But adding one instruction per ray means i pay it per-pixel, whereas modern hardware / GPUs can offset the cost since you only pay it once per batch as they actually run in parallel.
dirtymagic escribió:Yo lo veo bastante complicado, lo más parecido en N64 podría ser el Duke Nukem Zero hour, no he jugado al juego, para saber como son sus niveles, pero si son como el video, tal vez algo con la calidad del Duke, podría ser viable.
Salud.
dirtymagic escribió:Luego ya si quieres un port con una consola de la época, a 60 fps, 480i , escenarios gigantes sin niebla y con vida propia, sólo podría la PSX![]()
dirtymagic escribió:@Señor Ventura
¿no te has enterado de que la PSX es el hardware más potente creado en los 90?, no hay nada que no haya podido hacer comercialmente, y si no han podido es por la falta de recursos de esa época, pero ahora,lo que le pidas, es más, seguramente que se incluyese el hardware de PSX en PS2, no era por compatibilidad, el GTE es el que mueve realmente la geometría de juegos de PS2, el EE sólo se usa para descomprimir el MPEG2 de los DVD- Video y por supuesto el aumento de memoria que era un cuello de botella para sacar todo el rendimiento del GTE.
Salud.
bluedark escribió:dirtymagic escribió:@Señor Ventura
¿no te has enterado de que la PSX es el hardware más potente creado en los 90?, no hay nada que no haya podido hacer comercialmente, y si no han podido es por la falta de recursos de esa época, pero ahora,lo que le pidas, es más, seguramente que se incluyese el hardware de PSX en PS2, no era por compatibilidad, el GTE es el que mueve realmente la geometría de juegos de PS2, el EE sólo se usa para descomprimir el MPEG2 de los DVD- Video y por supuesto el aumento de memoria que era un cuello de botella para sacar todo el rendimiento del GTE.
Salud.
Por supuesto! Y la tierra no es esférica, tiene forma de disco y está sostenido por cuatro elefantes que se apoyan sobre una tortuga gigante que surca el espacio 😁.
dirtymagic escribió:@Señor Ventura
¿no te has enterado de que la PSX es el hardware más potente creado en los 90?, no hay nada que no haya podido hacer comercialmente, y si no han podido es por la falta de recursos de esa época, pero ahora,lo que le pidas, es más, seguramente que se incluyese el hardware de PSX en PS2, no era por compatibilidad, el GTE es el que mueve realmente la geometría de juegos de PS2, el EE sólo se usa para descomprimir el MPEG2 de los DVD- Video y por supuesto el aumento de memoria que era un cuello de botella para sacar todo el rendimiento del GTE.
Salud.
Señor Ventura escribió:dirtymagic escribió:@Señor Ventura
¿no te has enterado de que la PSX es el hardware más potente creado en los 90?, no hay nada que no haya podido hacer comercialmente, y si no han podido es por la falta de recursos de esa época, pero ahora,lo que le pidas, es más, seguramente que se incluyese el hardware de PSX en PS2, no era por compatibilidad, el GTE es el que mueve realmente la geometría de juegos de PS2, el EE sólo se usa para descomprimir el MPEG2 de los DVD- Video y por supuesto el aumento de memoria que era un cuello de botella para sacar todo el rendimiento del GTE.
Salud.
A ver, cuando las exageraciones y las ironías pasan desapercibidas con ciertos relatos, es que no son suficientes xD
A mi me ha resultado creíble con la narrativa oficial

Conker64 escribió:No sé si recordáis hace tiempo que comenté que una N64 PAL con roms NTSC causa stuttering.
Hoy andaba trasteando y he anotado los resultados que da una N64 PAL FRA en un OSSC:
PAL: 49,88hz, 49.94hz, 49,96hz, 49.97hz, 50.00hz
NTSC: 60.99hz, 61.03hz
Y parece que he dado con una solución, en gbatemp hay un hilo , que trata sobre lo mismo y ya han diseñado un script para auto parchear ROMs, o inyectar ciertos cambios en VI.
Dentro del hilo, la respuesta que me interesa es la 14, así que bueno, voy a probar esos scripts, parchear alguna ROM y probarla, a ver si el stuttering desaparece, y comento de vuelta, si los ficheros son buenos, los personalizo y subo en un único zip para tenerlos a mano aquí.
Salvo que alguien tenga el mismo problema, se me adelante y quiera probar.
Seideraco escribió:@Conker64 ¿Puedes decirme cómo ejecutas roms NTSC en una N64 PAL?
¿Se ven en color o en blanco y negro? Lo digo porque hace mucho me negaron que los pudiera jugar en color en mi N64 PAL usando roms NTSC a través de mi copión V64 JR. Y usando un simple cable de audio video pues mi N64 no contaba con salida RGB.
Gracias por adelantado y un saludo.