![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
opengl
文章平均质量分 64
林一鸣1991
互联网无边无际 技术知识浩如烟海,在这个产业我每天都在接触新的知识,不断冲击我的内心,让我兴奋不已。
我对技术学习充满了热情,我更需要探索一套有效的方法来学习,一些零碎的知识和灵感需要记录和整理。
在这里,我希望能从小到大,不断对自己的知识总结,提高表达能力。我热衷于知识的输入,但是却很少有机会输出,在这里,我希望改变。
Explaning things to others is the best way to learn.
偶尔会使用英语 但不敢保证没有错误:)
我希望与各位交流,衷心感谢你们的意见和批评。我会认真应对,今天重新开始。
林一鸣 2014年11月29日
展开
-
3D图形学矩阵完全解析傻瓜版
想来编程也有一段时间,什么都很明白就是对于坐标变换不是很理解,总是在关键的时候迷乱不已,胡乱的写一些变换代码,得到的结果当然让自己云里雾里。仔细的看了一下好几本书关于3D变换的篇章,总结了一下,希望对大家有帮助。末了声明以下,可能我说得也有错误的地方,敬请局内人明鉴指正,我只是一个在校学生没有实际的工作经验。恳请大家提出宝贵的意见,打造一个Matrix Bible,让更多的初学者不要走弯路。谢谢大转载 2012-04-11 21:03:00 · 2653 阅读 · 0 评论 -
视图啊啊
// Atom.cpp// OpenGL SuperBible// Demonstrates OpenGL coordinate transformation// Program by Richard S. Wright Jr.#define GLUT_DISABLE_ATEXIT_HACK #pragma comment(lib, "glut32.lib ")原创 2012-08-19 15:07:45 · 718 阅读 · 0 评论 -
OpenGL中所有的变换,都是在变换坐标系。
首先明确一点,我们在程序中,opengl的变换的代码是从上往下写的,但实际变换是从下往上进行的。在空间(坐标系)中的变换也是从下往上依次是:模型空间->世界空间->视觉空间->裁剪空间--->屏幕。再明确两个坐标:视觉坐标相对于观察者的视角而言,可以视为绝对的屏幕坐标,通常作为参考坐标系使用再利用opengl 进行3d绘制时,就会使用笛卡尔坐标系,如果不进行任何坐标变换,使原创 2012-08-22 10:24:21 · 3696 阅读 · 2 评论 -
线性代数没学好,一路兵败如山倒
想来编程也有一段时间,什么都很明白就是对于坐标变换不是很理解,总是在关键的时候迷乱不已,胡乱的写一些变换代码,得到的结果当然让自己云里雾里。仔细的看了一下好几本书关于3D变换的篇章,总结了一下,希望对大家有帮助。末了声明以下,可能我说得也有错误的地方,敬请局内人明鉴指正,我只是一个在校学生没有实际的工作经验。恳请大家提出宝贵的意见,打造一个Matrix Bible,让更多的初学者不要走弯路。谢谢大转载 2012-08-22 08:45:03 · 3112 阅读 · 0 评论 -
配置FREEGLUT(新)
一 配置freeglutGLUT 代表OpenGL Utility Tookit。Mark J.Kilgard 为了使OpenGL应用程序结构能够真正独立于窗口系统构思了GLUT库。Freeglut是一个GLUT的开源实现。具体配置步骤如下:下载freegluthttp://nchc.dl.sourceforge.net/project/freeglut/freeglut/2.转载 2013-01-24 13:36:17 · 4220 阅读 · 0 评论 -
GLUT ON VS2010
刚装了win7和VS2010。看了下配置OpenGL的方法和以前不太一样。搜索得之。glut下载地址:http://www.opengl.org/resources/libraries/glut/glutdlls37beta.zipglut.h ---> C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Include\glglut.dl转载 2013-01-24 13:43:21 · 1425 阅读 · 0 评论 -
在MFC-opengl中使用类似glutSolidCube()函数出现窗口闪退
解决办法如图,在附加依赖项中加入几个lib库文件如果是GLSL还需要增加glew等库文件原创 2013-02-04 11:32:46 · 3919 阅读 · 3 评论 -
位图
//备忘://Texture Mapping Functionsvoid CCY457OpenGLView::LoadGLTextures(){ //Create Texture Names glGenTextures(3, m_Texture); LoadTexture("Apple.bmp",0); LoadTexture("Fauve.转载 2013-02-02 19:44:39 · 985 阅读 · 0 评论 -
再议gluPerspective和gluLookAt的关系
本文转自:http://www.cnblogs.com/chengmin/archive/2011/09/12/2174004.html看了Opengl的相关程序,发现有些东西还是特别迷茫,尤其是gluLookAt的函数做啥用的,而gluPerspective又有什么功能.在网上查看到了这篇: 终于搞明白gluPerspective和gluLookAt的关系了(转载 2013-02-12 17:04:32 · 726 阅读 · 0 评论 -
情人节记
寒假将结束,虽然在狗屁亲情带给我很多烦心事和压力但终归是没有荒废很多日子在学习孙鑫视频的同时,利用MFC和OpenGL顺利完成任务。我还是坚信最优秀的人哪方面都应该优秀,不管在程序中,在人际中,在IQ和EQ上,在挣扎和痛苦时,都应该有成为超人的心,我从不放弃提升自己任何一方面的能力,我不需要名人的讲座或是励志的书籍这就是所原创 2013-02-14 17:30:19 · 888 阅读 · 0 评论 -
笛卡尔坐标系的旋转矩阵在OpenGL坐标系的应用
当利用笛卡尔坐标系下的旋转矩阵对opengl坐标进行旋转时需要注意opengl的坐标系与笛卡尔坐标系的区别在opengl里的点需要经过矩阵[0 0 1][0 1 0][1 0 0]的变换,才是标准的笛卡尔坐标;即在笛卡尔中的(a,b,c)对应opengl的(c,b,a); 若要在opengl对一个点进行旋转例如,opengl中一原创 2013-03-02 22:23:41 · 2895 阅读 · 0 评论 -
使用伪彩色函数指定opengl颜色
使用伪彩色函数指定opengl颜色最好采用数据类型GLubyte,这个数据类型是gl.h中宏定义的,本质上就是unsigned char在C中,默认的基础数据类型均为signed,现在我们以char为例,说明(signed) char与unsigned char之间的区别首先在内存中,char与unsigned char没有什么不同,都是一个字节,唯一的区别是,char的最高位为符原创 2013-03-16 12:24:09 · 1483 阅读 · 0 评论 -
体积阴影(Shadow Volumes)生成算法
是3D初心者:) 不是技术百科全书,在blog上想说什么就说什么:) 下面以最快的速度简单谈谈阴影生成技术,目前普遍采用的一般有三种:Planar Shadow、Shadow Mapping和Shadow Volume,前者类似投影,计算最简单,缺点只能绘制抛射在平面上的阴影;Shadow mapping利用站在光源处所沿光源法线看去所生成的深度图来检测场景中的体象素是否处于阴影中,缺点是光源与物转载 2012-08-13 13:42:01 · 10273 阅读 · 1 评论 -
阴影锥原理与展望—真实的游戏效果的实现(转)
shadow volume 这个术语几乎是随着 DOOM3 的发布而成为FPS 玩家和图形学爱好者谈论的对象的。虽然这个游戏还没有上市,但是凭借 John Carmack 的传奇经历以及 DOOM3发布的一些让人惊讶的预览图片,我们仍然有理由认为它将会是 2004 年最热门的 FPS 游戏之一。 id software向来都不吝惜为了达到最好的图像效果而使用最先进的渲染技术,这曾经使得玩家为了玩它转载 2012-08-13 08:51:31 · 3027 阅读 · 0 评论 -
OPENGL光照tips
1.在使用GL_POSITION指定光源位置时,我们指定的是光源在眼睛坐标系中的位置。光源 的位置是 以 GL_POSITION参数 和一个4值的矢量 ( x , Y , z , w) 来定 义的。如果 w的值等于 0 . 0, 那 么( x ,y,z ) 的值就定义了一个矢量, 其指定光线照过来的方向。这样的光源称为定向光源, 其所有光线都是平行的,就好像其光源的位置在无穷远。定向光的最原创 2012-04-13 08:54:07 · 773 阅读 · 0 评论 -
Shadow Map阴影贴图技术之探Ⅰ
这两天勉勉强强把一个shadowmap的demo做出来了。参考资料多,苦头可不少。Shadow Map技术是目前与Shadow Volume技术并行的传统阴影渲染技术,而且在游戏领域可谓占很大优势。本篇是第一辑。——ZwqXin.comShadow Map的原理很简单,但是实现起来到处是雷。当然这只是我的体会。恩,不过就是“从光源处看场景,那些看不见的区域全部都该是阴影”。很容易看出,与针转载 2012-04-16 16:55:28 · 1343 阅读 · 0 评论 -
error C2381: “exit” : 重定义;__declspec(noreturn) 不同
解决办法一、#if defined(_WIN32)# ifndef GLUT_BUILDING_LIBextern _CRTIMP void __cdecl exit(int);上面是glut.h中对exit的使用,意思是如果没有定义宏GLUT_BUILDING_LIB,就使用它的exit,那我们就在项目的属性——预处理器 里定义这个宏,这样就不执行gl转载 2012-04-20 08:36:32 · 7695 阅读 · 0 评论 -
新手思路——phong简单光照模型绘制
第一步:熟悉opengl 编程。制作一个会旋转的圆锥体,并加入贴图。第二步:读取复杂物体表面的顶点信息。已知复杂物体表面是由一个个三角面片构成的三角网格图形。读出点、线、面 信息,然后绘制顶点。第三步:在给定模型的基础上,在取消光照情况下,首先尝试自己计算漫反射光照的值。设定光源位置LightPosition(三维坐标)、光源颜色值LightShiness、漫反射系数值转载 2012-07-16 11:07:02 · 4532 阅读 · 1 评论 -
简单phong光照模型
float4x4 Scal;float4x4 World;float4x4 View;float4x4 projection;float4x4 WorldViewProjection;float3 EyePosition;float3 LightDir;float4 LightColor;struct VertexInput{ float4 Po转载 2012-07-16 11:09:12 · 1592 阅读 · 0 评论 -
OpenGL 鼠标3D旋转简单实现
#include #include #include staticfloat c=M_PI/180.0f;//弧度和角度转换参数 staticint du=90,oldmy=-1,oldmx=-1;//du是视点绕y轴的角度,opengl里默认y轴是上方向 staticfloat r=1.5f,h=0.0f;//r是视点绕y轴的半径,转载 2012-07-17 16:04:22 · 7603 阅读 · 1 评论 -
vs2003之后的版本配置OpenGL
在Visusal Studio 2008中配置Opengl和在VC中配置是一样的,只要把头文件和.lib文件放在相应的目录里就可以了。 进行一个小程序的测试,会报一下异常: 1>LINK : 没有找到 C:\Users\ywq\Documents\Visual Studio 2008\Projects\test1\Debug\test1.exe 或上一个增量链接没有生成它;正在执行转载 2012-07-17 16:04:53 · 864 阅读 · 0 评论 -
无法解析的外部符号 _main,该符号在函数 ___tmainCRTStartup 中被引用
这个问题表明你新建的是一个main类型函数(控制台程序),而你的程序中有窗口程序,显然是个win32函数,解决方法:项目-属性-链接器-系统-子系统-把控制台该为windows刚学WinAPI编译遇到不少问题,LNK2019: 无法解析的外部符号 _main,该符号在函数 ___tmainCRTStartup 中被引用 MSVCRTD.lib test参考了以下方法转载 2012-07-17 16:27:45 · 917 阅读 · 0 评论 -
关于用作OpenGL纹理的图像有几点十分重要
1.此图像的宽和高必须是2的n次方; 2.宽度和高度最小必须是64象素; 3.并且出于兼容性的原因,图像的宽度和高 度不应超过256象素。 4.如果您的原始素材的宽度和高度不是 64,128,256象素的话,使用图像处理软件重 新改变图像的大小原创 2012-07-19 10:11:26 · 2014 阅读 · 0 评论 -
OpenGL 纹理入门
OpenGL入门学习[十一]我们在前一课中,学习了简单的像素操作,这意味着我们可以使用各种各样的BMP文件来丰富程序的显示效果,于是我们的OpenGL图形程序也不再像以前总是只显示几个多边形那样单调了。——但是这还不够。虽然我们可以将像素数据按照矩形进行缩小和放大,但是还不足以满足我们的要求。例如要将一幅世界地图绘制到一个球体表面,只使用glPixelZoom这样的函数来进行缩放显然是转载 2012-07-19 21:50:04 · 35726 阅读 · 8 评论 -
bmp位图和OpenGL的像素操作
OpenGL入门学习[十]今天我们先简单介绍Windows中常用的BMP文件格式,然后讲OpenGL的像素操作。虽然看起来内容可能有点多,但实际只有少量几个知识点,如果读者对诸如“显示BMP图象”等内容比较感兴趣的话,可能不知不觉就看完了。像素操作可以很复杂,这里仅涉及了简单的部分,让大家对OpenGL像素操作有初步的印象。学过多媒体技术的朋友可能知道,计算机保存图象的方法通常转载 2012-07-19 21:51:45 · 3705 阅读 · 0 评论 -
OpenGL笔记之矩阵变换(Matrix Transformation)
本文是学习OpenGL过程中的一篇笔记。在学习过程中,主要参照了大名鼎鼎的《OpenGL Programming Guide》(中文名《OpenGL编程指南》,有些人还称之为OpenGL红宝书)《OpenGL SuperBible》(中文名《OpenGL超级宝典》,有些人还称之为OpenGL蓝宝书)另外还有《3D Computer Graphics: A转载 2013-03-17 11:24:40 · 1784 阅读 · 1 评论