openGl
文章平均质量分 67
leonwei
腾讯专家游戏开发工程师(T12/T4-1) 《黎明觉醒》引擎组组长
展开
-
Opengl绘制数组数据与文件数据的方法与Nvidia opengl sdk辅助实现
在opengl中绘制基本的集合原语可以使用诸如gl_begin(type)。。。gl_end的方式,逐个顶点进行绘制,但是如果想绘制一个大的模型或是一个完整的场景,里面的顶点数目几十上百万,这时就不能这样逐个顶点绘制了,为此,在opengl中有从数组绘制的方式。数组绘制的基本思想:就是把所所有顶点的位置、法向等信息装入数组,并且按照一定的序列(预先排好的)绘制他们就行了,这只需要几步操作。这里面一原创 2009-03-18 12:43:00 · 4213 阅读 · 1 评论 -
Alpha To Coverage
Opengles3.0新增加了一个Alpha To Coverage的特性,这是一个对Alpha Test的优化,那么这里要搞清楚Alpha to Coverage 是个什么东西。 AlphaTest 和AlphaBlend都可以用来表现(全)透明的效果,对于草,树这种,我们会使用AlphaTest表现,把不需要显示的地方镂空处理,但是AlphaTest有一个最大的问题就是边缘的硬边,导致原创 2016-11-09 15:13:35 · 5928 阅读 · 2 评论 -
opengles中的Tessellation(曲面细分)
从opengles3.2开始,支持了一项新的特性,Tessellation Shader,这是一个新的shader,发生在顶点处理阶段,曲面细分可以在显卡上动态生成新的顶点和面,这在支持gles3.2的设备上,可以用来表现模型的lod,我们不用传输大量的顶点数据给显卡,而使显卡能够根据一定规则自动生成细节层次更多的顶点。也有应用结合高度图生成细节更加复杂的模型,因为不用再cpu这边准备高面数的模型原创 2016-10-21 16:44:23 · 4129 阅读 · 1 评论 -
OpenGLES编程思想
最近在看gles的reference,想多了解一下gles的底层,gles是opengl在khronos在嵌入式设备上的图形硬件的软件访问接口,很多东西和opengl似曾相似,但是和opengl又有很大的不同,最新的标准是gles3.2,标准文档非常长,如果不是写引擎没必要对每个接口烂熟于心,但是为了能够了解他,我对他的编程思想做个总结,最重要的是理解gles的设计思路,然后在使用的时候也必将容易找到相关接口。所以本文基本不会列出gles的每个接口,不会记录讲解每个接口,而是希望能够通过总结gles的设计思原创 2016-09-01 15:33:57 · 4925 阅读 · 4 评论 -
opengles 简要流程
ref card : https://www.khronos.org/files/opengles20-reference-card.pdf原创 2016-06-06 18:38:25 · 1014 阅读 · 0 评论 -
depth test与blend(深度测试与混合)
OpenGL中的blend在开启后,可以让开启后绘制的图形与已经绘制在帧缓存中的图形做混合,例如,先绘制a,然后开启混合,定义混合方式为使用各自的alpha,然后绘制b,那么结果应该是a与b重合的地方为两者的颜色融合效果。 但是我今天在这个地方犯了一个错误,我先绘制一个a,然后开启混合,然后在a的后面绘制了b,结果没有出现混合效果,而只是绘制了a。我后来才明白原来在opengl中深原创 2009-07-24 19:43:00 · 6117 阅读 · 0 评论 -
Opengl编程学习笔记(五)——从FRAGMENT到PIXEL(framebuffer 帧缓存)
1.帧缓存包括颜色、scissor、alpha、stencil、depth这些缓存,所以帧缓存不是一片缓存,而是所有这些缓存的组合,帧缓存它对应了屏幕上的每一个pixel(不是真正的pixel,而是一个fragment所对应的位置)的各种这些信息(颜色、ZBUFFER、等等),几何体的fragment时没有帧缓存的,帧缓存时屏幕上的,一个缓存的一位就对应一个位片面。Colorbuffer是最终原创 2009-05-12 17:32:00 · 12583 阅读 · 0 评论 -
opengl编程学习笔记(四)(纹理映射)(结合nvdia OpenglSDk 的nvimage类)
Opengl中的纹理映射(texture mapping)是它的精华部分,在opengl的书中这一章也是所有章节中最为多的,在所有的opengl技术中,关于纹理映射的技术也是最多最丰富的,同时也是被开发人员使用各种trick最多的,因为纹理映射可以做很多的工作。在opengl的书中关于纹理映射有着很多的高级话题,而在这里,我只记录关于纹理映射的基础。 在纹理矩阵中的一个元素被称为texel原创 2009-05-06 21:39:00 · 13820 阅读 · 3 评论 -
opengl编程学习笔记(三)(2D绘图)
在opengl中可以绘制二维图像,分为两种,BITMAP和image1.bitmap和image的区别有:bitmap中对图像的每个像素只存储一位(0或1),用来表示用当前颜色绘制还是不绘制,而image是图像的每个像素存储可能很多位,存储它的各个通道的颜色信息;bitmap是绘制在三位空间中的一群点,其中每个点都受各变换矩阵的影响,等同于一群Gl_begin(GL_POINTS)操作原创 2009-04-07 10:32:00 · 12332 阅读 · 0 评论 -
opengl的一些小问题
1.OPENGL渲染管线一次渲染的是一个基本图元,而不是一个OBJ或一整段draw里面的内容2.对于clip坐标系来说,z的正方向是朝里面的,opengl会把转化到clip坐标系中的再单元格外的内容剪裁,clip坐标系中的z坐标就是深度值,深度值在-1到1中,越大就越在后面。原创 2009-03-27 13:35:00 · 1733 阅读 · 0 评论 -
我的opengl编程学习(二)(混合、深度测试、雾化、多边形平移、显示列表)
12 混合混合的底层原理是:如果不开启混合,那么对于帧缓存中的同样一个片断,后来的颜色将会覆写原有的颜色,而开启混合,则会在后来的颜色到来时利用混合因子重新计算该颜色而不是简单的覆写。其中后来的颜色叫做源颜色,而缓存中原来存在的颜色叫做目的颜色。glEnable(GL_BLEND)打开混合开关,这样ALPHA值就可能会起作用了(如果你使用这个作为因子的话)用 glBlendFunc()原创 2009-03-27 12:46:00 · 3858 阅读 · 0 评论 -
我的opengl编程学习(一)(简介、绘制图像、三维观察、光照)
这是我第二次学习OPENGL,第一次学习是在大二的计算机图形学课堂上,那是对opengl只是走马观花,现在过了两年,我打算把opengl进行新一编完整而系统的学习,有三个目的:1.熟练掌握opengl编程,2从opegl的体系中加深对计算机图形渲染管线的整个体系的了解,作为深入学习GPU编程的进阶,3.制作好看的CG作品。这里是我在学习《opengl programming guide fif原创 2009-03-27 12:23:00 · 6755 阅读 · 2 评论 -
Unity3d中渲染到RenderTexture的原理,几种方式以及一些问题
虽然RenderTexture这个技术是个普遍使用的技术,但是用好它还是要理解他的底层原理和避免一些使用的问题。这里就UNITY3d中的RenderTexure介绍Rendertexture的底层原理和使用时可能遇到的坑和效率问题。原创 2017-02-10 18:24:46 · 76249 阅读 · 18 评论