In nieuwe lijn nVidia videochips die onder andere bestaat uit NV20, NV20A en NV25 zal nVidia de mogelijkheden van T&L flink uitbreiden. De huidige T&L methode is namelijk verre van ideaal, hij is inflexibel en heeft te weinig functies. Een van de dingen die daar verandering in moet brengen zijn de OpenGL extensies van NV_VERTEX_PROGRAM. Aangezien DirectX 8 en de laatste beta Detonator drivers al ondersteuning hebben voor deze features kon Reactor Critical er een interessant artikel over schrijven:
NVidia's watchword is "trimming down the extra levels of abstraction". What does the corporation have to offer to deliver on its promise? They have a solution: discarding the standard pipeline altogether and taking it into one's own hands to program the geometry processors. As a result, software engineers are required to master a specific RISC-oriented NV_VERTEX_PROGRAM assembly language. Be advised, however, that you need not rush to your computer to view the venerable company's Web site in your quest for a compiler for that language. NVidia would have had hell to pay to achieve compatibility with the major and popular development environments and existing 3D graphics APIs if it had followed that course. The compiler is going to be built right into future OpenGL drivers.[break]Met andere woorden: de programmeur kan volledige controle over de T&L van de videochip krijgen als hij bereid is de assembleertaal van de GPU te leren, die gelukkig maar uit 17 verschillende instructies bestaat. Een programma kan uit maximaal 128 instructies bestaan en dat is voldoende voor bijvoorbeeld een interpolatie van 16 matrices. Deze vertex programs (of vertex shaders, zoals ze ook wel genoemd worden) zijn ideaal voor programmeurs en driverschrijvers om extra features aan de kaart toe te voegen, zoals mist en high order surfaces:[/break] The idea behind the spline surface method is that a model without complex geometric details can be approximated through a set of flats. Figure 1 shows a wire model of a deformed torus; the same torus is in Figure 2, but it is covered by spline surfaces. One spline section remains unfilled. This section corresponds to the face colored in blue in the original model. Sixteen control points (also highlighted) are applied in forming the spline patch. The patches are constructed with the help of Bezier bicubic polynomials. If the values were calculated directly, an interpolation of the coordinates and the generation of the normals would require far too much even for an implementation using vertex programs. It is possible to reduce the number of calculations dramatically (down to about 5-6 machine instructions per vertex) by performing certain pre-processing. It is probable, though, that the new generation GPUs will be able to conduct a hardware rendering of curved surfaces (such as NURBS). Then it will be possible to deal with spline surfaces more efficiently.
![]() ![]() |