![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
opengl
文章平均质量分 86
davidsu33
这个作者很懒,什么都没留下…
展开
-
VBO的详解
有时候你不得不承认,OPENGL的开发真的不如DIRECTX,特别对于入门的人来说,一个简单的概念可以让我嚼上几天不得骑姐。VBO可以说是OPENGL中里程碑似的东西,通过VBO我们可以把需要渲染的图元的顶点信息,直接上传存储在GPU的显存中。由于最早的OPENGL不支持实例化绘制,导致在绘制大量相似图元的时候,需要反复向GPU提交代码渲染,这点在OpenGL中的二次方图元和实例化绘制已经转载 2013-08-19 09:23:37 · 8818 阅读 · 0 评论 -
三角网绘制续
对上篇文章增加了纹理逐步绘制的功能#include "stdafx.h"#include #include #include #include #include #pragma comment(lib, "glew32.lib")using namespace std;static GLuint txtID = 0;static GLuint vbo[3] = {0};原创 2013-09-05 10:55:36 · 1389 阅读 · 0 评论 -
opengl片段测试之后的逻辑操作
opengl对片段进行裁剪测试,alpha测试,模板测试,深度测试之后,下一步会对片段进行操作处理,通常有混合,抖动和逻辑操作,在这里我主要说一下片段的逻辑操作,片段的逻辑操作有索引模式和RGBA模式两种,至于颜色索引模式,基本上不在用了,一个主要的问题是索引模式没法使用纹理贴图,这是很要命的一点,所以现在的opengl主要采用的是RGBA的模式来进行片段的处理。片段的逻辑处理通过GL_COL原创 2013-09-16 19:37:09 · 1685 阅读 · 0 评论 -
OpenGL FBO (Frame Buffer Object) 帧缓冲对象
OpenGL中的几个重要缓冲系统有VBO(Vertex Buffer Object), PBO(Pixel Buffer Object),FBO(Frame Buffer Object),其中VBO和PBO我们前面已经介绍了,主要采用的是glGenBuffers()来生成的服务器缓冲(GPU的内存),来实现高效绘制。FBO主要是用来做离屏渲染的,咱们的窗口系统有默认的帧缓冲对象(其对象值默认为0)原创 2013-09-23 09:12:45 · 2881 阅读 · 0 评论 -
OpenGL的多边形分割化
OpenGL的工具库GLU提供了三维处理的常用工具状态机(这里之所以成为工具状态机是因为其操作方式和OpenGL很类似),对于多边形的分割化我主要想介绍的是里面的几个重要的概念:1.多边形的环绕规则,对于复杂的多边形,咱们首先要确定的是应该如何来确定环绕线的走向,这样咱们才可以确定出我们所需要绘制的部分,那部分图形是多边形的内部,那部分是多边形的外部。2.多边形分割化的回调,这里主要说说G原创 2013-09-27 21:32:30 · 3294 阅读 · 0 评论 -
GLSL入门2 关于GLSL中的纹理贴图
我将注解以及源码直接放到这里了// GLSL01.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include #include #include #include #include using namespace std;static const int g_timer_id = 0;static const int g_tim原创 2013-12-15 20:05:00 · 2936 阅读 · 1 评论 -
GLSL的预定义变量
GLSL语言内置的变量,包括内置的顶点属性(attribute)、一致变量(uniform)、易变变量(varying)以及常量(const),一方面加深印象,另一方面今天的文章可以为以后的编程做查询之用。顶点属性——指顶点的信息,OpenGL据此绘制各个图元,对于传统的顶点属性包括坐标、纹理坐标、颜色等GLSL都会设置一个内置变量与之对应,以便在需要时可以在顶点或片元着色器中直接引用,这也体转载 2013-12-09 14:46:58 · 1296 阅读 · 0 评论 -
opengl模板缓冲区
相信大家有些人对opengl的模板缓冲区不是很理解,包括我最开始也是,opengl的模板缓冲区其实就是采用过滤的技术来控制那些颜色可以绘制,那些不能进行绘制。这里的过滤技术也就是我们的一个控制方法,主要体现在如下两个函数glStencilFunc(GLenum func,GLint ref,GLuint mask)和glStencilOp(GLenum fail,GLenum zfail, GLe原创 2013-09-15 20:17:00 · 1576 阅读 · 0 评论 -
使用二维纹理贴图,从24位位图加载,用vertex方式绘制
本来打算全部用顶点缓冲来实现的,但是发现我使用的是二维纹理,这样是不行滴,所以只能是用glVertex来暂时对应纹理坐标,下篇打算直接使用3D纹理贴图// beauty_cube.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include #include #include #include #include #pragma comme原创 2013-09-04 17:10:43 · 1527 阅读 · 0 评论 -
glReadPixels glDrawPixels glCopyPixels与VBO结合 使用24位的位图
与上篇的相结合#include #include #include #include #include #include #include #pragma comment(lib,"glew32.lib")#pragma comment(lib,"glut32.lib")using namespace std;/* Create checkerboard image *原创 2013-09-03 19:52:29 · 1289 阅读 · 0 评论 -
VBO的像素操作,绘制24位位图
#include #include #include #include #include #include #include #pragma comment(lib,"glew32.lib")#pragma comment(lib,"glut32.lib")using namespace std;/* Create checkerboard image */#defi原创 2013-09-03 17:22:04 · 1175 阅读 · 0 评论 -
顶点数组对象 VAO(Vertex Array Object)
一 OpenGL抛弃glEnable(),glColor(),glVertex(),glEnable()这一套流程的函数和管线以后,就需要一种新的方法来传递数据到Graphics Card来渲染几何体,我们可以用VBO, 在3+版本我们可以使用Vertex Array Object-VAO,VAO是一个对象,其中包含一个或者更多的Vertex Buffer Objects转载 2013-08-19 19:37:10 · 4485 阅读 · 0 评论 -
opengl中VBO的使用演示
如下是我做的一个示例代码,具体的就不说了,程序运行需要glew和glut库,找不到这两个库的朋友可以跟我联系。#include #include #include #include #define VERTEX 0#define INDICES 1#define COLOR 2#define NUM_BUFFERS 3#define TIMER1 100#define原创 2013-08-19 11:05:26 · 2067 阅读 · 0 评论 -
OpenGL使用裁剪平面
不多说了 ,直接上我的源码和测试结果:1.不适用裁剪平面// VAO.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include #include #include #include #include #pragma comment(lib, "glut32.lib")#pragma comment(lib, "glew32.l原创 2013-08-21 20:46:04 · 1201 阅读 · 0 评论 -
opengl 混合原理
OpenGL中混合的概念:OpenGL中混合指的是把被处理片段的颜色值和帧缓冲区的颜色值进行组合。通过glEnable(GL_BLEND)来开启混合功能,通过glDisable(GL_BLEND)来关闭。开启混合功能之后我们可以通过glBlendFunc(GLenum srcFactor, GLenum destFactor)来进行组合,组合因子有如下可以设置的值:GL_ZEROG原创 2013-08-26 20:34:14 · 789 阅读 · 0 评论 -
opengl 雾效
// fog.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include #include #include #pragma comment(lib, "glew32.lib")#pragma comment(lib, "glut32.lib")float light_pos[] = {0.5,原创 2013-08-29 15:39:08 · 1016 阅读 · 0 评论 -
VAO(vertex array object)和VBO(vertex buffer object)的详解
我想大家都已经熟悉VBO了吧。在GL3.0时代的VBO大体还是处于最重要的地位,但是与此同时也出现了不少新的用法和辅助役,其中一个就是VAO。本文大致小记一下这两者的联系,帮助大家理解一下这个角色。——ZwqXin.comVBO?See[学一学,VBO]本文来源于 ZwqXin (http://www.zwqxin.com/), 转载请注明 原文地址:http:/转载 2013-08-19 08:21:10 · 3341 阅读 · 0 评论 -
opengl的 GL_FRONT和GL_BACK分析
很多学习opengl的同学可能不是很清楚gl_front和gl_back的区别,下面来分析一下,OpenGL中用表面来表示物体,一个物体就是一组平面。光线照射在平面上会产生反射,入射线与反射线的角平分线就是法线,它垂直于平面。面法线有两种可能的方向,我们称面有两侧。当描述封闭物体的外表面时,法线应该从内部指向外部;而表示在物体内部时,法线应该从外部指向内部。用glNormal*(N_Vec原创 2013-08-29 16:11:50 · 7224 阅读 · 0 评论 -
opengl位图
// bitmap.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include #include #pragma comment(lib, "glew32.lib")#pragma comment(lib, "glut32.lib")unsigned char raster[] ={ 0xc0,0x00,0xc0,0x00, 0xc原创 2013-08-29 21:32:52 · 1277 阅读 · 0 评论 -
OpenGL模板测试之镜像模型解析
#include #include #include #include using namespace std;static GLfloat mirror_x = 0;static GLfloat mirror_y = 0;static GLfloat mirror_z = 2;void init(){ glClearColor(0,0,0,0); glClearDe原创 2013-12-18 15:34:50 · 1831 阅读 · 0 评论