Demo of megatextures running on n64 hardware
github.com
github.com
"How I implemented MegaTextures on real Nintendo 64 hardware" - https://www.youtube.com/watch?v=Sf036fO-ZUk
"Megatextures Tech Demo - N64brew Summer Game Jam 2023 Submission" - https://www.youtube.com/watch?v=plh9OGel-lM
Presumably using the more standard resolution would let you use smaller textures and get a higher frame rate.
I hope someone makes something really cool with this some day. It’s always amazing to see what people are capable of pushing old hardware to do given the additional the knowledge we’ve gained and without the constraints of commercial timelines.
His approach might be feasible with smaller textures and still represent a visual upgrade over the typical N64 "blurry mess"
At least N64 had correctly-projected textures.
PlayStation had sharp pixelated textures that were incorrectly mapped onto 2D triangles (they didn't account for depth).
So N64 was blurry but correct. PlayStation more aptly deserves the "mess" descriptor.
Impressive because a lot of N64 devs at the
time didn't do these now-common things
Absolutely, but it's also worth noting that these techniques might not have been viable in the context of a game (or at least, most games) anyway.The author himself addressess this at the end of one of the videos and concludes that it might be a stretch unless a game was designed specifically around this rendering strategy.
He skips the N64's hardware Z-buffer (to conserve bandwidth) and DIY's it, which works for the demo because the demo room has exceedingly simple geometry. I don't know that this approach would work once you involve player models with 500-700 polys as seen here: https://www.copetti.org/writings/consoles/nintendo-64/
The transition between texture detail levels is also a bit jarring: it's an amazing demo, but might be too jarring or frustrating for a game.
On the positive side, the demo runs in the N64's hires mode, which could be avoided to free up some (a lot of?) perf. Also the author admits that the highest detail level of the textures is not something that would necessarily be needed for a game.
One also wonders if a hybrid approach would work: "megatextures" and DIY z-buffering for the scenery, trad rendering for the characters. I don't know if that is possible.
This used to happen all the time.
An N64 game with this level of graphics would have sold like crazy back in the day, even if the game wasn't that great.
Which brings up the interesting question, if we didn’t keep adding complexity how flashy could we make old hardware? What things could we make it do that it never could in the day. Feels like this is one of those things?
Come on, brother. You can't just say something like that and not drop a link.
Uncharted and The Last of Us is just continue what is tradition at this point :)
The main resource limitations you deal with are the main RAM banwidth and the TMEM size. The complexity comes from the division of work between the CPU and a coprocessor called the RSP, which is basically a stripped-down MIPS CPU core that has a SIMD unit and some scratch RAM. You can come up with cool ways to use the RSP, but if you eat up more of the main RAM bandwidth, you'll hurt performance.
The demo here is focused on working around the TMEM size limitation, but it looks like it also reduces the RAM bandwidth use by drawing in Z order rather than using the Z buffer... which is an overall solid approach for improving graphics performance on the N64.
The PS3 has some striking similarities to the N64, in that both consoles have coprocessors with SIMD units that operate on scratch RAM. Both consoles have a reputation for being difficult to program for. The PS3 takes things a bit farther in that the Cell SPEs can only access main memory through DMA. I can only imagine how hard it was to effectively use the SPEs.
https://retrocomputing.stackexchange.com/questions/17566/why...
I guess the big deal is that this time it's optimized for absolutely as much resolution as possible, even at the cost of poly count
At the end of the demo video for this he mentions he probably won’t use this for Portal. But he may adapt a version/use a somewhat similar technique just for the Ratman graffiti.
1) 40MB of textures 2) split into mipmaps 3) split into ~32x~32 tiles. 4) streamed in according to camera 5) with the lowest resolution layers always loaded to handle whipping the camera around quickly. 6) and the Z-buffer off to save memory bandwidth.
The video is worth watching too.
I thought it was phong shaded?
[0] https://all-things-andy-gavin.com/2011/02/04/making-crash-ba...