3 ms·
Nvidia weren't chasing Sega. The NV1 was really just an evolution of Sun's GX graphics card, which did quad-based accelerated 3D in 1989 (though no texture mapp
by phire 2y ago
Nvidia weren't chasing Sega. The NV1 was really just an evolution of Sun's GX graphics card, which did quad-based accelerated 3D in 1989 (though no texture mapping, GX was limited to flat-shaded quads, or emulating gouraud shading with tessellation)
Quads vs Triangles was kind of an open question as of 1993, when work on the NV1 started. Triangles are simpler, but Quads allow for a neat trick where you can do forwards texture mapping and get a much better approximation of perspective correct texturing, than you can with triangles.
Nvidia went all in on this approach. Not only did they support 4 control point quads, but the NV1 can render 9 control point quadratic patches. These quadratic patches not only provide a really good approximation of a perspective correct textured quad, but can represent textured curved surfaces in 3d space.
Quad-based approximations are much cheaper to implement in hardware than proper perspective correct texturing, which requires an expensive division operation per pixel. And the forwards texturing approach additional benefits with optimal memory access patterns for textures. The approach seems like a win in this era of limited hardware.
The problem is that forwards texture mapping sucks for 3D artists. Artists are fine with quads, they still use them today, but forwards texture mapping is very inflexible. Inverse texture mapping (UV coords) allows you to simply drape a texture across a model with UV coordinates. Forwards texture mapping requires careful planning to get good results, you essentially need to draw the texture first and build your model out of textured quads. Many Sega Saturn games rely on automated conversion from inverse textured models.
By 1996, you could just add a divider to your hardware and get proper perspective corrected inverse texturing, and there was no reason to do proper quad support, just split them into two triangles.