OpenGL
文章平均质量分 83
小哈龙
一颗勇往直前的心
展开
-
OpenGL用Polygon Offset解决z-fighting和stitching
在OpenGL中,如果想绘制一个多边形同时绘制其边界,可是先使用多边形模式GL_FILL绘制物体,然后使用多边形模式GL_LINE和不同的颜色再次绘制这个多边形。但是由于直线和多边形的光栅化方式不同,导致位于同一位置的多边形和直线的深度值并不相同,进而导致直线有时在多边形的里面,有时在多边形的外面,这种现象就是"Stiching"。转载 2024-03-29 15:48:37 · 26 阅读 · 0 评论 -
glPushMatrix/glPopMatrix简介及示例(在不同位置绘制图形)
例如,在调用 glTranslatef(1.0, 0.0, 0.0) 之后,当前矩阵会被更新成平移矩阵,在调用glRotatef(30, 0.0, 1.0, 0.0)之后,当前矩阵会被更新成旋转矩阵。在绘制圆柱体时,需要对每个圆柱体进行不同的平移和旋转变换,所以需要使用glPushMatrix()函数将当前矩阵压入栈中,这样可以保证每个圆柱体之间互不影响。glPushMatrix() 函数将当前矩阵复制一份并压入栈中,这样就可以在之后的操作中使用栈顶的矩阵进行变换而不会影响之前的变换。转载 2024-02-01 14:23:12 · 149 阅读 · 0 评论 -
OpenGL深度测试
深度其实就是该像素点在3D世界中距离观察者的距离—Z值。深度缓存区,就是⼀块内存区域,专⻔门存储着每个像素点(绘制在屏幕上的)深度值。转载 2023-05-15 16:42:17 · 449 阅读 · 1 评论 -
基本图形绘制方式比较(glBegin,glCallList,glVertexPointer,VBO)
原文链接:https://blog.csdn.net/wangdingqiaoit/article/details/38920103OpenGL学习脚印: 基本图形绘制方式比较写在前面 本节主要讨论OpenGL下基本图形(points, lines, triangles, polygons, quads, fans and strips)的绘制方式,比较传统和现代绘制方式的区别。本文整理自网络,保留了部分原文,参考资料部分列出了主要参考内容。本节示例代码在vs2012下测试通过转载 2022-06-07 16:50:07 · 609 阅读 · 0 评论 -
OpenGL的版本历史和发展
从未停止!OpenGL的版本历史和发展由于本文的内容过长,在Chrome浏览器下可能不能完全显示,建议使用IE或者FireFox阅读本文。来源请注明,本文永久地址为从未停止!OpenGL的版本历史和发展 - YangZhao1992 - 博客园OpenGL®作为业界最为广泛使用的2D和3D图形接口标准,应用在成千上万的各式各样的计算机的程序中。从初期的崭露头角,到与Direct3D激烈竞争,后经历黯淡被Khronos接手又发扬光大,已经历经波折发展了20年。由于过去的黯淡,至今甚至仍有人站在转载 2022-02-16 17:12:38 · 4458 阅读 · 1 评论 -
glDeleteTextures函数对内存的优化
函数介绍void glDeleteTextures( GLsizei n, const GLuint * textures);从字面意思来理解,该函数是用来删除纹理的。通过官方文档是这样介绍的:glDeleteTextures deletes n textures named by the elements of the array textures. After a texture is deleted, it has no contents or dimensionality, and i.转载 2021-08-06 19:06:10 · 709 阅读 · 0 评论 -
OpenGl图元基本操作之点选高亮
一.点选高亮简介在使用各种方式(GDI,Opengl,occ等)绘图时,显示区域的图元的选择是需要使用另外一种区分的,这个就是基本的高亮,点选是指单独的鼠标点击一下就选中坐标附近的一个图元,然后将该图元以一种独特的醒目的颜色显示就是点选高亮。二.Opengl实现点选高亮的思路我最近在整理Opengl1.1版本的一些操作,因此关于这里说的点选高亮也是基于opengl1.1版本的,就是windows系统下默认支持的版本,其它高版本应该都有更加简洁的实现方式,在这里不做讨论。要实现点选高亮,我认为原创 2021-07-27 12:00:04 · 1221 阅读 · 0 评论 -
Opengl1.1绘图之GL_COLOR_LOGIC_OP
一.GL_COLOR_LOGIC_OP简介关于1.1版本的Opengl,可以直接在MSDN查阅,如下:如果启用,则将当前逻辑操作应用于传入的RGBA颜色和颜色缓冲区值。如果在绘图时启用该选项,则当前绘图颜色索引会与帧缓存区中的对应位置的颜色索引做逻辑运算,即像素颜色值之间的逻辑运算,根据指定的逻辑运算将当前颜色索引值与帧缓冲区中的对应位置的颜色索引值做逻辑运算后生成新的颜色索引值,这个新的颜色索引值既是最终保存在帧缓存区中的颜色索引值,然后将帧缓冲区刷新到界面显示。二.GL_CO...原创 2021-07-27 11:08:13 · 529 阅读 · 0 评论 -
OpenGL二维纹理映射(2D textures)
本文转载自:https://blog.csdn.net/wangdingqiaoit/article/details/51457675感谢原作者分享,在这里转载学习,收获很大写在前面 前面两节介绍了向量和矩阵,以及坐标和转换相关的数学,再继续讨论模型变换等其他包含数学内容的部分之前,本节介绍二维纹理映射,为后面学习做一个准备。纹理映射本身也是比较大的主题,本节只限于讨论二维纹理的基本使用,对于纹理映射的其他方法,后面会继续学习。可以从我的github下载本节代码。通过本节可以了解到纹理映射的转载 2021-07-15 17:35:21 · 2384 阅读 · 0 评论 -
OpenGL纹理操作--glGenTextures
一.glGenTexture函数简介glGenTextures(GLsizei n, GLuint *textures)函数说明n:用来生成纹理的数量textures:存储纹理索引的glGenTextures函数根据纹理参数返回n个纹理索引。纹理名称集合不必是一个连续的整数集合。(glGenTextures就是用来产生你要操作的纹理对象的索引的,比如你告诉OpenGL,我需要5个纹理对象,它会从没有用到的整数里返回5个给你)glBindTexture实际上是改变了OpenGL...转载 2021-07-13 11:14:18 · 1215 阅读 · 0 评论 -
你所不知道的 AI 进展
声明:本文转载自http://www.ruanyifeng.com/blog/2019/10/artificial-intelligenence.html本文只做学习交流使用人工智能现在是常见词汇,大多数人可能觉得,它是学术话题,跟普通人关系不大。但是实际上,AI 突飞猛进,正在脱离实验室,进入日常生活。仅仅是现在的技术水平,就足以模糊现实与虚拟的界限,颠覆一般民众的认知。(...转载 2019-11-27 14:46:55 · 482 阅读 · 0 评论 -
关于齐次坐标的理解
问题:两条平行线可以相交于一点在欧氏几何空间,同一平面的两条平行线不能相交,这是我们都熟悉的一种场景。然而,在透视空间里面,两条平行线可以相交,例如:火车轨道随着我们的视线越来越窄,最后两条平行线在无穷远处交于一点。欧氏空间(或者笛卡尔空间)描述2D/3D几何非常适合,但是这种方法却不适合处理透视空间的问题(实际上,欧氏几何是透视几何的一个子集合),2维笛卡尔坐标可以表示为(x,y)。如果...转载 2019-10-18 15:04:40 · 223 阅读 · 0 评论 -
何为仿射变换(Affine Transformation)
变换模型是指根据待匹配图像与背景图像之间几何畸变的情况,所选择的能最佳拟合两幅图像之间变化的几何变换模型。可采用的变换模型有如下几种:刚性变换、仿射变换、透视变换和非线形变换等,如下图:参考:http://wenku.baidu.com/view/826a796027d3240c8447ef20.html其中第三个的仿射变换就是我们这节要讨论的。仿射变换(Affine Tr...转载 2019-10-17 18:05:39 · 2566 阅读 · 0 评论 -
3D图形原理和一些基本概念
这篇或者接下来的一系列文章都是我阅读《OpenGL超级宝典》第五版后的个人总结。第一,2D与3D有什么关系。2D就是我们平常在纸上画矩形之类的,他们只有宽度和高度。而3D比2D多一个深度。真实世界中,由于我们的双眼的存在,看到的是3D世界。即使你遮住一只眼,由于光线照射产生的表面着色和近大远小的缘由,这些效果激发了我们大脑的记忆,这使得我们观察到的仍是3D世界。那对于在屏...转载 2019-08-29 10:52:27 · 4590 阅读 · 0 评论 -
opengl在windows中使用最新的opengl
前面的例子,介绍了如何在Windows下仅使用VS或SDK自带库创建OpenGL环境的方法和例子。微软开发OpenGL的历史如此之短,之后就全力开发自己的亲儿子:DirectX。从此之后Windows平台对OpenGL的内置支持就停留在OpenGL 1.1版。当然,在Vista之后,微软甚至开发了一个OpenGL到DirectX的转换层,支持到OpenGL 1.4,这使得系统在没有安装支持Ope...转载 2019-08-20 14:58:44 · 3209 阅读 · 1 评论 -
windows下OpenGL开发前准备
Windows为了发展其本身的DirectX,只支持OpenGL1.1,可是至2013年5月,OpenGL已更新到4.3版本。 如何能够让Windows支持更高版本的OpenGL? 显卡可能可以从硬件上直接实现更高版本的OpenGL的相关函数。 查看显卡支持的OpenGL版本的方法,glGetString(GL_VERSION); 查看支持的相关扩展:glGetString(...转载 2019-08-20 14:53:14 · 235 阅读 · 0 评论 -
OpenGL原理介绍
在网上看见一篇介绍Opengl原理的文章,感觉对自己的理解很有帮助,转载学习,感谢原作者的分享!原文章链接:http://www.twinklingstar.cn/2015/1532/introduce-to-opengl/代码下载地址:https://github.com/twinklingstar20/twinklingstar_cn_demo_introduce_to_openg...转载 2019-08-20 10:05:57 · 611 阅读 · 0 评论