ještě k tomu renderování pomocí TBR:
http://www.beyond3d.com/content/articles/38/1
http://www.imgtec.com/factsheets/SDK/Po ... ternal.pdf
The problem with this deferred rendering approach is the fact that the entire scene must be cached before rendering. This "scene buffer" effectively takes the place of the z-buffer. The objection I have to this approach is that the size of the scene buffer is unknown before rendering, and so there are always going to be possible buffer overflow issues which could drastically impact performance. By contrast, the z-buffer's size is well-known prior to rendering. Immediate-mode renderers (pretty much any GPU available today) also have a number of techniques that improve efficiency, so I don't see a reason to go "all the way" to deferred rendering to solve problems that, in my mind, don't really need solving given today's rendering performance.
TBDR method of rendering polygons today is useful/efficient for small-scale implementations where power and memory bandwidth factors are a major concern, related to the target performance. All modern immediate rasterizer architectures from ATi, NV and the few others, are already using advanced methods of hierarchical representations of the depth information, fast caching and real-time compression of the data. And with the advent of APIs like OpenCL and DirectCompute, the monstrous ALU power of the GPUs can be harnessed to perform advanced GFX tasks like SSAO and OIT much more efficient, bypassing the traditional graphics pipeline methods, treating the GPU as a pure massive parallel compute device
No-X:PowerVR nemělo s implementací TnL problém, ale usoudilo, že čipy výkonností úrovně ho nepotřebujou. A skutečně nepotřebovaly. TnL byl marketing nVidie, žádný jiný výrobce do toho tehdy nešel, protože to považoval za zbytečnost a skutečně to zbytečnost byla
To že bylo Nvida T&L v době svého uvedení spíše jakýmsi "hype" to všichni víme, ale snadná ta implementace T&L do této architektury nebyla....Dnes už se těžko dohledávají ty články o tomto tématu, některé z těch stránek už neexistují, ale x-3dfx fóru se o tom hodně debatovalo.
Máš pravdu v tom, že v té době ji Kyro v podstatě nepotřebovalo a PowerVR ji tam dala spíše jaksi z "nutnosti", ale tímto směrem se vývoj grafik ubíral a bylo potřeba na to reagovat. 3dfx se to taky vymstilo.Nejdříve tvrdili jak je "nepotřebná" 32bitová barevná hloubka a pak jak "zbytečné" je T&L a kde je jim konec ??? (a to říkám jako jejich bývalý největší fanda)
PowerVR se používalo v herních automatech spolu s dedikovanou separátní T&L jednotkou, což by prodražilo výrobu karet Kyro II s T&L, proto muselo PowerVR předělat celý návrh čipu, pokud chtělo mít "all in one" chip s hardwarovým T&L.
Kyro II graphics card worked great and was a lot faster then the other graphics cards based on brute force in the pre T&L era.
After T&L was becoming more prevalent, the PowerVR became to expensive when compared because it needed a seperate DSP without redesigning the powervr principle
Interview with Imagination Technologies
http://ixbtlabs.com/articles/interviewimaginationtech/
A další upřesnění je že, já netvrdím že PowerVR nemá DX9/10 hardware, jen říkám že v době plánovaného uvedení architektury pro Kyro III (series 4) to byl stále jen DX7 čip s emulovanými efekty DX8 (nic víc nic míň)
Možná jsem to jen špatně vyjádřil, ale do DX9.0 nebylo možné odděleně pracovat s pixel/vertex shadery, které byly předtím fixně svázané ve specifikacích DX8. Tam nemělo PowerVR možnost jak s TBR a programovatlenými shadery spolupracovat.
Edit předchozí příspěvek: měl jsem tam chybu, nepřesnosti opraveny
Moc se už PowerVR nezajímám, protože tyto karty de-facto vymizely z hráčského trhu a jak je to s jejich hardwarovou implementací DX10 doopravdy to nevím, protože tak hluboko do té architektury nevidím a neznám její přesné podrobnosti. Možná že nakonec PowerVR tu architekturu překopala mnohem víc než jsem se původně domníval, nicméně pravdou je stejně to že se mnohem více zaměřují na Open GL (OpenGL ES 1.1/2.0, OpenVG 1.1, OpenGL 2.0/3.0) Nicméně zajímavé na tom je to, že ve veškerých oficiálních prezentacích výhod PowerVR architektury jsou prezentovány výhradně benchmarky na bázi Open GL.
Series 5 (čili potencionální Kyro IV) využívá Universal Scalable Shader Engine (USSE) v každé pipeline, což je škálovatelný multithreaded GPU engine schopný zpracovávat jak grafické, tak i jiné matematicky náročné úlohy. Lze jej programovat GLSL jazykem, který je součástí OpenGL ES 2.0 specifikace, případně paralelním jazykem postaveným na C použitým v OpenCL.
Ať už je to s podporou DX 9/10 a podporou programovatelných unifikovaných shaderů jakkoliv, tato architektura má zřejmě svoje slabiny a úskalí, protože jinak by se jí dávno chopil nějaký velký výrobce (včetně Nvidie , která vlastní patenty Gigapixelu) a začal prodávat/navrhovat grafické karty na tomto principu
Ke Xenosu:
NO-X:Jinak ATi Xenos v Xboxu 360 používá v podstatě tile-based rendering, jen s tím rozdílem, že používá 1-2 tiles na celou obrazovku - v podstatě něco jako macro-tiles, nebo spíš mega-tiles
tím ale ztrácí výhoda TBR smysl, protože její síla spočívá v rozdělení scény na malé části , tiles.
O Xenosu je velice výživný článek tady na
http://www.beyond3d.com/content/articles/4/5
As with ATI's current desktop parts, Xenos features a Hierarchical Z buffer. Hierarchical Z buffers contain "coarser" Z information than the full resolution Z buffer - usually Hierarchical Z buffers are tiled down versions of the full resolution Z buffers and the highest Z value of that tile is stored for that group of pixels. In Xenos's case the Hierarchical Z Buffer stores down to 16 sample groups, which equates to 2x2 pixel groupings with 4x FSAA enabled. Once a triangle is setup, its pixel coverage areas can be compared against the Hierarchical Z buffer and if all of their Z values are greater than the value on the tile then they can all be rejected before any work is carried out, however if some are lower then they will be compared against the full resolution Z buffer. Because the Hierarchical Z Buffer exists on chip the checking operation is very fast and can also reject numerous pixel groups in a single cycle. Xenos can discard up to 64 pixels per clock cycle based on hierarchical z. As the Hierarchical Z buffer is populated on the Z only pass it will have the final Z values for its tile coverage when the full pass is done. This will result in more efficient use of the Hierarchical Z buffer in comparison to normal (PC) graphics processors on software that doesn't have an early Z only rendering pass built within the engine.
Xenos čip používá tilling jen při použití FSAA na HDTV protože eDram 10MB(integrovaná pamět) je pro použití FSAA jako backbuffer nedostatečná. Zřejmě tedy nejde o TBR rendering jako takový, ale tento algoritmus je využit jen při připojení X-boxu k HDTV nebo jinému zobrazovacímu zařízení s vysokým rozlišením výhradně ve spojení s FSAA. Při běžném rozlišení nebo vyšším , ale bez FSAA je použit klasický rendering ve spojení s Hierarchical Z buffers.Viz obrázek:
With the eDRAM being the primary rendering target for Xenos there looks to be a potential issue with rendering FSAA at High Definition TV (HDTV) resolutions: space. With only 10MB of rendering space available, the resolutions and FSAA depths that can be natively supported by the eDRAM could be limited
proto Xenos dělí scénu na menší části, aby se vešly do eDram jako back bufferu pro FSAA.
At the moment XBOX 360 is supporting 720p (progressive scan) and 1080i (interlaced) resolutions - 720p equates to 1280x720 pixels and 1080i equates to 1920x1080 pixels, however interlacing means that only the odd horizontal lines are refreshed on one cycle and the even lives on the next, which means that the frame buffer is only ever needing to handle 1920x540 pixels per refresh.
Here are the frame-buffer sizes for these HDTV resolutions and 640x480 with a colour depth of 32-bit (which will cover both the standard integer 32-bit format and the FP10) and a 32-bit Z/stencil buffer. Naturally, the sizes will increase if a higher Z-Buffer depth or a higher bit colour depth is used:
As we can see, with these bit depths, all the resolutions will fit into the 10MB of eDRAM without FSAA and at 640x480 a 4x FSAA depth will stay within the eDRAM memory size, with these colour and Z depths. However, at HDTV resolutions nothing can fit into the 10MB of eDRAM with any mode FSAA enabled. Xenos was specifically designed to perform very well in these cases by dividing the screen into multiple portions that fit within the eDRAM render buffer space. This is similar to prior tile-based renderers, but with a much larger base tile and with additional functionality to optimize the tiling approach
ATI have been quoted as suggesting that 720p resolutions with 4x FSAA, which would require three tiles, has about 95% of the performance of 2x FSAA.
Taking the previous sampling requirements, the memory quantities required resolved to the following number of tiles being required:
Render to texture operations that have space requirements beyond 10MB can also operate in the tiled mode, however given that Xenos is going into a closed box environment its likely that developers of the system will consider what best fits the design of the console when they are developing their titles.