摘要:
1、引言 ADS40基于航天传感器线阵扫描和全球定位系统、IMU复合姿态测量技术获取数字影像,利用该传感器进行航空摄影,不需经过扫描,就可以直接为数字摄影测量、遥感图像处理系统提供高分辨率的全色、真彩色、近红外数字影像。 ADS40的应用意味着摄影测量领域从工序、技术、流程、软件、装备、方法、规范的重大变革,在对传感器件、飞行规划、空中摄影、空三测量、影像纠正、编辑成图各技术环节进行深入研究的过程... 阅读全文
摘要:
3D图形学基本概念PerspectivePerspective refers to the angles between the lines that lend the illusion of three dimensions. Colors and ShadingMoving beyond line drawing, we need to add color to create a solid object. Shading refers to the way the color is applied to the polygon. Shading can be of two types i 阅读全文
摘要:
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 阅读全文
摘要:
本文在第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 阅读全文
摘要:
ReflectionsAdding reflections to a program too can improve its realism to a great extent. Here we'll look at a simple method to create reflection where we simply redraw the object with an appropriate transformation and make the surface in between translucent. This creates an effective illusion o 阅读全文
摘要:
SelectionSelection is a powerful feature of OpenGL that allows you click at some position of the OpenGL window using the mouse and determine which of your objects lie beneath it. The act of selecting a specific object is called Picking. With OpenGL's selection feature, we can specify a viewing v 阅读全文
摘要:
本文在第11篇文章的基础上,为其加入显示各种二次曲面的代码;QuadricsEvery quadric has a few settings associated with it. We have to create a quadric first and then customize its settings to render the shape we want. The gluNewQuadric function creates a state variable that describes the current drawing style, orientation, lightin 阅读全文
摘要:
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 阅读全文
摘要:
本文对第11篇文章进行修改,使用显示列表来存储渲染命令。显示列表OpenGL provides a facility to create a preprocessed set of OpenGL commands called a display list. Creating a display list is a straight forward process. We just have to delimit the display list code with glNewList and glEndList. The display list is named by an integer 阅读全文
摘要:
Blending and TransparencyBlending in OpenGL provides pixel-level control of RGBA color storage in the color buffer. To enable blending we must first call glEnable(GL_BLEND). We have to set up the blending function glBlendFunc with two arguments: the source and the destination colors. By default thes 阅读全文
摘要:
本文在第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 阅读全文
摘要:
本文中将对第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 阅读全文
摘要:
在上一篇的基础上加入对键盘和鼠标的事件处理程序,以便用其来控制3D物体的旋转和移动。1,首先在CCY457OpenGLView类中为WM_KEYDOWN, WM_LBUTTONDOWN, WM_LBUTTONUP 和 WM_MOUSEMOVE四个事件加入事件处理函数。2,在CCY457OpenGLView.h中加入下列用于控制旋转和移动的变量:并在构造函数中初始化: GLfloat m_xAngle; GLfloat m_yAngle; GLfloat m_xPos; GLfloat m_yPos; CPoint m_MouseDownPoint;CCY457OpenGLView::CCY45 阅读全文
摘要:
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 阅读全文
摘要:
视见体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 阅读全文
摘要:
剪裁区域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 阅读全文
摘要:
5, 在OnCreate中我们将通过建立像素格式和绘制上下文来初始化OpenGL. 在InitializeOpenGL()中会创建一个设备上下文(DC),为这个DC选择一个像素格式,创建和这个DC相关的绘制上下文(RC),然后选择这个RC.这个函数会调用SetupPixelFormat()来建立像素格式。int CCY457OpenGLView::OnCreate(LPCREATESTRUCT lpCreateStruct) {if (CView::OnCreate(lpCreateStruct) == -1)return -1;//Initialize OpenGL Here Initial 阅读全文
摘要:
本文源代码下载:OpenGL_ch2.rar WGL – Windows的 OpenGL扩展层The WGL extension consists of a set of functions (wglCreateContext, wglDeleteContext etc.) and structures (such as PIXELFORMATDESCRIPTOR, GLYPHMETRICSFLOAT) etc. Thus every OpenGL implementation has a platform-specific portion which has to be set up and 阅读全文