/LGC图形渲染/图形学系列 -- 3D 图形学基础
2010-12-28 15:37
411 查看
图形学系列 -- 3D 图形学基础
作者:
刘鹏
日期:
2009-08-27
本文介绍了三维图形在计算机二维屏幕上的显示原理。
三维图形及动画场景的显示,就是把所建立的三维空间模型,经过计算机的复杂
处理,最终在计算机二维屏幕上显示的过程。一般,设计三维图形软件要经过以
下步骤:
(Line)、画多边形(Polygon)等函数可以建立复杂的空间模型。在表示三维空
间时,一般用齐次坐标(Homogeneous Coordinate)。在实际应用时一般把一系
列顶点(Vertex )组织起来以构成物体或图元(Entity)。
定义一个窗口一般由以下步骤完成:设置窗口模式,设置窗口位置、大小,初始化窗口,窗口颜色设置。
清理窗口是指把窗口清成某种颜色。
要观看场景,也需要一个窗口,即视口。通俗地讲,视口变大,场景被放大;视口变小,场景被缩小。
实感应考虑两种因素:光源和物体材质。
光源具有以下的属性:
颜色: 平常的光源是白色的,但在特殊的环境下,仍然会有不同的光线,一般光线的颜色及强度是以RGB三元色来表示的.
光的种类:一般光可分为四种: 环境光(ambient light)、点光源(point source)、有向光(directional light 、聚光灯(spotlight).
环境光: 最简单的一种光源,没有位置,对环境中的每个物体的各个方向都具有相同的强度.
点光源: 点光源是射向四面八方的,它具有位置(position),但并不具有方向的属性(orientation).
有向光: 这种光有方向,但没有位置,最好的例子是太阳光.这种光是平行穿过三度空间,通常是用来模拟无限远的光源.
聚光灯:有方向有位置,并以圆锥形扩散.这种圆锥的形状是由阴影(umbra)及半影(penumbra)的角度来决定.
材质(texture)
每一面都可能会有其表面的材质纹路,如木制桌面或大理石地板等,通常是以2d静态图形来表示。
提供双缓存来制作动画。计算机在显示前台缓存中的画面同时,在后台缓存中绘
制下一帧画面,需要显示后台缓存中的画面时,只要用函数把前后台缓存交换即
可:图形变换常用的函数,有:平移、旋转、放缩。
to openGL. It explains everything very well and provides good examples.
Skip the part about creating a window, compiz does that part for you
http://www.falloutsoftware.com/tutorials/gl/gl0.htm
Some other tutorials/reference
http://www.paulsprojects.net/tutorials/tutorials.html
http://steinsoft.net/index.php?site=...ippets/OpenGL/
http://www.codeproject.com/opengl/Ge...Primitives.asp
http://gpwiki.org/index.php/Category...penGL_articles
Here are the online versions of the blue book and the red book. Blue is reference, red is a guide.
http://www.glprogramming.com/blue/
http://www.glprogramming.com/red/
Tutorials for reflection, shadows etc
http://nehe.gamedev.net/lesson.asp?index=06
作者:
刘鹏
日期:
2009-08-27
本文介绍了三维图形在计算机二维屏幕上的显示原理。
三维图形及动画场景的显示,就是把所建立的三维空间模型,经过计算机的复杂
处理,最终在计算机二维屏幕上显示的过程。一般,设计三维图形软件要经过以
下步骤:
基于图元建立三维模型
建立三维模型,就是在三维坐标系中画三维场景。利用画点(Point)、画线(Line)、画多边形(Polygon)等函数可以建立复杂的空间模型。在表示三维空
间时,一般用齐次坐标(Homogeneous Coordinate)。在实际应用时一般把一系
列顶点(Vertex )组织起来以构成物体或图元(Entity)。
设置观看物体的窗口和观看点(视点)
图形显示的区域称为显示窗口。流程顺序为:定义一个窗口一般由以下步骤完成:设置窗口模式,设置窗口位置、大小,初始化窗口,窗口颜色设置。
清理窗口是指把窗口清成某种颜色。
要观看场景,也需要一个窗口,即视口。通俗地讲,视口变大,场景被放大;视口变小,场景被缩小。
设定各物体的属性(如色彩、光照、纹理映射等)
要使物体具有真实感,就要对物体进行光照处理。在计算机图形学中,物体的真实感应考虑两种因素:光源和物体材质。
光源具有以下的属性:
颜色: 平常的光源是白色的,但在特殊的环境下,仍然会有不同的光线,一般光线的颜色及强度是以RGB三元色来表示的.
光的种类:一般光可分为四种: 环境光(ambient light)、点光源(point source)、有向光(directional light 、聚光灯(spotlight).
环境光: 最简单的一种光源,没有位置,对环境中的每个物体的各个方向都具有相同的强度.
点光源: 点光源是射向四面八方的,它具有位置(position),但并不具有方向的属性(orientation).
有向光: 这种光有方向,但没有位置,最好的例子是太阳光.这种光是平行穿过三度空间,通常是用来模拟无限远的光源.
聚光灯:有方向有位置,并以圆锥形扩散.这种圆锥的形状是由阴影(umbra)及半影(penumbra)的角度来决定.
材质(texture)
每一面都可能会有其表面的材质纹路,如木制桌面或大理石地板等,通常是以2d静态图形来表示。
如果要物体动起来,还要进行图形变换(如几何变换、视窗变换和投影变换等)
三维动画,就是把三维物体通过各种三维图形变换,把它投影到视口中。OpenGL提供双缓存来制作动画。计算机在显示前台缓存中的画面同时,在后台缓存中绘
制下一帧画面,需要显示后台缓存中的画面时,只要用函数把前后台缓存交换即
可:图形变换常用的函数,有:平移、旋转、放缩。
三维图形的二维化
三维图形是通过二维视口(屏幕)来观看的,因此,对三维图形要进行投影变换和透视变换。屏幕三维坐标系
三维坐标系符合右手螺旋规则:X轴正方向沿屏幕向右, Y轴正方向沿屏幕向下, Z轴正方向垂直屏幕向里。links
This is the best tutorial that I have found for introto openGL. It explains everything very well and provides good examples.
Skip the part about creating a window, compiz does that part for you
http://www.falloutsoftware.com/tutorials/gl/gl0.htm
Some other tutorials/reference
http://www.paulsprojects.net/tutorials/tutorials.html
http://steinsoft.net/index.php?site=...ippets/OpenGL/
http://www.codeproject.com/opengl/Ge...Primitives.asp
http://gpwiki.org/index.php/Category...penGL_articles
Here are the online versions of the blue book and the red book. Blue is reference, red is a guide.
http://www.glprogramming.com/blue/
http://www.glprogramming.com/red/
Tutorials for reflection, shadows etc
http://nehe.gamedev.net/lesson.asp?index=06
相关文章推荐
- /LGC图形渲染/图形学系列 -- 粒子系统概述及其实现
- /LGC图形渲染/图形学系列 -- 图形学基本概念汇编
- /LGC图形渲染/图形学系列 -- 关于计算机图形学的学习
- /LGC图形渲染/3D 图形编程的数学基础(1) 向量及其运算
- /LGC图形渲染/Graphics 文化系列 -- Loren Carpenter与分形山脉
- /LGC图形渲染/3D 图形渲染引擎 OGRE 体系结构
- /LGC图形渲染/Graphics 文化系列 -- John Carmark 与 id software
- /LGC图形渲染/图像处理系列之旋转
- /LGC图形渲染/图像处理系列之扭曲(distort)
- /LGC图形渲染/OpenGL ES 系列教程
- /LGC图形渲染/基于 OpenGL 进行 3D 图形开发
- 计算机3D图形基础在Unity中的实现(Vector3,Maxtrix4*4,Transform)
- Cocos2d-x 3.x 图形学渲染系列七
- 3D图形渲染管线
- Cocos2d-x 3.x 图形学渲染系列二十一
- 3D图形渲染管线【转】
- /LGC图形渲染/OpenGL Performance Optimization
- /LGC图形渲染/Android 图形系统剖析
- Cocos2d-x 3.x 图形学渲染系列二十四
- 【液晶模块系列基础视频】4.2.X-GUI图形界面库-画矩形函数简介