AFai

AFai
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

2011年12月27日

摘要: wglUseFontBitmaps函数The wglUseFontBitmaps() function creates a set of bitmap display lists based on the glyphs in the currently selected font in the current DC for use in the current OpenGL RC. It basically creates a series of sequential display lists which can be executed using the function glCallLi 阅读全文

posted @ 2011-12-27 09:29 阿Fai 阅读(302) 评论(0) 推荐(0) 编辑

摘要: Blending and TransparencyBlending in OpenGL provides pixel-level control of RGBA color storage in the color buffer. To enable blending we must first callglEnable(GL_BLEND). We have to set up the blending functionglBlendFuncwith two arguments: the source and the destination colors. By default these a 阅读全文

posted @ 2011-12-27 09:26 阿Fai 阅读(215) 评论(0) 推荐(0) 编辑

摘要: 本文在第9篇文章的基础上,为立方体加入纹理映射的功能。Texture MappingTexture Mapping in OpenGL is a fairly straightforward concept. Every texture is nothing but an image of some sort. Texture mapping is basically applying a texture to a surface. Textures can be 1D, 2D or even 3D. A 1D texture is an image with either a width o 阅读全文

posted @ 2011-12-27 09:25 阿Fai 阅读(236) 评论(0) 推荐(0) 编辑

摘要: 本文在第8篇文章的基础上,为其加入灯光效果。MaterialsOpenGL materials are description of what objects are made of. It basically specifies how much of light they reflect and this is what we would be seeing. OpenGL lighting goes a long way towards modeling real world lighting. In order achieve proper lighting effects in Op 阅读全文

posted @ 2011-12-27 09:25 阿Fai 阅读(236) 评论(0) 推荐(0) 编辑

摘要: OpenGL支持两种颜色模式:RGBA和颜色索引模式,本文关注于前者。Smooth Shading and Flat ShadingWhen Smooth Shading is specified, the color values are interpolated between vertices. If Flat Shading is specified, one vertex is selected as being representative of all the vertices, thus the entire primitive is displayed using one s 阅读全文

posted @ 2011-12-27 09:25 阿Fai 阅读(160) 评论(0) 推荐(0) 编辑

摘要: 在上一篇的基础上加入对键盘和鼠标的事件处理程序,以便用其来控制3D物体的旋转和移动。1,首先在CCY457OpenGLView类中为WM_KEYDOWN, WM_LBUTTONDOWN, WM_LBUTTONUP和WM_MOUSEMOVE四个事件加入事件处理函数。2,在CCY457OpenGLView.h中加入下列用于控制旋转和移动的变量:GLfloatm_xAngle;GLfloatm_yAngle;GLfloatm_xPos;GLfloatm_yPos;CPointm_MouseDownPoint;并在构造函数中初始化:CCY457OpenGLView::CCY457OpenGLView( 阅读全文

posted @ 2011-12-27 09:24 阿Fai 阅读(307) 评论(0) 推荐(0) 编辑

摘要: 本文中将对第5篇文章的太阳系模型进行修改,加入一些动画效果。此外还会加入显示帧速率的代码。加入动画效果最容易的方法是响应WM_TIMER消息,在其消息处理函数中改变一些参数值,比如每过多少毫秒就旋转一定的角度,并且重绘场景。Frame RateFrame rate is nothing but the number of frames that can be rendered per second. The higher this rate, the smoother the animation. In order to calculate the frame rate we retrieve 阅读全文

posted @ 2011-12-27 09:24 阿Fai 阅读(295) 评论(0) 推荐(0) 编辑

摘要: Transformations - Translation, Rotation and ScalingTranslation is nothing but moving along an arbitrary axis. Rotation is spinning about an arbitrary axis. Scaling is increase or decrease in size along an arbitrary axis. One important point to remember is that OpenGL uses a right hand coordinate sys 阅读全文

posted @ 2011-12-27 09:23 阿Fai 阅读(238) 评论(0) 推荐(0) 编辑

摘要: 视见体Viewing Volume is nothing but the region of 3D Cartesian space in that will occupy the window. It is nothing but the minimum and maximum x, y and z values that are inside the window. So if a vertex is outside this range of x, y and z values then they are clipped by OpenGL before rendering can occ 阅读全文

posted @ 2011-12-27 09:23 阿Fai 阅读(318) 评论(0) 推荐(0) 编辑

摘要: 剪裁区域In OpenGL when you create a window to draw in we must specify the coordinate system we want to use and how to map the specified coordinates into physical screen coordinates. We would be using the 2D Cartesian coordinate system with the origin 0,0 at the centre of the screen. Before we can start 阅读全文

posted @ 2011-12-27 09:22 阿Fai 阅读(306) 评论(0) 推荐(0) 编辑