OpenGL显示图片

OpenGL实现全景图(SkyBox和Hdri双实现方式) 球形全景图和立方体全景图是OpenGL中用于模拟环境映射的两种技术。球形全景图通过将图像映射到球面来创建,使用`envSampleLOD`函数根据方向向量采样HDR纹理,实现环境光照效果。立方体全景图则将图像映射到立方体的六个面上,通常使用`textureCube`函数进行采样。两者都能提供逼真的反射和光照效果,但立方体全景图在内存使用和性能上更为高效。 阅读详情

显示一个正方形位图文件pictest.bmp。
举例:
 LoadT8("images/pictest.bmp", iTex);
 glTranslatef(0,0,-10);
 texture(iTex); 
 tPic(3.0f);

 

附:各个函数的源码:
//绘制正方形
void tPic(float e)
{
 glBegin(GL_QUADS);
  glTexCoord2f(0.0f, 0.0f); glVertex3f(-e, -e,  0.0f);
  glTexCoord2f(1.0f, 0.0f); glVertex3f( e, -e,  0.0f);
  glTexCoord2f(1.0f, 1.0f); glVertex3f( e,  e,  0.0f);
  glTexCoord2f(0.0f, 1.0f); glVertex3f(-e,  e,  0.0f);
 glEnd();
}
//加载位图
bool LoadT8(char *filename, GLuint &texture)

 AUX_RGBImageRec *pImage = NULL;
 
 //加载图片内容
 pImage = auxDIBImageLoad(filename); 
 if(pImage == NULL) 
  return false;
 
 //创建纹理
 glGenTextures(1, &texture);  
 glBindTexture    (GL_TEXTURE_2D,texture);
 //生成2维映射
 gluBuild2DMipmaps(GL_TEXTURE_2D,4, 
       pImage->sizeX,   
       pImage->sizeY, 
       GL_RGB, GL_UNSIGNED_BYTE,
       pImage->data   
      );
 //释放内存
 free(pImage->data);     
 free(pImage); 
 return true;     
}
//绑定纹理
void texture(UINT textur)
{
 //绑定纹理
 glBindTexture  (GL_TEXTURE_2D, textur);
 //指定贴图方式和滤波方式
 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP);
 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP);
 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER,

GL_LINEAR_MIPMAP_NEAREST);
}
(感谢《学OPENGL编3D游戏》课件 来自www.gameres.com

openGL ES进阶教程(二)之全景图片 全景又被称为3D实景,是一种新兴的富媒体技术,其与视频,声音,图片等传统的流媒体最大的区别是“可操作,可交互”。 全景分为虚拟现实和3D实景两种。虚拟现实是利用maya等软件,制作出来的模拟现实的场景,代表有虚拟紫禁城等;3D实景是利用单反相机或街景车拍摄实景照片,经过特殊的拼合,处理,让作者立于画境中,让最美的一面展现出来。全景顾名思义就是给人以三维立体感觉的实景360度全方位图像~ 此图像最大 阅读详情

相关推荐

QT+OpenGL读取显示图片

GLuint readImage(char *filename) {     GLuint tex_id;     GLint alignment;     QImage tex, buf;     buf.load(filename);     tex = QGLWidget::convertToGLFormat( buf );     glBindTexture( GL_TEXT

鸟语的专栏 1万+

OpenGL读取、显示bmp图片

测试环境:xcode13.3 MacPro13-inch2020 M1 OpenGL版本:OpenGL 4.5 语言:c++17 测试图片格式:bmp 建议: 1.先完成xcode配置OpenGL工程环境,网上有教程。 2.本程序支持读取任意分辨率的bmp图片,并显示

使用OpenCV 读取图片 ,再用OpenGL显示,图像有错位

今天做Kinect跟踪的时候需要读取

让思绪飞一会儿~ 4503

glwidget_QT_用QT的opengl显示图片_

用QT的opengl显示图片,一个类的定义文件。

使用OpenGL实现等矩形环境贴图

等矩形环境贴图(Equirectangular Map)是一种将全景图像映射到二维平面上的方式,其中图像中心被映射到平面的中心,其他像素则按照经纬度坐标映射到平面上。在OpenGL中,将等矩形环境贴图应用到三维场景中可以实现完美的360度全景效果。上述代码将环境贴图映射到天球上,并通过片段着色器实现渲染效果,其中“worldPos”表示天球上的顶点位置,使用Geodesic Sphere进行生成。接下来,我们将介绍如何使用OpenGL实现等矩形环境贴图。首先,我们需要了解什么是等矩形环境贴图

BitLordX的博客 245

openGL之glsl入门7上--添加鱼眼及全景球面纹理

理解纹理可以先看一下第四章的例子,第四章例子使用片元着色器直接显示图片(1080p图片),做法是先确定矩形的顶点坐标,矩形包含1920*1080个顶点,每个顶点与一个像素对应,这种方法虽然能显示图片,但缺点非常明显,效率低、绘制麻烦、缩放效果差等。     理论上来说所有的模型都可以使用顶点+顶点颜色的方式绘制出来,这样的话,制作模型就太麻烦,纹理正是为了解决该问题而出现的,使用纹理,较少的工

他山随悟的专栏 7811

FFmpeg结合OpenGL ES实现3D全景播放器

我们已经利用 FFmpeg + OpenGLES + OpenSLES 实现了一个多媒体播放器,本文将基于此播放器实现一个酷炫的 3D 全景播放器。

金戈鐡馬 1170

Android P OpenGL显示图片

使用OpenGL显示一张图片。 工程源码:https://github.com/sunxiaolin2016/OpenglOne GLImageHandler GLImageHandler中封装了图片显示的方法. NO_FILTER_VERTEX_SHADER和NO_FILTER_FRAGMENT_SHADER 分别是顶点着色器程式和片段着色器程式。 init(),OpenGL初始化操作,创建着色...

Sunxiaolin2016的博客 1895

opengl + opencv 显示图片

opencv读取一张图片,然后在opengl窗口进行显示. img_src = cv::imread(cam_data_filename.at(cam_data_filename.size() / 2)); cv::Mat img_src_pyup; cv::pyrDown(img_src, img_src_pyup, cv::Size(img_src.cols / 2, img_src.ro...

chengde6896383的专栏 1681

opengl 显示图片以及保存图片

opengl贴图功能是很基本的,不过也难住了我这个新手,所以特意写了一个示例程序,以便以后查阅。 程序很简单,只是在在 x, y 平面画一个框,然后贴上一张图。并且可以保存opengl窗口到图片。 //本程序的目的是展示贴图和保存图片 #include #include #include #include #include using namespace cv

lcbwlx的专栏 5949

android中用GLSurfaceview和opengl es2.0显示图片图片无法正常显示

想用GLSurfaceView配合OPENGL es2.0编程实现把图片显示到手机界面中,照着网上的例子,自己在eclipse中敲了一遍,但是就是无法显示图片(试过128*128的png和bmp),就显示出一个白色的界面。 网上找了下,没找到原因,求大神给看看。 代码如下: package com.example.glsurfaceview_drawpicture; impo

keshi9934的博客 2756

openGL使用纹理贴图显示图片的时候,出现图片上下颠倒的情况,解决方案

在学习opengl纹理题图的时候,使用stb_image加载jpg文件,出现了图片显示出现颠倒的情况,如下图所示 出现这种情况的原因是,在默认的情况下。std_image是从图片的最后一行进行存储。 所以在显示图片的时候需要将图片进行翻转。 解决方案: 1. 翻转定点信息中的纹理图标 float vertices[] = { // positions ...

qq_15024587的博客 4119

显示一张图片开始学习OpenGL ES

前言 网上很多介绍OpenGL ES的文章,但由于OpenGL ES内容太多,所以这些文章难免过于臃肿杂乱,很难抓住重点,对于初学者来说最后还是云里雾里。很多人(包括笔者本人)开始深入了解OpenGL ES是因为其涉及到实时滤镜的应用,通常都会参考开源框架GPUImage的实现。如果没有掌握基本的OpenGL Es的开发知识,很难弄懂其中代码缘由。 目前很流行的短视频特效处理也有涉及到Open...

走向远方 1万+

opengl es 绘图图像 保存为图片。读取并显示图片,添加在layer上

背景色为透明时也适用。。。见到过一种保存方式,如果opengl透明度打开时,背景色设为透明而保存的是黑色。。 这个方法则完全ok。 //保存成图片 - (UIImage*)cropImage { NSInteger myDataLength = self.bounds.size.width*self.bounds.size.height*4 ; GLubyte * buffe

xcaise的专栏 2744

OpenGL--环境贴图

CubeMap 立方体贴图:将多个纹理组合起来映射到一个单一纹理。 这样做可以使用方向向量索引和采样。 Skybox 6张图组成一个cubemap 采样:立方体中心位于坐标系原点,天空盒上的每个位置向量就是立方体这个位置对应的纹理值。 深度测试:把skybox输入位置的z用w替换,使其深度永远为1,然后在绘制时改变深度测试方程GL_LEQUAL,这样深度为1的天空盒也可以通过测试。 Environment mapping 环境映射 反射(Reflect): 根据观察方向和法线向量,计算出反射向量,使用这个反

men_tou的博客 575

OpenGL:读取图片显示

由于OpenGL没有直接读取jpg、bmp、png等图像格式的函数,需借助其他工具将图像文件读取转化为内存信息。相对C++的文件读取函数,我更习惯使用简便的OpenCV图像读取 #include <gl/glut.h> #include <opencv2/opencv.hpp> #include <iostream> using namespace std; using namespace cv; #define WindowWidth 400 #define W

己亥谷雨 4995
上一篇: OPENGL文字显示
下一篇: OpenGL 3ds模型显示
programking
博客等级 码龄23年 450粉丝 140原创
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值