GL_LINES & GL_LINE_STRIP & GL_LINE_LOOP】的更多相关文章

[GL_LINES] 独立的线段,下式中,p2与p3间没有连线. [GL_LINE_STRIP] 连续的线段,下式中, p2与p3会连成线段. [GL_LINE_LOOP] 参考:<计算机图形学>3.4 OpenGL画线函数.…
代码下载 #include "CELLWinApp.hpp"#include <gl/GLU.h>#include <assert.h>#include <math.h>#pragma comment(lib,"opengl32.lib")#pragma comment(lib,"glu32.lib")/*** 该例子展示如何点,线,面等数据,* 主要用到的OpenGL函数及定义如下 GL_POINTS GL_…
一.OpenGL简介 众所周知,OpenGL原先是Silicon Graphics Incorporated(SGI公司)在他们的图形工作站上开发高质量图像的接口.但最近几年它成为一个非常优秀的开放式三维图形接口.实际上它是图形软件和硬件的接口,它包括有120多个图形函数,"GL"是"GRAPHIC LIBRARY"的缩写,意思是“图形库”.OpenGL的出现使大多数的程序员能够在PC机上用C语言开发复杂的三维图形.微软在Visual C++ 7中已提供了三个Ope…
索引 A      B    C      D     E     F     G H      I     J      K     L     M     N O      P    Q      R     S     T U      V    W      X     Y     Z D glDebugMessageCallback 4.3+ 设置opengl调试信息回调 DEBUGPROC callback, void * userParam 用户自定义参数 DEBUGPROC定义:…
3.1 基础图形管线 三种向OpenGl着色器传递渲染数据的方法:属性,Uniform和纹理.3.2 创建坐标系 3.2.1 正投影 GLFrustum::SetOrthographic(⋯⋯): 3.2.2 透视投影 GLFrustum::SetPerspective(float fFov, float fAspect, float fNear, float fFar);3.3 使用存储着色器 GLShaderManager 在使用前必须进行初始化 shaderManager.Initiali…
一.简介 GDI是通过设备句柄(Device Context以下简称"DC")来绘图,而OpenGL则需要绘制环境(Rendering Context,以下简称"RC").每一个GDI命令需要传给它一个DC,但与GDI不同,OpenGL使用当前绘制环境(RC).一旦在一个线程中指定了一个当前RC,在此线程中其后所有的OpenGL命令都使用相同的当前RC.虽然在单一窗口中可以使用多个RC,但在单一线程中只有一个当前RC.下面我将首先产生一个OpenGL RC并使之成为…
//http://blog.csdn.net/longhuihu/article/details/7701874 1.绘图基础 清除窗口 glClearColor(0.0, 0.0, 0.0, 0.0);glClear(GL_COLOR_BUFFER_BIT); 第一句代码设置”清除颜色“,第二句代码将当前颜色缓冲区重置为“清除颜色”. 图形硬件除了color buffer(颜色缓冲区.对应屏幕上的像素颜色),还有其他缓冲区,比如Depth,Stencil,Accumulation,设置这些缓冲…
GL_POINTSGL_LINESGL_LINE_STRIPGL_LINE_LOOPGL_TRIANGLESGL_TRIANGLE_STRIPGL_TRIANGLE_FANGL_QUADSGL_QUAD_STRIPGL_POLYGON…
some OpenGL constants This is from (https://github.com/peterderivaz/pyopengles/blob/master/gl2.py) GL_DEPTH_BUFFER_BIT = 0x00000100 GL_STENCIL_BUFFER_BIT = 0x00000400 GL_COLOR_BUFFER_BIT = 0x00004000 GL_POINTS = 0x0000 GL_LINES = 0x0001 GL_LINE_LOOP…
参考资料:http://www.anandtech.com/show/3851/everything-you-always-wanted-to-know-about-sdram-memory-but-were-afraid-to-ask/7              GPU中我们通常使用GDDR5内存,它的memory channel宽度是32bit,和DDR3/DDR4 不同(它们的memory channel宽度为64位),但是GDDR5可以实现更多的memory channel,比如一些高…
本文记录OpenGL播放视频的技术.上一篇文章中,介绍了一种简单的使用OpenGL显示视频的方式.但是那还不是OpenGL显示视频技术的精髓.和Direct3D一样,OpenGL更好的显示视频的方式也是通过纹理(Texture).本文介绍OpenGL通过纹理的方式显示视频的技术. OpenGL中坐标和Direct3D坐标的不同 OpenGL中的纹理的坐标和Direct3D中的坐标是不一样的. 在Direct3D中.纹理坐标如下图所示.取值是0到1.坐标系原点在左上角. 物体表面坐标如下图所示.取…
OpenGL ES2.0编程步骤 OpenGL ES (OpenGL for Embedded Systems) 是 OpenGL 三维图形 API 的子集,针对手机.PDA和游戏主机等嵌入式设备而设计.该API由Khronos集团定义推广,Khronos是一个图形软硬件行业协会,该协会主要关注图形和多媒体方面的开放标准. 1. 保存全局变量的数据结构 以下例子程序均基于Linux平台. typedef struct _escontext { void* userData; // Put you…
===================================================== 最简单的视频和音频播放的演示样品系列列表: 最简单的视音频播放演示样例1:总述 最简单的视音频播放演示样例2:GDI播放YUV, RGB 最简单的视音频播放演示样例3:Direct3D播放YUV,RGB(通过Surface) 最简单的视音频播放演示样例4:Direct3D播放RGB(通过Texture) 最简单的视音频播放演示样例5:OpenGL播放RGB/YUV 最简单的视音频播放演示样…
OpenGL ES顶点数据绘制技巧 在OpenGL中,绘制一个长方体,需要将每个顶点的坐标放在一个数组中.保存坐标时有一些技巧(由于字母下标不好表示,因此将下标表示为单引号,如A1将在后文中表示为A' ): (1)将对立面坐标保存在相邻的位置,如坐标的保存顺序为:前面(A'ABB'),后面(D'DCC'),上面(D'A'B'C'),下面(DABC),左面(D'A'AD),右面(C'B'BC).因为对立面的坐标除了其垂直的那根轴的坐标相反以外,其他坐标值一样:如前面和后面(垂直于z轴),x和y的坐…
Android 支持 OpenGL 列表 1.GL 2.GL 10 3.GL 10 EXT 4.GL 11 5.GL 11 EXT 6.GL 11 ExtensionPack 我们将使用 GL10 这个类开始接触 OpenGL,探索3D 领域. javax.microedition.khronos.opengles 接口GL10 上级接口:GL 下级接口:GL11 公共接口GL10继承于GL GL10接口包含了Java(TM)程序语言为OpenGL绑定的核心功能.OES_byte_coordin…
第一章 OpenGL概述 标签(空格分隔): OpenGL 第一章 OpenGL概述 1 什么是OpenGL 2 初识OpenGL程序 3 OpenGL语法 4 OpenGL渲染管线 41 准备向OpenGL传输数据 42 将传输数据到OpenGL 43 顶点着色 44 细分着色 45 几何着色 46 图元装配 47 剪切 48 光栅化 49 片元着色 410 逐片元的操作 5 第一个程序深入分析 51 进入main函数 52 OpenGL的初始化过程 初始化顶点数组对象 分配顶点缓存对象 将数…
原地址:http://blog.csdn.net/myarrow/article/details/7707943 1. 保存全局变量的数据结构 以下例子程序均基于Linux平台. typedef struct _escontext { void*       userData;                    // Put your user data here... GLint       width;                          // Window width G…
近期由于兴趣所向.開始学习OpenGL绘图. 本文以"画球体"为点,小结一下近期所学. > 初识OpenGL ES 接触OpenGL是从Android開始的.众所周知,Android View 是线程不安全的,于是仅仅同意在主线程中对View进行操作.然而假如我们须要实现复杂的界面.特别是开发游戏,在主线程中画大量图像,会耗费比較长的时间.使得主线程没能及时响应用户输入,甚至出现ANR. 于是Android提供了一个 SurfaceView类,通过双缓冲机制(两块画布?三块画布?…
在Android上运行OpenGL ES程序需要用到GLSurfaceView控件,GLSurfaceView继承自SurfaceView并实现了GLThread,通过OpenGL ES进行绘制. OpenGL ES1.0是基于OpenGL 1.3的,OpenGL ES1.1是基于OpenGL 1.5的.Android1.0和更高的版本支持这个API规范.OpenGL ES 1.x是针对固定硬件管线的. OpenGL ES2.0是基于OpenGL 2.0的,不兼容OpenGL ES 1.x.An…
[TOC] 背景概述 在OpenGL绘制图形时,可能需要绘制多个并不相连的图形.这样的情况下这几个图形没法被当做一个图形来处理.也就需要多次调用 DrawArrays 或 DrawElements. 如果图形很多,可能会需要用一个循环来调用: for (int i = 0; i < num_objects; i++) { glDrawArrays(GL_TRIANGLES, object[n]->first_vertex, object[n]->vertex_count); } 每一次调…
+BIT祝威+悄悄在此留下版了个权的信息说: CSharpGL(14)用geometry shader渲染模型的法线(normal) +BIT祝威+悄悄在此留下版了个权的信息说: 2016-08-13 由于CSharpGL一直在更新,现在这个教程已经不适用最新的代码了.CSharpGL源码中包含10多个独立的Demo,更适合入门参考. 为了尽可能提升渲染效率,CSharpGL是面向Shader的,因此稍有难度. 问题 在处理光照效果等问题时,模型的顶点的法线是必不可少的数据.但是法线并不直接显示…
Modern OpenGL用Shader拾取VBO内单一图元的思路和实现(2) 上一篇里介绍了Color-Coded Picking的思路和最基本的实现.在处理GL_POINTS时已经没有问题,但是处理GL_LINES.GL_TRIANGLES等时会遇到同一图元的各个顶点颜色不同的问题,这就不能正确拾取了,本篇来解决这个问题. 对于GL_LINES,可以用 ; 来使得每个线段图元的两个顶点颜色分别相同:对于GL_TRIANGLES,则用 ; .但是这个方法无法应用到存在共享顶点的GL_LINE_…
OpenGL入门学习 说起编程作图,大概还有很多人想起TC的#include <graphics.h>吧? 但是各位是否想过,那些画面绚丽的PC游戏是如何编写出来的?就靠TC那可怜的640*480分辨率.16色来做吗?显然是不行的. 本帖的目的是让大家放弃TC的老旧图形接口,让大家接触一些新事物. OpenGL作为当前主流的图形API之一,它在一些场合具有比DirectX更优越的特性. 1.与C语言紧密结合. OpenGL命令最初就是用C语言函数来进行描述的,对于学习过C语言的人来讲,Open…
一. glBegin(GL_LINES); glend(); 二.线带和线环 glBegin(GL_LINE_STRIP); glend(); glBegin(GL_LINE_LOOP); glend(); 三.设置直线宽度 glLineWidth(GLfloat width); 四.获得直线宽度范围和增量 GLfloat sizes[2]; GLfloat add; glGetFloatv(GL_LINE_WIDTH_RANGE,sizes); glGetFloatv(GL_LINE_WIDT…
例一:绘制五角星 设五角星5个顶点分别为ABCDE,顶点到坐标轴原点距离为r,ABCDE各点用r表示,分别为 A(0,r); B(-r*sin(2/5*Pi),r*cos(2/5*Pi)); C(-r*sin(Pi/5),-r*cos(Pi/5)); DE和CB关于Y轴对称. 确定5个顶点的坐标后,使用GL_LINE_LOOP函数,将5个点连接起来,顺序依次为ACEBD. 主要代码为: void Star(void) { GLfloat r = 0.8f; GLfloat PointA[] =…
简介 状态机 glBegin()与glEnd() glFlush()与glFinish() OpenGL简介 OpenGL是图形硬件的一种软件接口.它被设计为硬件独立的接口,可用于多种不同硬件平台.OpenGL程序也可以在网络(客户端-服务器端模式)上工作,即使客户端与服务器端为不同类别的计算机.OpenGL的客户端为OpenGL程序实际运行的计算机,服务器为执行绘图操作的计算机. OpenGL使用gl作为OpenGL核心命令的的前缀,glu作为OpenGL通用库的前缀.类似地,OpenGL常量…
笔者设想的3D仿真中的元件,是不可能都是“画”出来的.这样就玩复杂了,应该把任务分包出去,让善于制作模型的软件来制作三维模型,我们只需要解析并且显示它即可. 3dsmax制作三维模型的方便,快捷,专业,我想是没有人提反对意见的.它可以把制作好的模型导出为业界通用的3ds格式,如果你愿意的话,3ds格式也可以包含材质和uvw贴图坐标.这样的模型我们在opengl中导入后只用打光和显示,非常省事. 解析3ds格式比较复杂,不过读者可以拿来主义,直接用下面的代码就可以了. 代码已经加入了必要的注释,笔…
对于某些函数的理解 glClear和glClearColor glClearColor指定glClear清除特定缓冲区时使用的值. glFlush 让所有已发送的命令尽快的由实际的绘制引擎执行. glViewPort 前两个参数指的是左下角. glPushMatrix glRotatef glBegin和glEnd 在glBegin和glEnd之间,并不是所有的OpenGL函数都是合法的. GL_LINES 如果为GL_LINES指定奇数个点,最后一个会被点会被忽略. GL_LINE_STRIP…
一.OpenGL与3D图形世界1.1.OpenGL使人们进入三维图形世界 我们生活在一个充满三维物体的三维世界中,为了使计算机能精确地再现这些物体,我们必须能在三维空间描绘这些物体.我们又生活在一个充满信息的世界中,能否尽快地理解并运用这些信息将直接影响事业的成败,所以我们需要用一种最直接的形式来表示这些信息. 最近几年计算机图形学的发展使得三维表现技术得以形成,这些三维表现技术使我们能够再现三维世界中的物体,能够用三维形体来表示复杂的信息,这种技术就是可视化(Visualization)技术.…
题外话 随着学习的增长,越来越觉得自己很水.关于上一篇博文中推荐用一个 学习opengl的 基于VS2015的 simplec框架.存在 一些问题. 1.这个框架基于VS 的Debug 模式下,没有考虑Release版本 2.这个版本中chead,c基础头文件中有些宏设计的不好,例如 //4.0 控制台打印错误信息 #ifndef CERR #define CERR(fmt,...) \ fprintf(stderr,fmt,##__VA_ARGS__),putchar('\n') #endif…