HighTech And Vertex Juggling  NVIDIA's New GeForce3 GPU

Page 1:Introduction

Page 2:The General Features Of GeForce3

Page 3:GeForce3's New Vertex Shader  A Poor Name For A Great Set Of Features

Page 4:What Is A Vertex?

Page 5:Lighting

Page 6:Vertex Shader Details

Page 7:Programming The Vertex Shader

Page 8:Programming The Vertex Shader, Continued

Page 9:Programming The Vertex Shader, Continued

Page 10:Procedural Deformation

Page 11:Setup For Dot Product Bump Mapping (Per Pixel Bump Mapping)

Page 12:Reflection And Refraction

Page 13:More Effects

Page 14:The Programmable Pixel Shader Of GeForce3

Page 15:What Happens In The 3DPipeline Before The Pixel Shader? Continued

Page 16:The Basics Of GeForce3's Pixel Shader

Page 17:2 Textures Per Clock Cycle, But 4 Textures Per Pass?

Page 18:Pixel Shader Programming, Continued

Page 19:Advances And Advantages Of The Pixel Shader

Page 20:Shadow Mapping

Page 21:Isotropic BRDF Based Lighting

Page 22:Blinn Bump Mapping = True Reflective Bump Mapping

Page 23:AntiAliasing  Removing The 'Jaggies'

Page 24:Quincunx ! Samples

Page 25:Higher Order Surfaces

Page 26:Higher Order Surfaces, Continued

Page 27:Higher Order Surface
What Is A Vertex?
The next stage in the 3Dpipeline is the transformation. I have explained it in previous articles, which is why I will keep this a bit short. A frame of a 3Dscene, as displayed on your monitor, consists of several different objects in certain places that are lit by one or several different kind of light sources, seen from a certain viewpoint. I guess this explanation is as basic, but also as complete as it gets. Every object, may it be a player, a wall, the floor or whatnot is made of a certain number of triangles.
'Vertices' (sing. 'Vertex') are the corners of those triangles that each 3Dobject is made of. In fact, the vertices are the very 'virtual matter' that makes a 3Dobject. As the game engine transfers the object of a scene to the graphics processor, it actually sends over all the vertices of this object. Each vertex carries a lot of information. First of all there are the 3dimensional coordinates x, y, z and w (weight). Then there is the color, often specified in form of a diffuse as well as a specular color. This color data is coded in the common 'RGBA' format, for 'red, blue, green and alpha'. The vertex also needs to carry its normal, the vector that points orthogonal off its surface. Then there are the texture coordinates s, t, r and q, which represent the texture and its position for the vertex. A vertex can of course have several texture coordinates in case that more than one texture is supposed to be applied to it. Additionally there might be fog as well as point size information and even more. You can see that a vertex, the smallest unit in a 3Dscene, is carrying a huge amount of descriptions.
Transform
You saw the example of the kettle above. It was supposed to represent the definition of a 3Dobject as it is sent to the transform engine, using the 'general' or 'basic' 3Dcoordinates supplied by the game (model space/world space). Now you can imagine that from your view port (the screen), you might see the kettle from a different angle, a different direction or in a different location (view space). Thus the coordinates of the vertices need to be altered, with the result that each triangle that makes up the kettle might have to be rotated, enlarged/reduced or shifted up, down, left or right. This is what transforming does. It changes the coordinates of the vertices that make up a 3Dobject as supplied by the 3Dgame to the coordinates that accord to your point of view.
 Introduction
 The General Features Of GeForce3
 GeForce3's New Vertex Shader  A Poor Name For A Great Set Of Features
 What Is A Vertex?
 Lighting
 Vertex Shader Details
 Programming The Vertex Shader
 Programming The Vertex Shader, Continued
 Programming The Vertex Shader, Continued
 Procedural Deformation
 Setup For Dot Product Bump Mapping (Per Pixel Bump Mapping)
 Reflection And Refraction
 More Effects
 The Programmable Pixel Shader Of GeForce3
 What Happens In The 3DPipeline Before The Pixel Shader? Continued
 The Basics Of GeForce3's Pixel Shader
 2 Textures Per Clock Cycle, But 4 Textures Per Pass?
 Pixel Shader Programming, Continued
 Advances And Advantages Of The Pixel Shader
 Shadow Mapping
 Isotropic BRDF Based Lighting
 Blinn Bump Mapping = True Reflective Bump Mapping
 AntiAliasing  Removing The 'Jaggies'
 Quincunx ! Samples
 Higher Order Surfaces
 Higher Order Surfaces, Continued
 Higher Order Surface