OpenGL
文章平均质量分 82
pizi0475
这个作者很懒,什么都没留下…
展开
-
How bad are small triangles on GPU and why?
Small triangles is bad for performance and this is not something new. In this post, we are just looking at some numbers to quantity these bad performance.转载 2023-03-02 09:27:55 · 1043 阅读 · 2 评论 -
Adaptive Scalable Texture Compression
OverviewAdaptive Scalable Texture Compression (ASTC) is an advanced lossy texture compression technology developed by Arm and AMD.This guide provides information about how you can use ASTC effectively to optimize the performance of your apps. In partic转载 2020-12-14 17:44:38 · 4083 阅读 · 7 评论 -
KHR_texture_compression_astc_hdr
Name KHR_texture_compression_astc_hdrName Strings GL_KHR_texture_compression_astc_hdr GL_KHR_texture_compression_astc_ldrContact Sean Ellis (sean.ellis 'at' arm.com) Jon Leech (oddhack 'at' sonic.net)Contributors Sean Ell.转载 2020-12-14 15:13:53 · 3630 阅读 · 1 评论 -
Using ASTC Texture Compression for Game Assets
By David Chait, Tegra Developer TechnologySince the dawn of the GPU, developers have been trying to cram bigger and better textures into memory. Sometimes that is accomplished with more RAM but more often it is achieved with native support for compres.转载 2020-12-14 15:12:04 · 2433 阅读 · 0 评论 -
TEXTURE COMPRESSION TECHNIQUES
TEXTURE COMPRESSION TECHNIQUEST. Paltashev1, I. Perminov21Advanced Micro Devices, Sunnyvale, CA, United States of America2University ITMO, St. Petersburg, Russian FederationTimour.Paltashev@gmail.com,timour.paltashev@amd.com,i.am.perminov@g...转载 2020-12-14 15:11:24 · 105688 阅读 · 1 评论 -
OpenGL API Overhead
IntroductionIn modern projects, to produce a nice looking scene the engine will render thousands of different objects: characters, buildings, landscape, effects and more. Of course, there are several ways to render geometry on the screen. In this article转载 2020-12-01 11:14:14 · 2160 阅读 · 2 评论 -
opengl cost of changing state
2813Programmers are supposed to have a fairly good idea of the cost of certain operations: for example the cost of an instruction on CPU, the cost of a L1, L2, or L3 cache miss, the cost of a LHS.When it comes to graphics, I realize I have litt..转载 2020-12-01 11:12:40 · 2267 阅读 · 0 评论 -
opengl渲染管线
https://blog.csdn.net/cjneo/article/details/50538033http://www.cnblogs.com/liangliangh/p/4116164.html转载自上面的网址,总有可以令人膜拜的文章还有一个综合的网址http://www.programgo.com/tag/opengl/19551513/5/自顶向下的思路来简单...转载 2019-11-19 15:22:42 · 4002 阅读 · 0 评论 -
骨骼动画导论
先说明,这篇文章由我翻译自Evan Pipho的>一书的内关于骨骼动画第五章的内容,去掉了前面的说明和最后的Demo说明,包含了所有的理论内容,转载请注明出处,谢谢!理解骨骼动画骨骼动画是使用”骨头”来运动一个模型而不是通过手动编辑和移动每个顶点或面而实现的动画.每个顶点被附着到一根骨头(或有时是多根骨头).一根骨头或一个关节只是一组顶点的一个控制点.这些概念类似于我们身体里的关节,例如我们的膝关转载 2009-06-09 11:12:00 · 3164 阅读 · 0 评论 -
OpenGL 漂亮的星星
原 文:Lesson 9: Moving Bitmaps In 3D Space作 者:CKER 欢迎进入第九课。到现在为止,您应该很好的理解OpenGL了。您已经学会了设置一个OpenGL窗口的每个细节。学会在旋转的物体上贴图并打上光线以及混色(透明)处理。这一课应该算是第一课中级教程。您将学到如下的知识:在3D场景中移动位图,并去除位图上的黑色象素(使用混色)。接着为黑白纹理上色,最后您转载 2010-02-26 17:26:00 · 2249 阅读 · 0 评论 -
OpenGL Alpha混合
原 文:Lesson 8: Blending 译 者:CKER OpenGL中的绝大多数特效都与某些类型的(色彩)混合有关。混色的定义为,将某个象素的颜色和已绘制在屏幕上与其对应的象素颜色相互结合。至于如何结合这两个颜色则依赖于颜色的alpha通道的分量值,以及/或者所使用的混色函数。Alpha通常是位于颜色值末尾的第4个颜色组成分量。前面这些课我们都是用GL_RGB来指定颜色的三个分量。相转载 2010-02-26 17:28:00 · 2516 阅读 · 0 评论 -
OpenGL 纹理映射
原 文:Lesson 6: Texture Mapping译 者:CKER 学习Texture Map纹理映射(贴图)有很多好处。比方说您想让一颗导弹飞过屏幕。根据前几课的知识,我们最可行的办法可能是很多个多边形来构建导弹的轮廓并加上有趣的颜色。使用纹理映射,您可以使用真实的导弹图像并让它飞过屏幕。您觉得哪个更好看?照片还是一大堆三角形和四边形?使用纹理映射的好处还不止是更好看,而且您的程序转载 2010-02-26 17:29:00 · 2366 阅读 · 0 评论 -
OpenGL 向3D进军
原 文:Lesson 5: Solid Objects 译 者:CKER 在上节课的内容上作些扩展,我们现在开始生成真正的3D对象,而不是象前两节课中那样3D世界中的2D对象。我们给三角形增加一个左侧面,一个右侧面,一个后侧面来生成一个金字塔(四棱锥)。给正方形增加左、右、上、下及背面生成一个立方体。 我们混合金字塔上的颜色,创建一个平滑着色的对象。给立方体的每一面则来个不同的颜色。转载 2010-02-26 17:30:00 · 1489 阅读 · 0 评论 -
OpenGL教程之新手上路
译者的话:NeHe的教程一共有30多课,内容翔实,并且不断更新 。国内的网站实在应该向他们学习。令人惊讶的是,NeHe提供的例程源码几乎都有跨平台的不同编译版本,涉及从Visual C++、Borland C++、Visual Basic、MacOS X/GLUT、Linux/GLX、Code Warrior、Delphi、C++ Builder、MASM、ASM、MingW32&Allegro以转载 2010-02-26 17:33:00 · 2180 阅读 · 0 评论 -
OpenGL 二次曲面
原 文:Lesson 18: Quadrics译 者:sakura 二次曲面是一种画复合对象的方法,这种方法通常并不需要很多的三角形。我们将要使用第七课的代码。我们将要增加7个变量以及修改纹理以增加一些变化 : #include // Header File For Windows #include // Header F转载 2010-02-26 17:22:00 · 2366 阅读 · 0 评论 -
OpenGL 雾
原 文:Lesson 16: Cool Looking Fog译 者:sakura 难道你不想把“雾”加入到你的OpenGL程序中吗?那么在这课里我将要为您展现如何实现这项功能。这是我第一次写教程,而且相对来说我也是OpenGL/C++程序设计新手,所以如果您发现有什么错误的话,请让我知道。这课的代码是基于第7课的。 数据设定 我们将要设定我们用来保存关于雾的信息的所有变量。变量fo转载 2010-02-26 17:23:00 · 1952 阅读 · 0 评论 -
OpenGL 显示列表
原 文:Lesson 12: Display Lists 译 者:Marhoo 这次我将教你如何使用显示列表,显示列表将加快程序的速度,而且可以减少代码的长度。 当你在制作游戏里的小行星场景时,每一层上至少需要两个行星,你可以用OpenGL中的多边形来构造每一个行星。聪明点的做法是做一个循环,每个循环画出行星的一个面,最终你用几十条语句画出了一个行星。每次把行星画到屏幕上都是很困难的。当转载 2010-02-26 17:24:00 · 1509 阅读 · 0 评论 -
OpenGL 飘动的旗
原 文:Lesson 11: OpenGL Flag Effect译 者:CKER 大家好!对那些想知道我在这里作了些什么的朋友,您可以先按文章的末尾所列出的链接,下载我那毫无意义的演示(Demo)看看先!我是bosco,我将尽我所能教您来实现一个以正弦波方式运动的图象。这一课基于NeHe的教程第六课,当然您至少也应该学会了一至六课的知识。您需要下载源码压缩包,并将压缩包内带的data目录连转载 2010-02-26 17:25:00 · 2817 阅读 · 1 评论 -
OpenGL 纹理滤波方式
原 文:Lesson 7: Texture Filters, Lighting & Keyboard Control译 者:CKER 这一课我会教您如何使用三种不同的纹理滤波方式。教您如何使用键盘来移动场景中的对象,还会教您在OpenGL场景中应用简单的光照。这一课包含了很多内容,如果您对前面的课程有疑问的话,先回头复习一下。进入后面的代码之前,很好的理解基础知识十分重要。我们还是在第一课的转载 2010-02-26 17:28:00 · 3429 阅读 · 0 评论 -
OpenGL 漫游3D世界
原 文:Lesson 10: Loading And Moving Through A 3D World译 者:CKER 这一课是由Lionel Brits(βtelgeuse)所写的。在本课中我们只对增加的代码做解释。当然只添加课程中所写的代码,程序是不会运行的。如果您有兴趣知道下面的每一行代码是如何运行的话,请下载完整的源码,并在浏览这一课的同时,对源码进行跟踪。 好了,现在欢迎来到名转载 2010-02-26 17:25:00 · 2761 阅读 · 2 评论 -
OpenGL教程之旋转
原 文:Lesson 4: Rotation译 者:CKER 上一课中我教给您三角形和四边形的着色。这一课我将教您如何将这些彩色对象绕着坐标轴旋转。 其实只需在上节课的代码上增加几行就可以了。下面我将整个例程重写一遍。方便您知道增加了什么,修改了什么。我们增加两个变量来控制这两个对象的旋转。这两个变量加在程序的开始处其他变量的后面(bool fullscreen=TRUE;下面的两行)。它转载 2010-02-26 17:30:00 · 1901 阅读 · 0 评论 -
OpenGL 着色
原 文:Lesson 3: Colors译 者:CKER 上一课中我教给您三角形和四边形的绘制方法。这一课我将教您给三角形和四边形添加2种不同类型的着色方法。使用单调着色(Flat coloring)给四边形涂上固定的一种颜色。使用平滑着色(Smooth coloring)将三角形的三个顶点的不同颜色混合在一起,创建漂亮的色彩混合。 继续在上节课的DrawGLScene例程上修改。下面将整转载 2010-02-26 17:32:00 · 1781 阅读 · 0 评论 -
OpenGL 第一个多边形
文:Lesson 2: Your First Polygon译 者:CKER 第一课中,我教您如何创建一个OpenGL窗口。这一课中,我将教您如何创建三角形和四边形。我们讲使用来创建GL_TRIANGLES一个三角形,GL_QUADS来创建一个四边形。 在第一课代码的基础上,我们只需在DrawGLScene()过程中增加代码。下面我重写整个过程。如果您计划修改上节课的代码,只需用下面的代码转载 2010-02-26 17:32:00 · 1732 阅读 · 0 评论 -
OpenGL基本框架
/******************************by CRACKER007*******************************/ BOOL CGdlg::InitialPixelFormat() //此函数被后面的CreateRC调用{ static PIXELFORMATDESCRIPTOR pfd= { sizeof(PIXELFORMATDESC转载 2010-03-03 14:49:00 · 2044 阅读 · 0 评论 -
VS 2008 OpenGL 配置
最近准备学习OpenGL,结果发现敲入书中给的代码,居然提示头文件找不到,相当郁闷,查了一下才发现有些不是VC自带的,需要自己下载安装,以下为转帖,感觉说的还算详细,OpenGl大牛们,就略过此文好了,呵呵OpenGL作为当前主流的图形API之一,它在一些场合具有比DirectX更优越的特性。1、与C语言紧密结合。OpenGL命令最初就是用C语言函数来进行描述的,对于学习过C语言的人来讲,Op转载 2010-03-01 15:52:00 · 1627 阅读 · 0 评论 -
VC OpenGL框架
//窗口及OpenGL所使用的库的头文件#include //视窗头文件#include #include #include //定义程序中计划使用的所有变量HWND hWnd=NULL; //得到窗口的句柄HDC hDC=NULL; //私有的GDI设备环境HGLRC hRC=NULL; /转载 2010-03-03 14:51:00 · 2364 阅读 · 1 评论 -
GLUT库与GLAUX库
GLUT库 为了在初期简化编程负担,可以使用独立于平台的GLUT库,在网上可以找到库、源文件、说明书,基于GLUT的WINDOWS应用程序是WIN32 CONSOL程序,主程序是int main(int,void **),在其中可以只用两三行打开一个窗口,并以填写几个回调函数的方式实现程序功能,省掉了与窗口系统打交道的麻烦。另外,该库是做跨平台应用的首选,它在几乎所有的平台上都可用。目前还没有找转载 2010-03-03 14:56:00 · 6366 阅读 · 5 评论 -
VC6.0 VS2008 openGL环境配置
一、下载并安装glut库 opengl的glut库 GLUT不是OpenGL所必须的,但它会给我们的学习带来一定的方便,推荐安装。 Windows环境下的GLUT下载地址:(大小约为150k) http://www.opengl.org/resources/libraries/glut/glutdlls37beta.zip Windows环境下安装GLUT的步骤: 1、将下载的压缩包解开,转载 2010-03-01 15:41:00 · 5928 阅读 · 4 评论 -
3ds模型在OpenGL中的读取和重绘
1、引言 OpenGL是一种强大的三维图形开发工具,是图形硬件的软件接口,它由大约250个命令组成,用户通过这些命令指定创建交互式2D或3D程序所需的几何对象和操作.从本质上说,它是一个3D图形和模型库,独立于操作系统和硬件环境,具有高度的可移植性,并且具有非常快的速度.OpenGL严格按照计算机图形学原理设计而成,符合光学和视觉原理,可以创建极其逼真的3D图像,许多三维演示系统都用 Ope转载 2010-03-04 17:11:00 · 2809 阅读 · 2 评论 -
OpenGL图形管线和坐标变换
OpenGL图形管线和坐标变换OpenGL Rendering Pipeline & Coordinate Transformation 1. 引言 学习计算机图形学首先要搞清楚计算机图形渲染管线。当今两大图形API,OpenGL和Direct3D都有自己的渲染管线。但是对于刚刚接触计算机图形学的同学来说,“图形管线”这个抽象的概念很是不好理解。在CSDN论坛中转载 2010-03-04 17:16:00 · 1883 阅读 · 0 评论 -
利用OpenGL进行模型表现
这篇文章介绍一下用OpenGL来表现模型对象。比如用3DMAX等工具做好一个模型后,我们希望能够在自己的程序中使用它。一般使用这些工具的导出功能导出特定的文件,然后读取其中我们感兴趣的部分,再把这些感兴趣的数据在我们的程序中组织好就可以了。利用OpenGL来表现静态模型是很简单的。这里为了简单起见,模型对象文件为txt文本,只包含了模型的顶点个数,面个数,顶点坐标,索引信息。当然在一些复杂的模转载 2010-03-04 17:14:00 · 1386 阅读 · 1 评论 -
深入理解OpenGL拾取模式(OpenGL Picking)
在用OpenGL进行图形编程的时候,通常要用鼠标进行交互操作,比如用鼠标点选择画面中的物体,我们称之为拾取(Picking),在网上看了很多OpenGL拾取的文章,但大多是只是介绍在OpenGL中如何拾取,如何利用OpenGL提供的一系列函数来完成拾取,最多再简单介绍下OpenGL的名字栈(Name stack),拾取矩阵(Picking Matrix)等等,但是拾取真正的原理确没有提到。所以,我转载 2010-03-04 17:15:00 · 3469 阅读 · 0 评论 -
OpenGL中的Alpha测试,深度测试,模板测试,裁减测试
1、剪裁测试剪裁测试用于限制绘制区域。我们可以指定一个矩形的剪裁窗口,当启用剪裁测试后,只有在这个窗口之内的像素才能被绘制,其它像素则会被丢弃。换句话说,无论怎么绘制,剪裁窗口以外的像素将不会被修改。有的朋友可能玩过《魔兽争霸3》这款游戏。游戏时如果选中一个士兵,则画面下方的一个方框内就会出现该士兵的头像。为了保证该头像无论如何绘制都不会越界而覆盖到外面的像素,就可以使用剪裁测试。可以通过下面的代转载 2010-03-17 10:35:00 · 1627 阅读 · 0 评论 -
OpenGL是一个状态机
前一段时间里,论坛有位朋友问什么是状态机。按我的理解,状态机就是一种存在于理论中的机器,它具有以下的特点:1. 它有记忆的能力,能够记住自己当前的状态。2. 它可以接收输入,根据输入的内容和自己的状态,修改自己的状态,并且可以得到输出。3. 当它进入某个特殊的状态(停机状态)的时候,它不再接收输入,停止工作。理论说起来很抽象,但实际上是很好理解的。首先,从本质上讲,我们现在的电脑就是典型的状态机。转载 2010-03-17 10:39:00 · 5581 阅读 · 0 评论 -
OpenGL版本和OpenGL扩展
OpenGL从推出到现在,已经有相当长的一段时间了。其间,OpenGL不断的得到更新。到今天为止,正式的OpenGL已经有九个版本。(1.0, 1.1, 1.2, 1.2.1, 1.3, 1.4, 1.5, 2.0, 2.1)每个OpenGL版本的推出,都增加了一些当时流行的或者迫切需要的新功能。同时,到现在为止,OpenGL是向下兼容的,就是说如果某个功能在一个低版本中存在,则在更高版本中也一定转载 2010-03-17 10:40:00 · 1728 阅读 · 0 评论 -
从“绘制一个立方体”来看OpenGL的进化过程
呵呵,绘制一个立方体,简单呀,我们学了第一课第二课,早就会了。先别着急,立方体是很简单,但是这里只是拿立方体做一个例子,来说明OpenGL在绘制方法上的改进。从原始一点的办法开始一个立方体有六个面,每个面是一个正方形,好,绘制六个正方形就可以了。glBegin(GL_QUADS); glVertex3f(...); glVertex3f(...);转载 2010-03-17 10:41:00 · 1597 阅读 · 0 评论 -
OpenGL 在Windows系统中显示文字
本课我们来谈谈如何显示文字。OpenGL并没有直接提供显示文字的功能,并且,OpenGL也没有自带专门的字库。因此,要显示文字,就必须依赖操作系统所提供的功能了。各种流行的图形操作系统,例如Windows系统和Linux系统,都提供了一些功能,以便能够在OpenGL程序中方便的显示文字。最常见的方法就是,我们给出一个字符,给出一个显示列表编号,然后操作系统由把绘制这个字符的OpenGL命令装到指定转载 2010-03-17 10:42:00 · 2233 阅读 · 0 评论 -
OpenGL 函数库
glAccum 操作累加缓冲区 glAddSwapHintRectWIN 定义一组被SwapBuffers拷贝的三角形 glAlphaFunc允许设置alpha检测功能 glAreTexturesResident 决定特定的纹理对象是否常驻在纹理内存中 glArrayElement 定义一个被用于顶点渲染的数组成分 glBegin,glEnd 定义一个或一组原始的顶点 glBindTexture转载 2010-03-17 10:43:00 · 1265 阅读 · 0 评论 -
OpenGL 纹理的使用入门
1、启用纹理和载入纹理就像我们曾经学习过的OpenGL光照、混合等功能一样。在使用纹理前,必须启用它。OpenGL支持一维纹理、二维纹理和三维纹理,这里我们仅介绍二维纹理。可以使用以下语句来启用和禁用二维纹理: glEnable(GL_TEXTURE_2D); // 启用二维纹理 glDisable(GL_TEXTURE_2D); // 禁用二维纹理使用纹理前,还必须载转载 2010-03-17 10:44:00 · 6103 阅读 · 0 评论 -
OpenGL BMP文件与像素操作
学过多媒体技术的朋友可能知道,计算机保存图象的方法通常有两种:一是“矢量图”,一是“像素图”。矢量图保存了图象中每一几何物体的位置、形状、大小等信息,在显示图象时,根据这些信息计算得到完整的图象。“像素图”是将完整的图象纵横分为若干的行、列,这些行列使得图象被分割为很细小的分块,每一分块称为像素,保存每一像素的颜色也就保存了整个图象。这两种方法各有优缺点。“矢量图”在图象进行放大、缩小时很方便,不转载 2010-03-17 10:45:00 · 2481 阅读 · 0 评论