Video wird geladen...

Video konnte nicht geladen werden

Zur Startseite

I've extended my terrain streaming libraries to the sphere using HEALPix partitioning. Hysteresis radii for CPU/GPU load/activate, per-frame command budgets and sphere subdivision are all configurable. #indiedev #gamedev #computergraphics #computationalgeometry #topology

20,039 Aufrufe • vor 9 Monaten •via X (Twitter)

0 Kommentare

Keine Kommentare verfügbar

Kommentare vom Original-Post werden hier angezeigt

Ähnliche Videos

** SEGA GENESIS - LUFTHOHEIT - Tunnel Stage Preview ** We are pleased to show an early preview of part of our Tunnel/ Vortex Stage. Big shout out to Carsten666 for his gorgeous Graphics, CYBERDEOUS - Crouzet Laurent for the amazingly well matched Audio to this level, Stephane for creating SGDK in the first place and being very supportive with new features in SGDK also. Technically this stage was a bit of a challenge, some notes below re this. To drive the rolling texture of the background - 40 horizontal interrupts are used, executing 120 scanlines of color change, changing 5 colors per line = 600 color changes per frame. Variable spaced interrupts are used for expansion / compression effect. Four stages of brightness used for every texture / pattern , darkest in the center of screen , brightest top & bottom. New colors created by alternating two similar colors at 60 hz, for seams between brightness regions to increase the blending between regions. Co-operative Multi-threading system used to reclaim huge amounts of CPU within the color change interrupts. For example all rolling Cannon & Cannon bullets and Debris are moved using this technique - up to 25% of total CPU can be reclaimed ( its normally wasted polling for rhs/hblank ). Heatseeking missiles, these need trajectory's recalculated frequently and doing that at speed can be tricky - lots of missiles launched at Mid video and its the heaviest CPU load in the demo ( these are not using the Multi-threading technique yet ). Variable rate collision checking, as bullets gets very close to player the checking is done at 60 fps, as they get further away the checking drops off rapidly - this saves cpu. Runs 60 FPS at all times, works on real HW also but captured on emulator as my phone doesnt take 60hz video without getting out of sync. Intro & Foreground effects are coming, currently no foreground is present as its not quite baked enough yet, we have some cool things we will do with the extra plane yet. Lots of good stuff to come !! #SGDK #SegaGenesis #SegaMegadrive

Shannon Birt

23,873 Aufrufe • vor 1 Jahr

In May 2023, a live streaming world record was set with 32 million concurrent viewers watching the finale of the IPL cricket game. How was this system built? Ashutosh Agrawal was the architect behind this system, and he walks us through how live streaming at scale works, how the system was built and tested, and other interesting learnings. Watch or listen: • YouTube: • Spotify: • Apple: --- Brought to you by our wonderful sponsors: • WorkOS — The modern identity platform for B2B SaaS • CodeRabbit — Cut code review time and bugs in half (use the code PRAGMATIC to get one month free) • Augment Code — AI coding assistant that pro engineering teams love --- Three of my biggest takeaways: 1. The architecture behind live streaming systems is surprisingly logical. In the episode, Ashutosh explains how the live streaming system works, starting from the physical cameras on-site, through the production control room (PCR), streams being sliced-and-diced, and the HLS protocol (HTTP Live Streaming) used. 2. There are a LOT of tradeoffs you can play with when live streaming! The tradeoffs between server load, latency, server resources vs client caching are hard decisions to make. Want to reduce the server load? Serve longer chunks to clients, resulting in fewer requests per minute, per client… at the expense of clients potentially lagging more behind. This is just one of many possible decisions to make. 3. “Game day” is such a neat load testing concept. The team at Jio would simulate “game day” load months before the event. They did tell teams when the load test will start: but did not share anything else! Preparing for a “Game day” test is a lot of work, but it can pay off to find parts of the system that shutter under extreme load. See more takeaways and a summary here: Thanks Ashutosh for all these behind-the-scene details!

Gergely Orosz

50,597 Aufrufe • vor 1 Jahr

The U2 x Las Vegas Sphere show took two years to create and will make ~$270m. In Fall 2021, the band was approached to open the $2.3B mega-structure (with a capacity of 18k). Willie Williams — U2’s creative director since the early 1980s — initially thought it was a “terrible idea”. Why? U2’s iconic tours have been breakthrough custom sets from Zoo TV in the early 1990s (pioneering giant screens on stage) to the 360 Tour of late 2000s (360-degree stage for stadium shows). They weren’t keen to build an act around the Sphere’s requirements, especially one with the most ambitious audio-visual specs ever: ▫️160k+ speakers ▫️366ft tall x 516ft wide (9 floors) ▫️Largest LED screen ever (160k sq ft) However, the idea of a residency — instead of a moving tour — appealed to U2 because of COVID travel uncertainty. One major obstacle was that dome-shaped buildings are typically awful for audio, per Variety. The Sphere solved the issue with its 167k speakers including one in each seat. Effectively, every person is “getting studio-quality sound” according to James Dolan (owner of NY Knicks, NY Rangers, MSG and the man behind the Sphere). Meanwhile, the visuals were a collaboration with the world’s top creatives (Es Devlin, Marco Brambilla, John Gerrard and long-time producer Brian Eno). The amount of data created to fill the LED screen is mind-boggling, per Wallpaper: ▫️ there are 268,435,456 pixels… ▫️ …which is equal to 72 HD TVs ▫️ … which is equal to 12k screen resolution ▫️ …which means “every minute of content produced for Sphere is the equivalent of one hour of streaming television” “With all the big stuff I’ve done for U2 and anyone else, we don’t start with the equipment, we start with the idea, and then figure out what we need to realize that idea,” Williams tells Variety. “And sometimes it involves big video, sometimes it doesn’t. Whereas here, the only given we had going in was the building — and a building that didn’t exist, and in fact isn’t finished now. So it was odd starting a show with hardware and with a space rather than the other way around.” Here’s some napkin math for “U2:UV Achtung Baby Live at Sphere”: ▫️25 dates x 18,000 per show x $600 per ticket (range is $400 to $1400) = $270 million The entire U2 team — Williams, Bono, The Edge, Adam Clayton and Bram van den Berg (who is subbing in for the injured Larry Mullen Jr) — clearly made a risky bet. But the viral clips and buzz from opening night show it has paid off big time.

Trung Phan

9,031,859 Aufrufe • vor 2 Jahren

*** Mega Parodius Sega Megadrive Update *** Lately I've been having some fun seeing how far we can push the Parodius game engine . This is not arcade accurate - just for testing, decreased bullet timers and upped the bullet count to see what would happen re cpu usage when things are made a lot busier ! Maybe something like this could be insane mode in the options etc. Since last update we are a lot more optimised under the hood . The C based sprite engine, particularly visibility checking was speedup , overall 25 % faster. Then re-wrote the sprite engine completely in 68k assembly , 30% faster again. It took about 3 days and 1500 lines of assembly , thankfully the gains were worth it. All these gains will be back ported to S.O.T.A also as its using the same sprite engine. Usage is around 19% of cpu per frame with a full sprite load - 33 % cpu left in the busiest frame currently . Parodius is using a write the sprite list every frame type engine , so priority and meta-sprite objects can be handled with ease albiet its still a bit slower than static allocation sprite engines such as the one in lufthoheit but this is a bit easier to code for in the long run. All collision checks are been done , we are using a spatial grid system to get the collision checks done faster than a brute force approach . To get to maximum sprite count destruction is disabled in the video. We hit 80 sprites onscreen in this sequence , the sprite counter is one the Left side. We use about 16 sprites in the top hud and water line , about 21 for player attacks / missiles / shots / options . Up to 35 bullets + enemies . No lazer usage here as the Lazers use zero sprites thanks to the raster tricks , this video is all about the sprites ! Improved the water line when the Catboss is active , as he is Sprites + Forground we are doing some tile rotation tricks eg bit scrolling to give the impression of parrallax at that point . Vector Orbitex has updated the stage 1 music again and has made things even higher quality , hes mixed pcm and fm channels together to create higher quality orchestral hits for example . Pyron has started converting assets from stage 2/3 , some amazing work there . Hes well ahead of me at present which is a good thing. Still lots of incomplete animations missing logic etc , its slow going with RL getting in the way haha and 2 other projects !! Still its fun !! #SGDK #SegaMegadrive #SegaGenesis #Parodius

Shannon Birt

16,084 Aufrufe • vor 8 Monaten

The #GTA 3 port to the Sega #Dreamcast has been progressing at an incredible pace. It's been amazing to see the whole DC community come together to tag-team this "impossible" project... Here it is running on a stock DC, no longer requiring the 32MB RAM hardware modification, only a few weeks into development. Since I finally got the time to sit down, build the codebase, and look into some of what I think is the critical path for performance, let's talk about some technical shit, and some of the future steps I think can be taken to further improve performance. First of all, I want everyone to take note that this is NOT a port of the PS2 version. This is a port of the PC version, which has extra content, increased draw distance, improved textures, and other things that have actually increased the challenge here... Whether the DC version will ultimately have these additions or not will remain to be seen, but we're running into plenty of shit that the PS2 didn't have to worry about (like these big-ass PC replay saves won't fit onto a Visual Memory Unit!) Secondly, lets talk about what is and isn't currently optimized, because it's absolutely vital that the DC's hardware is fully utilized here for the sake of performance and achieving a competitive polygon count. Unlike with modern devices, where the whole graphics pipeline is handled by the GPU, both the PS2 and Dreamcast were responsible for transforming and doing lighting calculations for each vertex BEFORE they got submitted to the GPU. The PS2 had a vector coprocessor to do this, while the Dreamcast had a few extremely important SIMD and fast math assembly instructions on its CPU to do these computations. Up until literally just a few hours ago (not shown in this footage), the Dreamcast's SH4 was doing 100% of these operations in slow-ass plain C and C++ code, which is absolutely sub-optimal and is immediately bogging down its CPU with just transforming vertices, bottlenecking the entire graphics pipeline on the fist T&L stage, and also leaving less CPU time for handling other gameplay logic... this is going to absolutely have to be addressed (and already has begun to be). Another issue that is crippling performance here is the fact that the models are all using individual triangles rather than triangle strips, which the Dreamcast's PVR GPU was designed to handle better... Converting these models to use strips rather than individual triangles will result in MANY different gainz for the DC, as you're going from 3N to N+2 vertices per triangle. Converting the models to triangle strips will 1) reduce load times, since model assets will be smaller 2) reduce the amount of video memory required to hold these vertices on the GPU 3) reduce the amount of shit that must be transferred from the CPU to the GPU and 4) give us back a bunch of CPU time, since the SH4 will be less bogged down transforming redundant vertices! TL;DR: This is still EXTREMELY suboptimal in terms of fully utilizing the graphical potential of the Dreamcast. There is going to be a LOT that can be done still to both improve performance and polygon counts, so stay tuned! FINALLY: Mad respect and love to Stefanos Kornilios Mitsis Poiitidis, for doing an amazing job leading this project, and to Frogbull , Esppiral, and everyone else who is helping us stick it to the PS2 by making this happen! #gamedev #retrogaming #cplusplus

Falco Girgis

88,356 Aufrufe • vor 2 Jahren

** MEGA Parodius Scaling Effects Part 1 ** One of the big challenges with the Parodius Megadrive port is Stage 8's boss - The puffer-fish *Pooyan* with his full screen scaling effect. The goal is to be very close to the arcade (with extras on top ) so I thought lets tackle it head on to see how close we can get. I was also keen to jump into another scaling code rabit hole haha. Pyron pulled out all the stops and got me the source frames and reworked the BG tiles for this test - a big thankyou to him , Vector Orbitex is busy working on Stage 2 tracks so the team is working hard all round on this port. The MD has no sprite / background GFX scaling hardware , however the VDPs Vertical scroll can be updated per scanline to help vertical scaling on backgrounds, but there is a cpu cost to manage all the interupts so thats not free either. With the Horizontal scaling there is no help at all , apart from a semi-friendly packed pixel format for the cpu to work with, its not quite chunky format but better than planar format still for scaling. So its falls back to the 68k CPU to do all of the horizontal expansion which is the largest cpu cost. Basically drawing strips of either 1x, 2x, 3x or 4x wide columns at speed. So we are one week into this Boss's routine and you can see from the below video the horizontal scaling is implented ( vertical will be in the next update ) . We are scaling from 1x to 4x in the video below in 74 steps for testing . The column distributions are always a bit painfull to do - thankfully they are all worked out now. This is the third scaler I have built and the goal was with this one to make it really flexible for use in other projects also, sometimes when you optimise something to the last degree all the flexibility gets taken out of it. Currenty scaling at 12-25 FPS update here, I had some rules against some optimisations which I would use and some I wouldn't , thankfully we are a bit ahead of the Arcades animation frame rate here still and I may yet find optimisations that fit within the scope. We have vertical scaling and sprite spikes to add yet so Im hoping i can find a few more optimisations to offset things when they are implemented also. In a scale frame update we are processing close to 42000 pixels in ram before using DMA to send to VRAM . Using a 41x16 (656 tile scale buffer) - single buffered for now due to its size in VRAM. So thats nearly 21k in tiles ! I had to re-organise ram a bit to support a buffer of that size for the stage. The scaling function is written in 68k assembly , with a little C code handling the Vertical interupt code ( so the game logic can actually run & DMA updates etc ) . The DMA routines are in assembly also and customised for large chunk size ( big blocks of tiles ) which suits the scaler. I had some race conditions to sort out where the cpu was faster than DMA (sending tiles from RAM to VRAM ) and in some cases where it wasn't so it had to be balanced. We may be able to add more detail into the top and bottom of the background yet but its low priority for now until all the other bits are in !! #SGDK #SegaMegadrive #Genesis #Parodius

Shannon Birt

25,545 Aufrufe • vor 6 Monaten

✨ I've been using #Unity3D for 12 years. ✨ I'm using Blender's GeoNodes for a procedural mesh that's realtime-animated with a custom shader in Unity. ---(reminiscing, reflection follows)-- At some point, you realize it's 'all' states, relationships, and data/information. What is, isn't, and how they relate, subject to laws, principles. 🌌 Define some latent space -> atomics, data -> simulation/form -> information. Like a grid-texture of pixels that are to mean something, represent something. And they are processed/simulated in some way by some measure. So that you get some transformed, meaningful result. What is possible, here? -- in that space. (by the parameters, and features *defined*). 🧊 Likewise, a 3D field-volume in which things exist, being and not being. It may sound mystical, but I mean it literally: the definition of what things are, and are not, and what that means as a relationship (to something[s]). Take, for example a sphere, or box collider primitive. 🪩 Sphere's and circles are the most simple colliders, involving only a point (where they are) and radius (distance from that point, as a center) to define. 💥 The equations to calculate collisions against and between spheres is also relatively straightforward. Implementation of that is a part of building primitive relationships and definitions for simulations. 🎇 It follows, that for a particle system, the data structure of a single element/particle is (about) some point that simulates in some way. Boids and fluid sims have this in common. It seems this year (so far) has been ~about realizing that (with greater lucidity, at least), and learning it all relates to the nature of the universe. Involving simulations, and data flow-control... Ultimately, all these things are objective to us, in that we learned and were taught about how things work. And all the same, *I'm* still learning, too. 👀 #blender #b3d #geometrynodes #gamedev

Mirza Beig

102,829 Aufrufe • vor 8 Monaten

Dyson Sphere by 2040? > Paul Christiano gave a 15% probability a Dyson Sphere by 2040 on Dwarkesh Patel > So I invited Jason Wright , astronomer and astrophysicist at Penn State, a specialist on detecting alien technological signatures to figure out whether it would be possible Highlights: On The Physics of Dyson Spheres > On the Ultimate Limiter - Cooling: "The only thing you can do is put out radiators and let the heat radiate away... you don't have a river nearby, you can't do water cooling, you can't blow fans across it. There's no air." > On Building Them Hot, Not Cold: "I actually expect the Dyson spheres to be as hot as possible if they're maximizing computation... I think these things will be room temperature or warmer." On Building A Dyson Sphere > On Disassembling Jupiter: "You could disassemble Jupiter and build a Dyson sphere... He [Freeman Dyson] worked out the details like, it's totally possible to disassemble a planet." > On the Impossibility of a Quick Dyson Sphere: "It is literally impossible to build a Dyson sphere around the sun that quickly [in 50 years]... It's not that I'm not being imaginative. It's that there's not enough mass. The mass is in Jupiter." > On the Sheer Energy Required: "If you took all the energy the sun puts out for 50 years and with perfect efficiency used it to lift mass off of Jupiter, you would still not have enough time." > On the Key Technology Required: "I think you have to invoke exponential growth. You need some way to have a runaway exponential that mines so much material, builds so many things... I think it's self-replicating machines, Von Neumann machines." On Detecting Alien Civilizations > On the Impossibility of Hiding: "It's very hard to hide the fact that you're using energy... you can't keep it, you'll melt everything. And when you get rid of it, it'll be obvious." > On How Easy They Are to Find: "Such a thing would be extremely detectable... Even if it only captured 1 or 2% of a star's light altogether, that would still be quite obvious. It would look quite anomalous." > On Finding a Hidden Civilization: "You can put on infrared goggles and you'll see who's got the heat on. Like the houses that that are warm on the inside... you can see the heat coming off of those houses." > On Ruling Out Super-Civilizations: "We were able to show that out of the 100,000 closest galaxies to the Milky Way, there aren't any of those [Type III civilizations]." On The Space Industry Wrecking Science > On the Perfect Spot for Alien Hunting: "Putting a radio telescope on the far side of the moon would be amazing... the moon acts as a shield and there's no radio frequency interference." > On the Threat to the Lunar Far Side: "As soon as you say, 'Alright, we want to build something on the far side of the moon,' everyone's like, 'Great, let's build the infrastructure'... and they set up all this wireless communication across the moon. And you're like, 'That defeats the entire purpose.'" > On the Impact of Starlink on Science: "Starlink went up and just completely wrecked all of our plans for astronomy... And now every time it takes a picture, it gets 'Starlinked.' That's what we call it. Big old streaks through every image." > On the Race to Study Mars: "We kind of got to hurry up and do all of our life detection experiments before boots hit the ground there... As soon as people go to Mars, we will contaminate it." This was by far the best pod I've done so far. Links below:

Prakash

43,295 Aufrufe • vor 9 Monaten

*** SOTA RETROCON S.O.T.A UPDATE *** Whilst the Versao LTDA team is busy at Retrocon showing off our latest Sega Genesis SOTA update, here is a small snippet of how the game is progressing. This video has 3 parts, our menu screen, rain - wind sub section of level 1, then the boss. Everything is still wip including my gameplay skill lol ( and i thought the controller would help .. ) Some challenges overcome : The Menu screen uses shadow and highlight transparency modes in two ways, the background mode for the light rays and then the sprite mode for the mist - it has a nice overlapping effect too, due to using the forground plane for the light rays (s & h background mode) the entire forground is made up of sprites - all the words are sprites . SaviorMarks sent me a screenshot of an issue with boss leftover Mist sprites affecting the menu screen and I thought that looks really cool - lets do that haha . Sometimes bugs are keepers !! The rain section uses more than 80 sprites, a sprite multiplexor handles the rain whilst normal non plexed sprites make up the moon / clouds in the far background , the lamp posts and lamp light in the mid forground and Fences in the front forground . Without the multiplexor there was too much drop out on the rain at times. The rain is still blinked in alternating X positions due to the pixels per line limit , but it gives a great result still. The lamp lights use Shaded Active Dither as S&H here would not overlap the enemies / player . The Boss was a challenge with its size and full frame updates, up to 650 tiles are changed per animation frame into vram. Custom Dual priority DMA routines and extended DMA timings are used (still NTSC 224 pixels tall screen size but most of the vblank was used for updating tiles ) . These methods were used to update the bosses dual display buffers. I needed to have dual priority DMA buffers as the player / waterfall etc had to update their frames whilst the boss is constantly streaming tiles. There are also S&H transparent Mist sprites used for the boss sequence. It seems if you want everything to break at once target a demo for a retrocon event haha, we had lots of issues mainly with vram getting stomped and as all animating sprites need to be DMA streamed to fit into VRAM as the forgrounds and backgrounds take up a lot of tiles. Some new tools which show the VRAM allocation for the sprite engine on a frame by frame basis helped and a self defragging VRAM system helped quite a bit also. Thankfully things are in a good state now apart from a couple of small bugs that persist. Thanks to SaviorMarks and @MichelinFabio for putting up with and testing all the bugged updates haha !! #SegaGenesis #SGDK @MichelinFabio SaviorMarks #VersaoLTDA

Shannon Birt

10,319 Aufrufe • vor 1 Jahr

Got something totally different, but exceptionally badass today to share! Here is a bunch of direct hardware captures of the (F)ixed (F)unction and (F)ast (F)ourier (T)ransform (T)esting audio visualization demos, running on my Sega Dreamcast! This incredible piece of science, engineering, art, and music started off as a crazy idea to port a bunch of GPU-based, Shadertoy audiovisual demos to the Sega Dreamcast, to play with combined digital signal processing and rendering on legacy fixed-function hardware. As you can see from the video, the FFFFTT repo includes a wide array of different demos, each providing different kinds of visualizations, each featuring different types of signal transformations and analyses, with many of them also being interactive, all done in real-time! Not only that, but you ALSO can freaking pause the playback and analyze the signals in real-time... crazy! The final resulting FFFFTT demos are an epic full-stack conglomeration of Ray's raylib, providing the backing infrastructure and graphics framework, which sits atop our GLdc driver for rendering, using David Reid's miniaudio library for sound playback, with its FFT and vector algebra accelerated for the SH4 CPU using my SH4ZAM math library... all ontop of KallistiOS, running on the Sega Dreamcast! Congratulations to meisei4 for the fantastic accomplishments, and a heart-felt thanks from me for bringing everything together to make this happen! You just laid the framework for some epic audio-based gameplay mechanics and other crazy science experiments in the future for whole community!

Falco Girgis

13,167 Aufrufe • vor 1 Monat

It has been about 45 days since I was laid off at my 6 figure gamedev/engineering job. Here's what I've accomplished since going full time indie gamedev. - Happiness is at all time highs.. The creative excitement I've felt everyday has been amazing! For about 15 days I kind of dabbled around different areas to figure out what I wanted to work on and sink myself into. - I dabbled with VFX authoring in Three.js - I built the basis of an MMO engine in Rust Language and rendered it in Three.js I then decided I wanted to focus on something realistic and get a game out the door that could turn me from wanting to be a full time indie gamedev, to actually doing it, because realistically none of those projects are going to make me a living. I settled on building a Roblox game because I felt I like I could make something pretty unique and cool with a built in userbase. I chose roblox because it has a good platform of discovery for new games, which I think is pretty crucial for indie devs. - I then ported Plume my threejs library for Niagra like VFX to Roblox. - completed the full gameloop for my roblox game. What's featured in the video - Several menu types for kind of figuring out the direction and some placeholder menus - Cross server guilds/parties/queing - Itemization - Loot Tables - Inventory - Character Equipment - Item Upgrading/Leveling - Some interaction polishing - 1 Completed class with actions, unique boss drops, vfx/sfx - Boss State Machines / Encounter Systems - 1 Boss encounter - Everything is server authorative to prevent cheating. - Sound system Over the next 45 days my focus is on finish the last of the systems that will make up the game(solo quest/mission(story) content, monster codex, move raid board/social from the isolated menu you see in the video to the newer full screen menus, leaderboards. Once those systems are complete it will be time to then focus on just creating content so hopefully a few of you out there will come join and play! If any of this looks interesting or you want to follow the journey of trying to make it as a solo indie developer, follow along! #gamedev #indiedev #robloxdev

Forge

20,146 Aufrufe • vor 2 Monaten

It's finally time for the massive update I know EVERYONE has been eagerly waiting for... Presenting to you over 6 straight minutes of spliced footage directly captured from my actual physical Sega Dreamcast... RUNNING THE LATEST BUILD OF OUR SONIC MANIA PORT!!! I can't even begin to describe to you how polished and fantastic it's starting to feel... as though it belonged on the Dreamcast all-along... Thanks to the hard work of jnmartin, sonicfreak94, and a few others, not only is the Dreamcast port nearing completion, but... wait for it... THE 3D STAGES THAT STRUGGLED ON EVERY UNOFFICIAL PORT ARE NOW ALL RUNNING FULLSPEED!!!! Trust me when I say that this took an absolutely ENORMOUS amount of effort from jnmartin and the crew to pull off, considering the low-end for this game was the original Nintendo Switch, and ports running on consoles with twice our processing power struggled to run these levels fullspeed. The first and most obvious thing is that the 3D software renderer was ditched and all rendering was done natively with our PowerVR GPU... which actually wasn't as simple as it sounds. The tilemaps for these levels have had to be tessellated into a bajillion PVR quads and transformed and rendered as individual polygons to look correct and run faster than a slideshow. Mr anonymous Ocarina of Time chad developer came up with a pretty slick LoD scheme for drawing tiles closest to the player at 1x1 pixel sizes with sizes increasing with distance up to 2x2 and 4x4 pixels, allowing them to reduce the overall number of tile vertices that have to be transformed by the SH4 CPU and submitted to the PVR GPU, by strategically keeping the majority of the polygon detail closest to the camera, with detail decreasing as the tiles get further away. Next, the 3D geometry was preprocessed and converted from being triangle-based to being triangle-strip based, drastically reducing the number of vertices per model that our 200Mhz SH4 CPU had to transform (with plain integer arithmetic and no FPU vectorization, since this is all slow-ass fixed-point integer math)! Finally, it was discovered that the lighting was a disproportionately significant contributor to the TnL load on the SH4 for processing vertices. Jnmartin came to the realization that 99% of the time only the Y axis direction is considered for lighting equation intensity with just a white color. So this simplified lighting model got baked into the renderer, which gave another round of gainz. So in the end, after all of this work came together, a draw distance of 75% the distance of the retail Sonic Mania versions was achieved for the decorations, plus the character models have their full geometry count and have not been simplified on a freaking Sega Dreamcast with a 200Mhz SH4 CPU and only 16MB of RAM! 🔥

Falco Girgis

88,417 Aufrufe • vor 5 Monaten