
opengl
Frozen2022
这个作者很懒,什么都没留下…
展开
-
glSwapInterval函数
khronos给出的解释:设置前/后缓冲区交换的v-blank数目。如,glSwapInterval参数为1,则GPU等待1个v-blank再交换前/后缓冲区。v-blank的含义:对于光栅扫描显示器,与vertical blanking interval (VBI)或vertical interval含义相同,指它是从一帧的最后一条可见线的结束到下一帧的第一条可见线的开始之间的时间。 它存在于模拟电视、VGA、DVI等信号中。在光栅阴极射线管显示器中,V-Blank指空白电平期间,以避免绘原创 2022-05-05 08:48:29 · 486 阅读 · 0 评论 -
代理纹理的作用
使用glGet*可以获取GL_MAX_TEXTURE_SIZE/GL_MAX_3D_TEXTURE_3D/...在当前显卡实现中的确切数值。但最大值仅限于当前显卡资源充裕时的最大值。在具体的3D应用中,往往都会大量请求显卡资源。当应用程序动态请求大纹理(如显卡性能测试程序模块)时,例如:在支持OpenGL 4的环境中,使用glTexStorage*申请internalformat为GL_RGBA8,宽为16384,高为16384的非mipmap纹理是,可以预先计算纹理需要的字节为(4*16384*1原创 2022-02-03 06:24:07 · 1868 阅读 · 0 评论 -
片段着色器的textureCube得到的总是黑色
光线追踪计算的法线正确的前提下,必须保证:客户端使用的6张纹理必须为同样尺寸的。虽然使用6张不同的纹理载入到GL_TEXTURE_CUBE_MAP中,不会报错。但在shader中结果就是黑色。原创 2021-11-25 21:54:40 · 2137 阅读 · 0 评论 -
glsl中point sprite大小设置
如果client激活glEnable(GL_PROGRAM_POINT_SIZE);那么,在vertex shader中的gl_PointSize默认为glPointSize指定的大小,并且可以修改。如果不激活GL_PROGRAM_POINT_SIZE,那么只能使用glPointSize指定的大小原创 2021-11-14 02:49:31 · 648 阅读 · 0 评论 -
正弦波顶点着色器
uniform float fElpaseTime;uniform float fXCoef, fZCoef;uniform float fHeight;void main(){ vec4 vecTemp = gl_Vertex; vecTemp.y = gl_Vertex.y + fXCoef*sin(nElpaseTime + fXCoef*gl_Vertex.x) + fXCoef*sin(nElpaseTime + fXCoef*gl_Vertex.z); gl_Positio.原创 2021-09-17 00:09:39 · 151 阅读 · 0 评论 -
glTexImage2D的internalFormat和format的区别
Theformat(7th argument), together with thetypeargument, describes thedatayou pass in as the last argument. So theformat/typecombination defines the memory layout of thedatayou pass in.internalFormat(2nd argument) defines the format that OpenGL...原创 2021-09-14 14:17:05 · 888 阅读 · 0 评论 -
标架与坐标系的区别
标架=坐标系+参考点(原点)。也就是:在基向量组中增加一 个参考点(称为原点), 从而构成一个标架。原创 2021-09-06 10:44:18 · 2087 阅读 · 0 评论 -
glColorMaterial 和 glMaterial 的区别
直接代码说明吧。1、在使用(固定管线的)光照后,这2个函数才生效glEnable( GL_LIGHTING );/// 设置光源属性///...2、使用glMaterial指定3D模型的材质,以环境光颜色为例glm::vec4 ambientColor(1.0f,0.0f,0.0f,1.0f);glMaterialfv( GL_FRONT_AND_BACK, GL_AMBIENT, &ambientColor.x );3、与2等价的效果:使用glColorMateri.原创 2020-07-07 19:42:15 · 1955 阅读 · 0 评论 -
OpenGL 屏幕坐标系与世界坐标系的相互转换
转自nehe的教程:Using gluUnProjecthttp://nehe.gamedev.net/article/using_gluunproject/16013/CVector3 GetOGLPos(int x, int y){ GLint viewport[4]; GLdouble modelview[16]; GLdouble projection[1...原创 2020-01-04 08:31:57 · 5292 阅读 · 0 评论 -
固定管线的glBegin/glVertex/glNormal/glTexCoord/glColor等函数后调用glGetError返回GL_INVALID_OPERATION
原因:glBegin和glEnd之间只能调用顶点属性等相关函数,glGetError不可调用,GL_INVALID_OPERATION指的是glGetError操作无效。gBegin的文档说明如下(以微软的MSDN的GL1.1为例)You can use only a subset of OpenGL functions betweenglBeginandglend. The ...原创 2019-09-29 08:11:21 · 532 阅读 · 0 评论 -
OpenGL 矩阵变换
Overview几何数据——顶点位置,和标准向量(normal vectors),在OpenGL 管道raterization 处理过程之前可通过顶点操作(Vertex Operation)和基本组合操作改变这些数据。Object Coordinates对象的本地坐标系——任何变换之前的最初位置.为了变换(transformation)这些对象,可以调用glRotate(),glT...转载 2017-11-30 22:49:24 · 412 阅读 · 0 评论