随笔分类 -  OpenGL

个人作品- 几何战争
摘要:写于2012年初 创意源于xbox360的几何战争 使用windows + OpenGL编写 下载地址: http://files.cnblogs.com/files/dragon2012/%E5%87%A0%E4%BD%95.zip 阅读全文

posted @ 2016-02-16 23:56 c_dragon 阅读(420) 评论(2) 推荐(0) 编辑

Obj格式模型 读取
摘要:OBJ文件的结构在一个OBJ文件中,首先有一些以v、vt或vn前缀开头的行指定了所有的顶点、纹理坐标、法线的坐标。然后再由一些以f开头的行指定每一个三角形所对应的顶点、纹理坐标和法线的索引。在顶点、纹理坐标和法线的索引之间,使用符号“/”隔开的。一个f行可以以下面几种格式出现:f1 2 3表示以第1... 阅读全文

posted @ 2016-01-21 17:53 c_dragon 阅读(2486) 评论(2) 推荐(0) 编辑

各大引擎矩阵的矩阵存储方式 ----行矩阵 or 列矩阵
摘要:OpenGL 里面的矩阵 float m[16]; 分割线 补充 id 的idmat4 idsoft的并不完全是OpenGL的矩阵相匹配,他是行矩阵 Ogre的 Ogre也是一样,行矩阵 NVIDIA 的 这里我翻译下 所以和OpenGL一模一样 ,列矩阵 gkEngine 他是行矩阵 再来一个ga 阅读全文

posted @ 2016-01-21 10:15 c_dragon 阅读(635) 评论(0) 推荐(0) 编辑

Opengl的gl_NormalMatrix
摘要:原文地址:http://blog.csdn.net/ichild1964/article/details/9728357参考:http://www.gamedev.net/topic/598985-gl-normalmatrix-in-glsl-how-to-calculate/当用glsl传nor... 阅读全文

posted @ 2015-10-13 16:56 c_dragon 阅读(1889) 评论(1) 推荐(0) 编辑

OpenGL 遮挡查询
摘要:原文地址:http://www.linuxidc.com/Linux/2015-02/114036.htm在一个场景中,如果有有些物体被其他物体遮住了不可见。那么我们就不需要绘制它。在复杂的场景中,这可以减少大量的顶点和像素的处理,大幅度的提高帧率。遮挡查询就是允许我们判断一组图形在进行了深度测试之... 阅读全文

posted @ 2015-10-13 14:02 c_dragon 阅读(845) 评论(0) 推荐(0) 编辑

OpenGL normalMap
摘要:参考zwqxin的博客 http://www.zwqxin.com/ shader 来自zwqxin,稍作修改 <-vertex-> attribute vec3 v_Pos; attribute vec3 v_Normal; attribute vec2 v_TexCoord; attribute 阅读全文

posted @ 2015-09-13 23:20 c_dragon 阅读(776) 评论(0) 推荐(0) 编辑

3d md5 demo
摘要:描述:场景3dmax做的,随便拖的几个东西模型玩过游戏的都知道是doom3的怪兽猪脚音频是openal播放的wav文件下载地址:http://pan.baidu.com/s/1eQ8SYI2 阅读全文

posted @ 2015-09-10 14:28 c_dragon 阅读(200) 评论(0) 推荐(0) 编辑

opengl deferred shading
摘要:原文地址:http://www.verydemo.com/demo_c284_i6147.html一、Deferred shading技术简介Deferred shading是这样一种技术:将光照/渲染计算推迟到第二步进行计算。我们这样做的目的是为了避免多次(超过1次)渲染同一个像素。其基本思想如下... 阅读全文

posted @ 2015-05-11 13:26 c_dragon 阅读(317) 评论(0) 推荐(0) 编辑

记录各种材质的数据
摘要://黄铜 0.329412, 0.223529, 0.027451, 1.000000, 0.780392, 0.568627, 0.113725, 1.000000, 0.992157, 0.941176, 0.807843, 1.000000, 27.897400, //青铜 0.... 阅读全文

posted @ 2015-05-03 22:17 c_dragon 阅读(285) 评论(0) 推荐(0) 编辑

视锥体(frustum)裁剪
摘要:原文地址:http://www.linuxgraphics.cn/graphics/opengl_view_frustum_culling.html背景视锥体(frustum),是指场景中摄像机的可见的一个锥体范围。它有上、下、左、右、近、远,共6个面组成。在视锥体内的景物可见,反之则不可见。为提高... 阅读全文

posted @ 2014-08-05 09:33 c_dragon 阅读(18558) 评论(1) 推荐(1) 编辑

阴影锥(shadow volume)原理与展望
摘要:转记:找了不少关于shadow volume原理的资料,还是这个帖子讲解的一目了然,转帖在这里,方便查阅。引用链接:http://blog.donews.com/yyh/archive/2005/05/19/387143.aspx阴影锥(shadow volume)原理与展望---真实的游戏效果的实... 阅读全文

posted @ 2014-06-24 14:28 c_dragon 阅读(3141) 评论(0) 推荐(0) 编辑

opengl 裁剪平面
摘要:原帖地址:http://blog.sina.com.cn/s/blog_5ff6097b0100xqvr.htmlvoidglClipPlane(GLenumplane,constGLdouble*equation); 定义一个裁剪平面。equation参数指向平面方程Ax + By + Cz + ... 阅读全文

posted @ 2014-06-08 15:51 c_dragon 阅读(3563) 评论(0) 推荐(0) 编辑

opengl 模板测试 glStencilOp glStencilFunc
摘要:下面来设置蒙板缓存和蒙板测试。 首先我们启用蒙板测试,这样就可以修改蒙板缓存中的值。下面我们来解释蒙板测试函数的含义: 当你使用glEnable(GL_STENCIL_TEST)启用蒙板测试之后,蒙板函数用于确定一个颜色片段是应该丢弃还是保留(被绘制)。蒙板缓存区中的值与... 阅读全文

posted @ 2014-05-30 09:16 c_dragon 阅读(7561) 评论(0) 推荐(0) 编辑

OpenGL模板缓冲区与模板测试
摘要:原文地址:http://www.blogjava.net/qileilove/archive/2014/01/23/409269.html帧缓冲区有许多缓冲区构成,这些缓冲区大致分为: 颜色缓冲区:用于绘图的缓冲区,它包含了颜色索引或者RGBA颜色数据。 深度缓冲区:存储每个像素的深度值,当启动... 阅读全文

posted @ 2014-05-28 20:02 c_dragon 阅读(4467) 评论(0) 推荐(0) 编辑

opengl wglsharelists
摘要:原文地址:http://blog.csdn.net/webscaler/article/details/5873179OpenGL 中用到多线程和多 render context 渲染的时候会用到 wglsharelist 进行资源共享,本文将对我本人在 wglsharelist 使用过程中的经验做... 阅读全文

posted @ 2014-05-08 09:06 c_dragon 阅读(701) 评论(0) 推荐(0) 编辑

opengl的矩阵理解
摘要:原文链接:http://blog.csdn.net/byhuang/article/details/1476199矩阵真的是一个很神奇的数学工具, 虽然单纯从数学上看, 它并没有什么特别的意义, 但一旦用到空间中的坐标变换,它就“一遇风云便成龙”, 大显神威了。简单的工具实现了复杂的功能,便预示着要理解它我们还是要花上点功夫的。下面就简单介绍一下OpenGL中的转换矩阵。1 转换矩阵的原理OpenGL中的转换矩阵是这样定义的: [Xx, Yx, Zx, Tx] [Xy, Yy, Zy, Ty]M = [Xz, Yz, Zz, Tz] [0, 0, 0, 1 ]其实我们可以这么理解这个变换矩阵. 阅读全文

posted @ 2013-10-21 10:43 c_dragon 阅读(598) 评论(0) 推荐(0) 编辑

浮点纹理 opengl
摘要:原文地址:http://wangqingyun84.blog.163.com/blog/static/790836172010323113604/因为 glsl部分 绑定fbo 看到要用浮点纹理,搜了一下看了,此地 留意下、glGenTextures(GLsizei n,GLuint *textures)返回n个未用的纹理对象标识符,将标识符存在textures这个数组中。返回的标识符大于0即有效。如果标识符过大也是无效。我曾经获得一个特别大的标识符,因为我在构造函数里调用了,此时没有RC(render context),即渲染上下文。2、glDeleteTextures(GLsizei n, 阅读全文

posted @ 2013-08-03 22:33 c_dragon 阅读(4623) 评论(0) 推荐(0) 编辑

glsl 多重纹理
摘要:#include"glsl.h"void SHADER::drawBox(){ glBegin(GL_QUADS); // Front Face glNormal3f( 0.0f, 0.0f, 1.0f); glTexCoord2f(0.0f, 0.0f); glVertex3f(-1.0f, -1.0f, 1.0f); glTexCoord2f(1.0f, 0.0f); glVertex3f( 1.0f, -1.0f, 1.0f); glTexCoord2f(1.0f, 1.0f); glVertex3f( 1.0f, 1.0f, 1.0f); ... 阅读全文

posted @ 2013-06-21 12:00 c_dragon 阅读(2256) 评论(13) 推荐(0) 编辑

glut 右键子菜单
摘要:转自:http://blog.csdn.net/xie_zi/article/details/1963461前一章我们知道了怎么建立简单的菜单,现在我们来看看怎样来添加一个级联的子菜单。子菜单的建立和我们前面用的建立菜单的函数一样。建立菜单后我们把子菜单作为一个条目添加进去。使用函数glutAddSubMenu来完成这项工作:void glutAddSubMenu(char *entryName,int menuIndex);参数:entryName:子菜单名称。menuIndex:子菜单索引,这个就是我们调用glutCreateMenu来创建子菜单返回的值。上面就是添加子菜单的函数。(我想子 阅读全文

posted @ 2013-06-05 20:42 c_dragon 阅读(532) 评论(0) 推荐(0) 编辑

glut弹出式菜单
摘要:弹出式菜单(像点鼠标右键出来的菜单那样的)也是GLUT的一部分,虽然它不能实现我们经常看到的windows系统弹出式菜单的所有的功能,但是它也有很大的作用。给一个程序增加菜单提供了一个比键盘更简单的方法来和程序交互,选择不同选项,而不用去记那些按键。我们首先要做的是创建菜单,创建菜单函数glutCreateMenu的原型如下:int glutCreateMenu(void (*func)(int value));参数:func:为新建的菜单处理菜单事件的函数名。这个函数的返回值是菜单的标识符(menu identifier)。我们的程序中,我们可以相加多少菜单就加多少菜单。对每个菜单我们要指定 阅读全文

posted @ 2013-06-05 20:24 c_dragon 阅读(346) 评论(0) 推荐(0) 编辑

导航