Three hundred thousand triangles pose a problem because it creates alot of work for the CPU and the graphics card. To tackle this problem programmers created culling, a process in which the engine removes all invisible and non-essential polygons.
The difference between marketing and real world polygon rates is that the marketing polygon rate is the rate that the card can theoretically reach and the real world rate is what the card can actually achieve.
The lowest rendering unit that can be achieved is a primitive, which for most hardware is a three-point polygon (triangle).
The advantages of using a higher-order surface like patches is that it can create a higher polygon rate and has been the basis of new and experimental technologies. The disadvantages of using it are that it is not standard over all graphics cards and that it is somewhat of an expensive to buy a card that does support higher-order surfaces like patches.
There are two main types of occlusion culling. The first type is called PVS (Potentially Visible Sets), this method divides the scene into regions and pre-computes the visibility of them. These visibility sets are then indexed at run-time to obtain high quality visuals sets quickly. The second type is called portal rendering. This method entails dividing the scene into cells/sectors (rooms) and portals (doors), and computes which sectors are visible by clipping them against portals.
These are the five stages of the Basic Graphic Pipeline.
Stage 1: The Game determines what objects, models, textures and animations that will be in the game world. It also determines the positioning of the camera.
Stage 2: The game passes this information to the renderer. In the case of the models, the renderer will look at the size of the model and where the camera is located, and then it will determine if it is onscreen or off.
Stage 3: Then the world visualization system determines where in the world the camera is located, and what sections polygons are visible from the camera viewpoint. This can be done in numerous ways, from a brute force method of splitting the world up into sections, to the more elegant BSP (Binary Space Partitioned) worlds.
Stage 4: Then the renderer transforms all the polygons that pass through according to their world mathematics and it’s local mathematics, it then examines the polygone to determines if it is back-faced or not. Those that are back-faced are thrown away. Those that are not back-faced are lit.
Stage 5: The renderer then looks at what textures the polygon uses and it ensures that the graphics card/API is using that texture at it’s rendering base. At this point polygons are fed off to the rendering API and then onto the card.
Z buffering makes the rendering of textures less important but it does not make polygons that have transparency in them less important. They have to be rendered after all the non translucent polygons are done, so what’s behind them can be shown correctly in the scene.
Here are two examples of API’s. The first is DirectX for Microsoft Windows and the second is OpenGL which is a cross platform graphics API.
Hardware-accelerated transform & lighting is a program that is used to render polygons and what ever you are trying to drawat the correct angle and position in the world relative to where the camera is positioned.
The benefit of patches are that instead of listing masses of polygon positions in the gaming world, it uses a mathematical expression instead. This makes it alot easier to build and deform a mesh of polygons by changing the equation.
Retesselation is when a low polygon mesh is converted to make a higher polygon mesh. This makes the mesh alot smoother and better looking.
