tailieunhanh - 3D Graphics with OpenGL ES and M3G- P8

3D Graphics with OpenGL ES and M3G- P8:Mobile phones are the new vehicle for bringing interactive graphics technologies to consumers. Graphics that in the 1980s was only seen in industrial flight simulators and at the turn of the millennium in desktop PCs and game consoles is now in the hands of billions of people. This book is about the technology underpinnings of mobile threedimensional graphics, the newest and most rapidly advancing area of computer graphics. | This page intentionally left blank 3 cc LU I o LOW-LEVEL RENDERING This chapter describes the traditional low-level 3D pipeline as it has been defined in OpenGL. A diagram of the OpenGL ES pipeline in Figure shows how various pipeline components relate to each other and how the data flows from an application to the frame buffer. Figure visualizes some of the processing in these various pipeline stages. Note that the diagram and the whole pipeline specification is only conceptual implementations may vary the processing order but they must produce the same result as the conceptual specification. We start by describing the primitives that define the shapes and patterns that are displayed including both the 3D geometric primitives such as points lines and triangles as well as the 2D image primitives. The geometric primitives can have materials that interact with light and they can be affected by fog. The primitives are projected into a coordinate system that allows simple determination of what is visible a primitive is visible if it is not occluded by other primitives and it lies in the viewing frustum of the camera. Continuous 3D shapes are then rasterized into discrete fragments and the fragment colors can be modulated by one or more texture maps. The fragments can still be rejected by various tests and their colors can be blended with the pixels that already exist in the frame buffer. 55 56 LOW-LEVEL RENDERING CHAPTER 3 V E R T I C E S P R I M I T I V E S F R A G M E N T S Figure A simplified view of the OpenGL ES pipeline. Shapes with dashed outlines indicate features that are new or significantly expanded in version . Dark gray and light gray shapes indicate features that are not included in M3G or are included in simplified form respectively. M is the modelview matrix the T are texture matrices and P is the projection .