自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

歪歪是条狗

充实的生活来源程序

  • 博客(5)
  • 资源 (3)
  • 收藏
  • 关注

转载 快速排序[from 维基百科]

<br />#include <functional>#include <algorithm>#include <iterator> template< typename BidirectionalIterator, typename Compare >void quick_sort( BidirectionalIterator first, BidirectionalIterator last, Compare cmp ) { if( first != last ) {

2011-05-05 14:14:00 623

转载 如何学好C++语言

怎么学好C++,我的路还很长很长^ ^From : http://coolshell.cn昨天写了一篇如何学好C语言,就有人回复问我如何学好C++,所以,我把我个人的一些学习经验写在这里,希望对大家有用。首先,因为如何学好C语言中谈到了算法和系统,所以这里就只谈C++语言。C++是最难的语言。这个世界上最难的编程语言可能非C++莫属了。你千万不要以为几天就可以学好C++,C++的学习曲线是相当BT的,你可以看看这篇文章。C++是一门很自由的语言,自由到了有点BT和恐怖的地步。我甚至认为C++并不是一门成熟的

2011-05-05 10:24:00 262

转载 Linux-- 指令大全

<br />cat cd<br /><br />  chmod chown<br /><br />  cp cut<br /><br />  名称:cat<br /><br />  使用权限:所有使用者<br /><br />  使用方式:cat [-AbeEnstTuv] [--help] [--version] fileName<br /><br />  说明:把档案串连接后传到基本输出(萤幕或加 > fileName 到另一个档案)<br /><br />  参数:<br

2011-01-30 01:30:00 508

原创 OpenGL编程指南学习笔记@1

几个概念:像素------是显示硬件可以在屏幕上显示的最小可视元素。在内存中,和像素有关的信息(例如像素的颜色)组织成位平面(bitplane)的形式。 位平面----是一块内存区域,保存了屏幕上每个像素的1个位的信息。例如,它指定了一个特定像素的颜色中红色成分的强度。位平   面又可以组织成帧缓冲区(framebuffer)的形式,后者保存了图形硬件为了控制屏幕上所有像素的颜色和强度所需要的全部信息。第一个程序示例程序1-1 一段OpenGL代码 1. #include 2. main(){ 3

2011-01-30 00:05:00 562

原创 the very beginning

mark start 。

2011-01-29 12:07:00 342

BeginningOpenGLGameProgramming2nd

PART 1 OPENGL BASICS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 Chapter 1 The Exploration Begins . . . Again . . . . . . . . . . . . . . . . . . 3 Why Make Games? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 The World of 3D Games . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 The Elements of a Game . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 What Is OpenGL? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 OpenGL History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 OpenGL Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 Fixed-Function vs. Programmability . . . . . . . . . . . . . . . . . . . . . . 8 The Deprecation Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 Deprecated Features in This Book . . . . . . . . . . . . . . . . . . . . . . 10 Related Libraries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 A Sneak Peek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 What You Have Learned . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 Review Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 On Your Own . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 Contents vii Chapter 2 Creating a Simple OpenGL Application . . . . . . . . . . . . . . 17 About the Platform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 Introduction to WGL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 The Rendering Context . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Pixel Formats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 nSize . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 dwFlags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 iPixelType . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 cColorBits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 Setting the Pixel Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 An OpenGL Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 Full-Screen OpenGL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 The Example Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 What You Have Learned . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 Review Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 On Your Own . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 Chapter 3 OpenGL States and Primitives . . . . . . . . . . . . . . . . . . . . 43 State Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 Querying Numeric States . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 Enabling and Disabling States . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 glIsEnabled() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 Querying String Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 glGetStringi() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 Finding Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 Colors in OpenGL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 Handling Primitives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 Immediate Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 Vertex Arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 Vertex Buffer Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 Drawing Points in 3D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 Drawing Lines in 3D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 Drawing Triangles in 3D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 What You Have Learned . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 Review Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 On Your Own . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 viii Contents Chapter 4 Transformations and Matrices . . . . . . . . . . . . . . . . . . . . 73 Understanding Coordinate Transformations . . . . . . . . . . . . . . . . . . 73 Eye Coordinates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 Viewing Transformations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 Modeling Transformations . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 Projection Transformations . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 Viewport Transformations . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 Fixed-Function OpenGL and Matrices . . . . . . . . . . . . . . . . . . . . . . 80 The Modelview Matrix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 Translation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 Rotation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 Scaling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 Matrix Stacks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 The Robot Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 Projections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 Orthographic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 Perspective . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 Setting the Viewport . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 Projection Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 Manipulating the Viewpoint . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 Using gluLookAt() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 Using glRotate() and glTranslate() . . . . . . . . . . . . . . . . . . . . . 103 Creating Your Own Custom Routines . . . . . . . . . . . . . . . . . . . 104 Using Your Own Matrices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 Loading Your Matrix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 Multiplying Matrices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 What You Have Learned . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 Review Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 On Your Own . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 Chapter 5 OpenGL Extensions . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 What Is an Extension? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 Extension Naming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 Name Strings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 Functions and Tokens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 Obtaining a Function’s Entry Point . . . . . . . . . . . . . . . . . . . . . . . 114 Extensions on Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 Finding Supported Extensions . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 WGL Extensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 Contents ix Defining Tokens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 Introduction to GLee . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 Setting Up GLee . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 Using GLee . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 Using GLee with Core Extensions . . . . . . . . . . . . . . . . . . . . . . 120 Extensions in Action . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 What You Have Learned . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 Review Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 On Your Own . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 Chapter 6 Moving to a Programmable Pipeline . . . . . . . . . . . . . . 123 The Future of OpenGL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 What Is GLSL? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 Vertex Shaders . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 Fragment Shaders . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 The GLSL Language . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 Shader Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 Preprocessor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 Shader Inputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 Constructors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 Swizzling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 Defining Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 Built-in Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 GLSL Deprecated Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 Using Shaders . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 Creating GLSL Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 Querying the Information Logs . . . . . . . . . . . . . . . . . . . . . . . 145 Sending Data to Shaders . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 The GLSLProgram Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148 Replacing the Fixed-Function Pipeline . . . . . . . . . . . . . . . . . . 149 Handling Your Own Matrices . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 The Kazmath Library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 The Robot Example Revisited . . . . . . . . . . . . . . . . . . . . . . . . . 152 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 What You Have Learned . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153 Review Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153 On Your Own . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 x Contents Chapter 7 Texture Mapping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 An Overview of Texture Mapping . . . . . . . . . . . . . . . . . . . . . . . . 155 Using the Texture Map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156 Texture Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 Creating Texture Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 Deleting Texture Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158 Specifying Textures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158 2D Textures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159 1D Textures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162 3D Textures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163 Cube Map Textures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163 Texture Filtering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163 Texture Coordinates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165 Applying Texture Coordinates . . . . . . . . . . . . . . . . . . . . . . . . 166 Texture Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168 Texture Wrap Modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168 Mipmaps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172 Mipmaps and the OpenGL Utility Library . . . . . . . . . . . . . . . . 173 Loading Targa Image Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174 The Targa File Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174 The TargaImage Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178 What You Have Learned . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178 Review Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178 On Your Own . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178 PART 2 BEYOND THE BASICS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179 Chapter 8 Lighting, Blending, and Fog . . . . . . . . . . . . . . . . . . . . . 181 Lighting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181 Normals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183 The Lighting Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185 Materials . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186 Lighting in GLSL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190 Blending . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198 Separate Blend Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202 Constant Blend Color . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203 Fog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203 Fog Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204 Contents xi xii Contents Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204 What You Have Learned . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204 Review Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206 On Your Own . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206 Chapter 9 More on Texture Mapping . . . . . . . . . . . . . . . . . . . . . . 207 Subimages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207 Copying from the Color Buffer . . . . . . . . . . . . . . . . . . . . . . . . . . 208 Environment Mapping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209 Sphere Mapping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209 Reflective Cube Mapping . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210 Alpha Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211 Multitexturing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213 Texture Units . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214 Multitexturing in GLSL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216 What You Have Learned . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216 Review Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217 On Your Own . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217 Chapter 10 Improving Your Performance . . . . . . . . . . . . . . . . . . . . 219 Frustum Culling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219 The Plane Equation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220 Defining Your Frustum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221 Testing a Point . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223 Testing a Sphere . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223 Frustum Culling Applied . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225 What You Have Learned . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225 Review Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226 On Your Own . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226 Chapter 11 Displaying Text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227 2D Texture-Mapped Fonts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227 Generating the Texture Coordinates . . . . . . . . . . . . . . . . . . . . 228 The Texture-Mapped Fonts Example . . . . . . . . . . . . . . . . . . . . 229 2D Fonts with FreeType . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229 The FreeType Library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230 Initializing FreeType and Loading a Font . . . . . . . . . . . . . . . . 231 Setting the Font Size . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232 Generating Glyph Textures . . . . . . . . . . . . . . . . . . . . . . . . . . . 232 Freeing FreeType Resources . . . . . . . . . . . . . . . . . . . . . . . . . . 234 The FreeType Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234 A Note on 3D Fonts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236 What You Have Learned . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236 Review Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237 On Your Own . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237 Chapter 12 OpenGL Buffers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239 What Is an OpenGL Buffer? . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239 Clearing Buffers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240 The Scissor Test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240 The Color Buffers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241 Color Masking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241 Setting the Clear Color . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242 The Depth Buffer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242 Controlling Depth Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . 242 Disabling Depth Buffer Writes . . . . . . . . . . . . . . . . . . . . . . . . 243 Potential Issues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244 The Stencil Buffer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249 What You Have Learned . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249 Review Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249 On Your Own . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249 Chapter 13 The Endgame . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251 The MD2 Model Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251 The MD2 Header . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252 Loading the Model Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253 Animating the MD2 Model . . . . . . . . . . . . . . . . . . . . . . . . . . 255 Rendering the Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258 Creating Explosions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259 Point Sprites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260 Using Point Sprites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260 Contents xiii xiv Contents Ogro Invasion! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261 A Note on Collision Detection . . . . . . . . . . . . . . . . . . . . . . . . 264 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265 Review Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265 On Your Own . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265 Appendix A: Answers to Review Questions and Exercises . . . . . . . . . 267 Appendix B: Further Reading . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277 Appendix C: What’s on the CD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281 Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283

2011-01-30

深度探索C++对象模型

对于C++老手,这是一本让人大呼过瘾的好书!!

2011-01-30

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除