Dobre známy americký gigant Texas Instruments /TI/ v roku 1987 neúspešne oslovil Nintendo a Sega, aby ich presvedčil, že nastal čas v hrách skočiť aj do 3D priestoru už v generácii konzol Super Nintendo a Sega Megadrive. Určite vás napadne z akého modrého neba ten návrh vlastne spadol. Nuž TI sa na vianoce roku 1985 podarilo dokončiť prototyp pravdepodobne svetovo prvého, jednočipového 32 bitového grafického procesora - TMS34010 s možnosťou programovateľného mikrokódu. Išlo naozaj o proto-formu toho čo dnes poznáme ako GPU. Predviedli to vtedy v demonštračnej podobe PC grafickej karty "The Flippy". Zvládlo to 2D /aj 16 bitová paleta/, 3D grafiku, fyziku, DSP funkcie aj generovanie stereo zvuku. Ďalší krok - smer konzolácky gamebiz, avšak dvojka Nintendo a Sega povedala nie. Škoda Wolfenstein/DOOM/GTA revolúcia mohla prísť práve z konzol.
TI teda odpochodovalo za inou americkou firmou Atari a do ich arkade kabinetov napchali mobo s trojicou TMS340xx až na 50MHz /ako rasterizér alebo geometrický či fyzikálny procák/ a vznikla kolosálna 3D hra Hard Drivin /1988/ s DLC aj technicky v "GTA" sandboxe. A keďže treba zamachrovať aj pri 2D gamesách, tak navštívili Midway a v ich arcade herniach sa zjavili hry ako je opäť veľmi slávny Mortal Kombat /1992/. A ako ste si správne domysleli - MK beží tiež na HW platforme čipu TMS34010 ! Takto jednoducho sme dokázali, že bolo možné dostať 3D hry na svetlo božie skôr ako bláznivé Nintendo s N64 v 1996, alebo chaotické pokusy v 1994 s SEGA 32x. Ako vizionárska sa teda javí skôr snaha Atari Jaguar a Panasonic 3DO na konci 1993, ktoré to jasne videli aj v 3D a obe veľmi slušne vedeli rozbehať aj DOOM 1. Čo bol budíček do nových časov.
TI po TMS34010 vypustilo v 1988 aj značne vylepšenú TMS34020, ktorú bolo možné spárovať s FPU koprocesorom TMS34082 /1989/. Celá táto kombinácia vedela generovať 60 mega vertexov /nemýliť si s polygónami/ za sekundu. Iba na okraj spomeniem, že TI sa snažilo presadiť aj svoj vlastný profi grafický štandard TIGA /Texas Instruments Graphics Architecture/ a vyrobilo aj výkonné PC grafické karty cez fy Number Nine a Hercules. Presadila sa však VESA, SVGA konkurencia. Iné premenné, iný článok. TI aspoň presvedčilo Mircosoft, aby WinOS komunikovalo s externými grafickými kartami na otvorenom API. Do Win verzie 3.0 to MS kódoval "natvrdo" pre daný HW.
Skvělý článek, děkuji na něj. O TMS34010 jsem neměl ani potuchy a je to přesně to pravé co bych si býval představoval jakožto návrhář herního hardware v 80. letech. Takže přece jen se někdo pokusil! Mimochodem ten NBA Jam z roku 1993 mám v MAME emulátoru ve výběru dobrých her, a ten procesor je tam taktovaný na 50 MHz, což nevím jestli v 80. letech by bylo možné... Hra plynule skroluje (podlaha po řádcích - LINESCROLL (he he)!) a má masivní sprajty, takže je vidět že i pro 2D ten čip byl velmi použitelný. Škoda no.
ReplyDelete... 50mhz bola naozaj normalna rychlost toho procaku pri Hard drivin, ale na mobo bol parovany aj 68000kou na 8mhz.
ReplyDeleteNedávno jsem s někým řešil a hledal jestli PS1 měla sprity jako real sprity nebo to byly jen fake textury na 3D polygonech se zamčenou osou Z... no je to asi něco mezi. jestli to chapu správně v 2D modu udělá PS1 2 polygony přes celou obrazovku jako čtverec a pak se sprity vykreslují do toho polygonu jako textura a všechno jede softwarově. Což je prakticky chování dnešních shaderů.. ale ty informace se pořádně nedají najít a tohle někdo říkal v nějakým foru co jsem vygooglil, znělo to věrohodně.
ReplyDelete... heh .. jeden koder poedal, ze staci ps1 sprajty naklopit a hned dostanes znamy woble efekt chybajucej perspekt. korekcie, su to polys s texturou nie sprajty.
Delete... a zasmejem sa este lepsie .. ps1 jedna najcastejsie udava sprite perf na 4000 na frame, co je cirou nahodou to iste cislo ako poly perf v hrach.
... v clanku vsak pisem o 8000 sprajtoch na frame .. wtf .. heh pointa .. tie sprajty v tom dev deme su NEtexturovane a vtedy ich ps1 zmakne raz tolko .. vyuzivany to jav aj v hrach .. Crash, Spyro, Tobal, aj FF7.
Správná odpověď je tato:
Delete"They're called "sprite" commands because they work on rectangles, not triangles. You specify the upper left corner, and the width and height which can only be 8x8 or 16x16. Sprite commands are limited, but very fast - as fast as the fill rate allows.
If you want rotation and scaling, you have to use the 3D quads (the GPU splits them internally into triangles). Since it's 3D, you can do tilting, rotation, and scaling."
Chilly Willy, Sega-16 forums
PSX = blitting beast
... fillrate - polys - quads - sprites .. PS1 je 3D jadro aplikovane na 2D veci .. podobne ako amiga vyuzivala napr. blitter na fill plochy pre flat shaded polys, tak aj PS1 setri dychom a vyuziva 3D HW na 2D hry .. nie je to optimalne a je to o tom vela clankov /port SF2 na PS1 a stazuje sa aj Kirby pri NBA Jam porte/ ale staci to ..
DeleteNa druhou stranu "nablituješ" si kam chceš kolik chceš, pokud ti to fill rate a tvůj kód dovolí... Takže tě neomezuje nějaké předdrátované VDP že máš mít jen 2 pozadí atd. Když to zmákneš, uděláš si 5 pozadí!
Delete... ano .. HW a SW amiga sprajty to maju stejne .. a existuju dema pre Jaguara a 3DO ako blbnu s 2000 sprajtami na frame na 60 fps /jak budem na PC, tak ich tu dam/.. vsetky zmaknu skvele 2D veci.
DeleteTady tato hra má krásných nějakých 4-5 pozadí, particles, padající kmeny... všechno smooth nádhera... PSX is da beast.
Delete... sekundu som myslel, ze kliknem a uvidim - In the Hunt .. heh ..
Delete... Neo Geo - Blazing Star .. sleduj tu giganticku malovanu bitmapu co sa vzadu objavi.
... videa, 2000 sprajtov na 60 fps:
Delete3DO
jaguar
Delete... a este Dreamcast vsetko su to sprajty
4000 quadů = 2x triangle = 8000 poly. Co jsem četl bylo to, že ten velkej polygon je jako framebuffer a že se v SDK píše sprite a to se propisuje do toho framebufferu ale transformace to bude mít jako 3D objekty.. takže je otázka jestli pro vykreslení PS1 skutečně dělá polygony.. právě se mi zdá že se myslí že jo, ale že v tom přímo sprite modu ne že rovnou kopíruje ty texturový data na daný místo v paměti.. že poly použije až když chceš použít transformace/rotace/scale.
DeleteChilly Willy
Delete08-20-2012, 02:43 PM
Gotcha, two triangles per tile I imagine.
Not really - they're called "sprite" commands because they work on rectangles, not triangles. You specify the upper left corner, and the width and height which can only be 8x8 or 16x16. Sprite commands are limited, but very fast - as fast as the fill rate allows.
If you want rotation and scaling, you have to use the 3D quads (the GPU splits them internally into triangles). Since it's 3D, you can do tilting, rotation, and scaling.
The genesis/snes/pce/neogeo/x68000/nes/sms all draw their sprites in real time. The chip is drawing sprites as the beam races the television screen. If you have too many on a line the chip can't keep up and you get flickering.
The Amiga(1985!!!)/PSX/Saturn/N64/3DO/any other modern system don't race the beam. What they do instead is store a picture in memory, draw into that as fast as they can, and then have another chip just read that and send it to the screen. If for some reason they can't draw that picture in 1/60 of a second, then it might take 2/60, or 30fps. You lose framerate instead of getting flickering.
Sega-CD scaling games work kinda the same way. They're just using tiles on the genesis VDP as a giant image. Same for Super-FX chips on the SNES.
The Amiga had "true" sprites... they are loaded in the horizontal blank and displayed when the screen reaches the set point for the sprite. You could have eight 4-color sprites, or four 16-color sprites on a horizontal line without any tricks. That was big for 1984 when the hardware was designed. You could use the COPPER to reload the sprites on a line for more than 8/4 per line.
The Amiga also had the BLITTER, which would allow "unlimited" drawn sprites in the frame buffer. These were called "BOB"s - Blitter OBjects. The graphics library had built in support for animation using linked BOBs, so cell-sprite animation was very easy to do on the Amiga.
Very similarly, the Atari Jaguar also has "true" sprites and drawn sprites. The OP (Object Processor) could display regions at raster time that would be called sprites in any other system. It also had a BLITTER capable of unlimited drawn sprites.
Draw me a sprite
... PS1 ma proste v MEM obrazok ako texturky, prdne ju na 2 triangle ako na quad sprite a je to.
PS1 nerozlišuje texturu nebo sprite oboje jsou data v TIM formatu, ale zda se mi že to je rozšířenej omyl nebo nepřesnost.. protože když si čteš jak se to dělá, tak se vyloženě nakopíruje TIM data do screen bufferu na konkretní pozici, jako blit. Ja to pak zjistím od těch lidi z PSXDev.
Delete... v clanku za menom Chriss Kirby je odkaz ako mal sprite data pre panakov v syst. RAM, ihrisko v VRAM a ako blittuje panakov cez speci scratch pad RAM, nieco ako malicka keska a ked si pmatam mala ju aj PS2.
Delete... hej, 16 kilo na PS2, extremne rychla, pri PS1 doslova ako L1 keska, CPU temp stack working space ovEla rychlejsi ako syst. RAM.
DeleteTen Dreamcast engine vypadá slibně...!
ReplyDelete... v 1993, sega arcade, F1 Super lap .. vsetko sprajty, ked najdes video dobrej trate, tak uvidis pekne sprajtozne 3D kopce.
DeletePS1·Sprite
ReplyDeleteA sprite is a textured rectangle, defined as a rectangle with coordinates on a texture page. Like the rectangle is drawn much faster than the polygon equivalent. No gourad shading possible. Even though the primitive is called a sprite, it has nothing in common with the traditional sprite, other than that it's a rectangular piece of graphics. Unlike the PSX sprite, the traditional sprite is NOT drawn to the bitmap, but gets sent to the screen instead of the actual graphics data at that location at display time.
http://www.raphnet.net/electronique/psx_adaptor/Playstation.txt
... proste direkt data blittom na frame.
Yep, as I said, a blitting beast. No need to post a hundred comments about it... Ale zdá se mi že Deloix si tu hraje na jediného vševěda a ignoruje cokoliv sem někdo jiný na téma Playstation dá a furt si jede to svoje...
Delete