
计算机图形学
dreamcs
lnsjc321@126.com
展开
-
用OpenGL画Bezier曲线
最近在看Francis S Hill ,Jr 和 Stephen M Kelley合著的《计算机图形学》(OpenGL版)(第三版)书中有绘制三个控制点的Bezier曲线的代码。自己重新敲了一遍代码。发现了其中的一点小错误,修正过来了。并做了一点小小的改动。源码见下#include #include #include #include int SCREEN_HEIGHT = 480;int NUMPOINTS = 0;class Point{public: flo原创 2010-09-26 16:29:00 · 2478 阅读 · 2 评论 -
OpenGL顶点缓冲区对象(VBO)
OpenGL顶点缓冲区对象(VBO)原文地址目录创建VBO画出VBO更新VBO例子创建VBO GL_ARB_vertex_buffer_object 扩展可以提升OpenGL的性能。它提供了顶点数组和显示列表,这避免了低效实现这些功能。Vertex buffer object (VBO) 允许顶点数据储存在高性能显卡上,即服务端的内存中,改善数翻译 2012-06-29 15:43:10 · 18591 阅读 · 2 评论 -
B样条曲线
介绍 1074年,Gordon和Riesenfeld用B样条基函数代替了Bernstein基函数,构造了B样条曲线。B样条曲线分段组成。每一段的参数t的区间为[0,1]。这样就克服了Bezier曲线的缺点:改变Berier曲线任意一个控制点,曲线上的所有点都变换。BSpline曲线的优点:修改某一控制点只引起与该控制点相邻的曲线形状发生变化,远处的曲线形状不受影响原创 2012-06-30 06:43:00 · 55302 阅读 · 5 评论 -
OpenGL像素缓冲区对象
OpenGL像素缓冲区对象原贴地址目录概述创建PBO映射PBO例子:Streaming Texture Uploads with PBO例子:Asynchronous Readback with PBO概述 OpenGL ARB_pixel_buffer_object 扩展与ARB_vertex_buffer_object.很相似。翻译 2012-07-02 11:56:18 · 10206 阅读 · 0 评论 -
改进OpenGL抓图功能
在网上看到了这段代码http://blog.youkuaiyun.com/chunxiaopengshan/archive/2010/03/29/5426568.aspx不方便之处在于,事先要使用一个已存在的bmp文件。看了一下bmp的文件格式,修改了代码。修改后,就不需要使用一个已存在的bmp文件了。代码如下#include #include #include #include原创 2010-12-03 14:53:00 · 4895 阅读 · 1 评论 -
Ogre日志
http://blog.youkuaiyun.com/pizi0475/article/details/5451267me:注意代码部分有改动日志管理用文件来记录Ogre系统初始化、运行、结束以及调试信息。使用日志便于我们调试程序。日志系统的组成Ogre日志系统由两个类组成:Log类与LogManager。下面我们分别来看这两个类。Log类代表用于记录信息的日志转载 2012-08-01 14:57:11 · 1206 阅读 · 0 评论 -
三次样条插值
C++数值算法(第二版)3.3 三次样条插值 给定一个列表显示的函数yi=y(xi),i=0,1,2,...,N-1。特别注意在xj和xj+1之间的一个特殊的区间。该区间的线性插值公式为 (3.3.1)式和(3.3.2)式是拉格朗日插值公式(3.1.1)的特殊情况。 因为它是(分段)线性的,(3.3.1)式在每一区间内的二阶转载 2012-08-19 20:26:58 · 27700 阅读 · 2 评论 -
OpenGL多窗口显示问题
OpenGL程序中,如果使用了VBO技术,则不能使用wglMakeCurrent在多个窗口中切换。测试程序不使用VBO技术,直接画出球体第二个窗口 使用了VBO的程序,可以使用多线程技术在多个窗口中切换。如下图如示 程序主要代码如下int DrawGLScene(GLfloat & rtri, int speed) { glC原创 2011-01-13 12:55:00 · 9609 阅读 · 4 评论 -
WGL函数翻译
http://msdn.microsoft.com/en-us/library/windows/desktop/ee872083(v=vs.85).aspxwglShareListswglShareLists函数能使多个OpenGL渲染上下文共享同一个显示列表空间。语法BOOL WINAPI wglShareLists( HGLRC hglrc1, HGLRC原创 2012-09-01 12:28:47 · 5119 阅读 · 0 评论 -
使用OpenGL渲染线程
关键代码段DWORD WINAPI GLThread(LPVOID lpParams) { PIXELFORMATDESCRIPTOR pfd = {0}; HDC hDC = GetDC(hwndTest); HGLRC hRC = 0; /* Set absolute minimum format attributes; i.e. select defaul原创 2012-09-04 10:12:01 · 1201 阅读 · 0 评论 -
OpenGL多线程项目开发教训集合
记录在实际项目中遇到的问题1、线程不要自己给自己发消息。否则程序会挂掉。2、不能在不同线程中创建子窗体。即父窗体在A线程,而子窗体在B线程。3、如何在一个线程中使用另一个线程创建的VBO?我试了一下,没成功。4.往往莫名其妙的崩溃是因为使用opengl函数不当造成的。原创 2012-09-05 11:05:39 · 1756 阅读 · 0 评论 -
OpenGL Win764位导入库
http://stackoverflow.com/questions/1236670/how-to-make-opengl-apps-in-64-bits-windows The 64-bit OpenGL import library is included in the Windows SDK and gets installed to %ProgramFiles%\Mi转载 2012-10-26 16:31:10 · 3040 阅读 · 0 评论 -
GDI坐标系统(上)
http://www.functionx.com/visualc/gdi/gdicoord.htm 当在Windows上绘图时,绘图区的坐标系统的原点位于屏幕左上角。在屏幕上的所有东西要参照此点来定位。此点可称作笛卡尔坐标系原点(0,0),水平轴(注:x轴)沿(0,0)点向右,竖直轴(注:y轴)沿(0,0)向下。 此原点为操作系统默认坐标原点。如果你调用Ellips翻译 2013-02-01 22:04:52 · 1290 阅读 · 0 评论 -
OpenGL Vertex Array
原文地址http://www.songho.ca/opengl/gl_vertexarray.html概要你可以在一系列数组保存顶点信息,如顶点坐标,向量,纹理坐标,颜色信息,来代替立即模式下输入顶点信息的方法(即在glBegin()和glEnd()中指定顶点信息)。你可以使用数组索引找到数组中的元素,来画出几何体。仔细看下面使用立即模式下画立方体的代码。glBeg翻译 2012-06-28 15:35:55 · 9612 阅读 · 0 评论 -
从图片加载纹理-使用glut工具
#include #include #include #include #include static GLuint texName;AUX_RGBImageRec * CreateTextureFromBmp(){ FILE *File=NULL; const char *Filename= "hehua.bmp"; File=fopen(Filename,"r");原创 2012-06-27 14:30:05 · 5796 阅读 · 3 评论 -
OpenGL帧缓存对象(FBO:Frame Buffer Object)
转http://blog.youkuaiyun.com/xiajun07061225/article/details/7283929原文地址http://www.songho.ca/opengl/gl_fbo.html但有改动。OpenGL Frame BufferObject(FBO)Overview: 在OpenGL渲染管线中,几何数据和纹理经过多次转化转载 2012-06-26 09:30:50 · 24219 阅读 · 1 评论 -
OpenGL多边形顺逆时针问题
在3D 空间,多边形的顺逆时针 , 不但取决于多边形本身,而且与观察者的角度有关。原创 2010-12-16 15:49:00 · 3020 阅读 · 0 评论 -
OpenGl 三维混合
OpenGl 三维混合原创 2011-05-12 14:45:00 · 1648 阅读 · 1 评论 -
渲染模块发图记念
孤军作战。终于做完了渲染模块1.0版本。发图记念。原创 2011-06-08 16:33:00 · 974 阅读 · 0 评论 -
判断点是否在三角形中
判断点是否在三角形中S=S1+S2+S3原创 2011-04-28 14:43:00 · 977 阅读 · 0 评论 -
简单多边形三角剖分发图留念
简单多边形三角剖原创 2011-04-30 17:08:00 · 1212 阅读 · 6 评论 -
带洞多边形三角剖分发图留念
任意多边形三角剖分,终于完成了。^_^出售源码,价格私聊。联系方式:微信 sunjingchao923 QQ 330363210测试工程下载地址:腾讯微云原创 2011-05-04 15:58:00 · 3007 阅读 · 4 评论 -
3DVIA PrintScreen---神奇技术 可一键导出三维模型
1.安装3DVIA PrintScreen程序2.用基于OpenGl的渲染引擎的软件,打开一个三维场景。3.按F10 ,即将三维场景导出成3DXML文件,而后重现三维场景。举例下图是一座工厂。使用自编OpenGL渲染程序渲染。下图是3DVIA PrintScreen渲染的场景,是三维的。欢迎各路高手,讨论它是如何实现的。相关网址原创 2012-01-19 13:50:10 · 3509 阅读 · 0 评论 -
使用OpenGL画三次Bezier曲线
#include #include #include #include int SCREEN_HEIGHT = 480; int NUMPOINTS = 0; class Point { public: float x, y; void setxy(float x2, float y2) { x = x2; y = y2;原创 2012-02-01 12:07:00 · 12992 阅读 · 4 评论 -
方法论实践之剪切算法设计
需求描述如下:修剪trim定义:执行修剪命令,将要修剪的对象在选中的对象处形成交点,然后把超出选中对象的部分修剪掉;修剪的对象可重复选择;激活方式:点击修剪图标;命令行输入trim回车;命令行输入tr回车(字母不分大小写)命令行:>trim(TR)(回车)..……………………………激活修剪命令>选择剪切边:(回车或鼠标右键单击).……….鼠标点选或框选选择剪切边原创 2012-01-04 12:57:03 · 887 阅读 · 0 评论 -
坐标变换_世界坐标系与用户坐标系之间的转换
1.基础知识1.1矩阵乘法行*列C=[A1*b11+a2*b21+a3*b31,a1*b12+a2*b22+a3*b32,a1*b13+a2*b23+a3*b33]例:1*4+2*7+3*1=21, 1*5+2*8+3*1=24,1*6+2*9+3*5=39结果为[21, 24, 39]1.2求逆矩阵按定义计算逆矩阵。例:原创 2012-01-04 13:20:59 · 24043 阅读 · 0 评论 -
三维渲染模块开发经验总结
三维渲染模块开发经验总结 刚开始分析这个项目,认识主要问题在于渲染速度上。即能否流畅地渲染巨大的三维实体场景。前期,我认为这是这个项目成败的关键。于是想采用一些空间管理算法,加速渲染。后来,在OGRE中看到VBO代码,于是便试用一下。发现渲染速度很快,完全可以解决这个主要矛盾。前期写的空间管理的代码也没有用上。但这为以后留下了扩展空间。中期,发现任意三角形三角化是主要矛盾。这个问原创 2012-01-04 13:38:37 · 1869 阅读 · 0 评论 -
2次三次4次Bezier曲线实践
程序实现此算法截图 2次三次4次Bezier曲线演示程序(无源码)QT4.6 VS2008编译 下载原创 2012-06-17 21:05:14 · 4179 阅读 · 0 评论 -
GDI坐标系统(下)
http://www.functionx.com/visualc/gdi/gdicoord.htm自定义单位与坐标系 到目前为止,这些映射模式允许我们设置坐标轴朝向。但我们不能设置单位长度。因为每一种模式(MM_TEXT, MM_HIENGLISH, MM_LOENGLISH, MM_HIMETRIC, MM_LOMETRIC, and MM_TWIPS) 都已经设置好了坐标轴朝翻译 2013-02-04 15:15:34 · 1386 阅读 · 0 评论