TY - BOOK AU - Boreskov,Alexey TI - Computer graphics : from pixels to programmable graphics hardware SN - 9781439867303 (hardback : acidfree paper) U1 - 006.6 PY - 2014/// CY - Boca Raton PB - CRC Press KW - Computer graphics KW - Mathematics KW - COMPUTERS / Computer Graphics KW - COMPUTERS / Programming / Games N1 - Includes bibliographical references and index; Introduction: Basic concepts 1.1 Coordinate spaces, transformations . 1.2 Graphics pipeline 1.3 Working with the windowing system 1.4 Colors: Color models . . . . 1.5 Raster algorithms 1.6 Hidden surface removal . . 1.7 Lighting models and shading Transforms in 2D 2.1 Vectors and matrices . . . . 2.2 Transforms in 2D 2.3 Basic linear transformations 2.3.1 Scale transformation 2.3.2 Reflect transformation 2.3.3 Rotate transformation 2.3.4 Shear transformation 2.3.5 Composite transformations . . 2.4 Homogeneous coordinates Geometric algorithms in 2D 3.1 Line from two points 3.2 Classification of a point relative to the line 3.3 Classification of a circle relative to the line 3.4 Classification of an Axis-Aligned Bounding Box (AABB) rel ative to the line 3.5 Computing the area of triangle and polygon 3.6 Intersection of two lines 3.7 Intersection of two line segments 3.8 Closest point on the line to the given point 3.9 Distance from point to line segment 3.10 Checking whether the given polygon is convex 3.11 Check whether the point lies inside the given polygon . . . 3.12 Clipping line segment to a convex polygon, Cyrus-Beck algo rithm 3.13 Clipping a polygon: Sutherland-Hodgman algorithm 3.14 Clipping a polygon to a convex polygon 3.15 Barycentric coordinates 4 Transformations in 3D, projections, quaternions 4.1 3D vectors and matrices: Dot and vector (cross) products . 4.2 Linear transformations - scale, reflection, rotation and shear 4.3 Reflection relative to a plane 4.4 Rotation around an arbitrary vector (direction) 4.5 Euler transformation 4.6 Translation, affine transformation and homogeneous coordi nates 4.7 Rigid-body transformation 4.8 Normal transformation 4.9 Projections 4.9.1 Parallel (orthographic) projection 4.9.2 Perspective projection 4.10 Coordinate systems in 3D, translations between different co ordinate systems 4.11 Quaternions: Representation of orientation in 3D using quaternions, quaternion interpolation 5 Basic raster algorithms 5.1 Raster grid, connectivity of raster grid, 4-connectivity and 8- connectivity 5.2 Bresenheim's line algorithm . 5.3 Bresenheim's circle algorithm 5.4 Triangle filling 5.5 Flood fill algorithm 6 Color and color models 6.1 CIEXYZ color space .... 6.2 RGB color space 6.3 CMY and CMYK color spaces 6.4 HSV and HSL color spaces . 6.4.1 HSV color model . . . 6.4.2 HSL color model . . . 6.5 Gamma correction 6.6 Yuv and YCbCr color spaces 6.6.1 Y'uv color space . . . 6.6.2 Y'CbCr color space 6.7 Perceptually uniform color spaces, L*u*v* and L''a*b* color spaces 6.8 sRGB color space 7 Basics freeglut and GLEW for OpenGL rendering 7.1 freeglut initialization . 7.2 Window creation . . . 7.3 Processing events . . . 7.4 Using the GLEW library 7.5 Wrapping freeglut in a C-f-+ class 8 Hidden surface removal 8.1 Basic notions 8.1.1 Front-facing and back-facing polygons 8.1.2 Depth complexity 8.1.3 Coherence . . 8.1.4 Occluders . . 8.2 Ray casting 8.3 .z-buffer 8.4 Hierarchical r-buffer 8.5 Priority algorithms . 8.5.1 Painter's algorithm 8.5.2 Using BSP-trees for HSR 8.6 Portals 8.7 Potentially-Visible Sets (PVS), computing PVS via portals 8.8 Hardware occlusion queries and their usage 9 Modern OpenGL: The beginning 9.1 History of OpenGL . . . . 9.2 Main concepts of OpenGL 9.3 Programmable pipeline 9.3.1 Vertex processing . 9.3.2 Rasterization . . . 9.3.3 Fragment processing . . 9.3.4 Per-fragment operations 9.4 Our first OpenGL program . . 9.5 First OpenGL program using C++ classes . . . 9.6 Parameter interpolation . . . . 9.7 Matrix operations 9.8 Rotating the object by mouse . 9.9 Working with meshes 9.10 Working with textures 9.11 Instancing 9.12 Framebuffer object and rendering into a texture 9.13 Point sprite in OpenGL 10 Working with large 2D/3D data sets 10.1 Bounding volumes 10.1.1 Axis-Aligned Bounding Box (AABB) 10.1.2 Sphere 10.1.3 k-DOP 10.1.4 Oriented Bounding Box (OBB) 10.2 Regular grids 10.3 Nested (hierarchical) grids 10.4 Quad-trees and Get-trees 10.5 kD-tree 10.6 Binary Space Partitioning (BSP) tree 10.7 Bounding Volume Hierarchy (BVH) 10.8 R-trees 10.9 Mixed structures 11 Curves and surfaces: Geometric modeling 11.1 Representation of curves and surfaces . . . 11.2 Elements of differential geometry, tangent space, curvature 11.2.1 Differential geometry of curves . 11.2.2 Differential geometry of surfaces 11.3 Bezier and Hermite curves and surfaces 11.3.1 Bezier curves . . 11.3.2 Hermite curves 11.3.3 Bezier surfaces . . 11.3.4 Hermite surfaces 11.4 Interpolation 11.5 Splines 11.5.1 B-splines 11.5.2 NURBS 11.5.3 Catmull-Rom splines 11.6 Surfaces of revolution . . . 11.7 Subdivision of curves and surfaces 11.7.1 Curve subdivision . 11.7.2 Surface subdivision 12 Basics of animation 12.1 Coordinates interpolation 12.2 Orientation interpolation 12.3 Key-frame animation 12.4 Skeletal animation 12.5 Path following 13 Lighting models 13.1 Diffuse (Lambert) model . 13.2 Phong model 13.3 Bliim-Phong model . . . . 13.4 Ward isotropic model . . 13.5 Miiinaert lighting 13.6 Lommel-Seeliger lighting , 13.7 Rim lighting 13.8 Distance attenuation . . 13.9 Reflection. Fresnel coefficient and its approximations . 13.10 Strauss lighting model 13.11 Anisotropic lighting 13.11.1 Ward anisotropic model 13.12 Bidirectional Reflection Distribution Function (BRDF) 13.13 Oren-Xayar model 13.14 Cook-Torrance model . . . . 13.15 AshikhmimShirley model . . 13.16 Image-Based Lighting (IBL) . 13.17 Spherical harmonics and their usage for lighting . . . . 14 Advanced OpenGL 14.1 Implementation of lighting models 14.1.1 Lambert model 14.1.2 Phong lighting model . . . 14.1.3 Blinn-Phong lighting model 14.1.4 Strauss lighting model . . 14.1.5 Normalized Phong and Blinn-Phong models . 14.1.6 Oren-Nayar lighting model 14.1.7 Cook-Torrance lighting model . . 14.1.8 Ashikhmin-Shirley lighting model 14.2 Geometry shaders 14.3 Transform feedback 14.4 Multiple Render Targets (MRT) 14.5 Uniform blocks and uniform buffers 14.6 Tessellation . 14.7 OpenGL ES 2 14.8 WebGL . . . 15 GPU image processing 15.1 Sampling, aliasing, filters 15.2 Sepia effect 15.3 Effects based on color transformations . 15.4 Edge detect filters 15.5 Emboss filter 15.6 Blur filters. Gaussian blur, separable filters 15.7 Old-film effect . 15.8 Sharpness filter 15.9 Image denoising. bilateral filter 16 Special effects in OpenGL 16.1 Reflections 16.2 Volumetric/Layereri tog 16.3 Billboards, particle systems, soft particles 16.4 Bumpmapping 16.5 Reflection and refraction, environment mapping . 16.6 Fur rendering . 16.7 Parallax, relief and cone step mapping . 16.8 Sky rendering, Perez all-weather model 16.9 Screen-Space Ambient Occlusion (SSAO) 16.10 Modeling depth of field 16.11 High Dynamic Range (HDR) rendering 16.12 Realistic water rendering . . 16.13 Deferred rendering . . . 16.14 Light prepass rendering 16.15 Ambient cubes 16.16 Reflective shadow maps 16.17 Splatting indirect illumination 17 Basics of GPGPU 17.1 What is GPGPU? 17.2 Basics of OpenCL 17.3 Basics of CUDA 17.4 Basics of linear algebra in OpenCL 17.5 OpenCL - OpenGL interoperability 18 Elements of procedural texturing and modeling 18.1 Fractals, Mandelbrot and Julia sets 18.2 Fractal mountains 18.3 L-systems 18.4 Perlin noise, turbulence, fBm 18.5 Modeling marble, water, clouds with Perlin noise 18.6 Cellular textures 19 Non-Photorealistic Rendering (NPR) 19.1 Cartoon rendering 19.2 Extended cartoon rendering 19.3 Gooch lighting model 19.4 Watercolor rendering ER -