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度全方位图像~ 此图像最大 阅读详情

相关推荐

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

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

让思绪飞一会儿~ 4510

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

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

他山随悟的专栏 7819

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

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

xcaise的专栏 2749

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

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

金戈鐡馬 1172

OpenGL织梦之旅【第三章】第2节.循环显示图片

这节我们将读取几个图片,生成一个纹理集,然后让程序循环显示图片。       为了方便,我直接把图片的数量和每个图片的名字保存在一个txt文档里面,方便程序地读取。       如:         在init函数中,打开data.txt,读取图片的数量和图片的名字,然后调用LoadBitmap函数,把所生成的纹理保存在一个容器vector中,然后在Update函数中,控制显示的

仰望圣光的plusplus7 1137

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

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

BitLordX的博客 246

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万+

PyQt的OpenGL Widget部件:功能介绍与图片显示

在上面的代码中,我们定义了一个名为MyGLWidget的类,它继承自OpenGL的QGLWidget类。其中,OpenGL Widget部件是PyQt中的一个重要组成部分,它提供了在Qt应用程序中显示OpenGL渲染结果的能力,从而使开发者可以通过OpenGL渲染实现更加绚丽的界面效果。最后,通过运行这个应用程序,您就可以在窗口中看到我们加载的图片,同时也可以通过OpenGL来实现更加复杂的图形效果。本文将介绍如何使用PyQt中的OpenGL Widget部件来显示图片,并提供相应的源代码示例。

2301_78484069的博客 1421

Android P OpenGL之显示图片

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

Sunxiaolin2016的博客 1900

OpenGL读取、显示bmp图片

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

glwidget_QT_用QT的opengl显示图片_

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

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的专栏 1686

5分钟搞懂SCMA:稀疏码多址接入的核心原理与实战应用

本文深入浅出地解析了SCMA(稀疏码多址接入)的核心原理与实战应用。通过对比传统正交多址技术,阐释了SCMA如何通过非正交叠加和稀疏码本设计,实现远超资源单元数的用户接入,从而有效应对5G海量机器通信(mMTC)的挑战。文章还探讨了其在上行海量连接、免授权接入等场景的应用潜力及工程实现中的关键考量。

zeta9的博客 264

opengl 显示图片以及保存图片

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

lcbwlx的专栏 5951

core_analyzer分析c++程序内存占用

环境:centos; 进程:单进程多线程c++程序; 问题:1. 分析系统内存占用; 2. 分析ptmalloc内存空洞(bins上的空闲chunk的大小); 包括:1. 占用了很大内存的c++进程; 2. gcore(在进程不core dump的情况下生成core文件); 3. core_analyzer(分析gcor...

weixin_41644391的博客 4811

基于 openEuler 24.03 LTS 源码编译安装 Zabbix 7.4

Zabbix是一款开源的企业级分布式监控系统,支持网络、服务器、应用等多种IT资源的监控。核心功能包括数据采集、告警通知、可视化展示等,采用Server/Agent架构,支持多种操作系统。本文详细介绍了在openEuler 24.03系统上部署Zabbix 7.4.2的完整流程,包括环境准备、MySQL配置、PHP/Apache安装、Zabbix编译安装等步骤,为构建企业级监控系统提供了实践指导。

广然笔记 1191

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

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

qq_15024587的博客 4124

Revit二次开发——不启动Revit,做rvt文件数据导出

Revit二次开发——不启动Revit,做rvt文件数据导出Node.js部分调用C#端供外部调用的dllC#部分调用RevitNet.dll,做数据导出exe做外部调用dll总结功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 N

Y.Jerome的专栏 4110

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

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

keshi9934的博客 2760

DMTF相关协议(一):Redfish和SMBIOS

Redfish 是一种管理标准,使用超媒体 RESTful 接口中的数据模型表示。该模型以标准的、机器可读的模式表示,消息的有效负载以 JSON 表示。该协议本身利用了 OData v4。由于它是一个超媒体 API,因此能够通过一致的接口表示各种实现。它具有管理数据中心资源、处理事件、长时间任务和发现的机制。

weixin_44032634的博客 2264

麒麟系统grub被锁怎么办?双密码遗忘救援指南(实测V10 SP3版本)

本文详细介绍了麒麟系统V10 SP3版本在GRUB和root密码双遗忘情况下的救援指南。通过ISO镜像进入救援模式,结合单用户模式操作,实现密码重置与系统权限恢复,特别适用于等保合规环境。

385

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

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

走向远方 1万+

银河麒麟V10系统下VLC播放器安装全攻略(附3.0.9.2版本离线包下载)

本文详细介绍了在银河麒麟V10操作系统无网络环境下,从零开始编译安装VLC 3.0.9.2播放器的完整攻略。通过构建本地YUM仓库解决依赖问题,提供离线资源包下载,并逐步指导完成编译环境配置、软件编译与安装,帮助用户在国产麒麟系统上成功部署强大的多媒体播放能力。

a2b3c4d5e的博客 1201

android 图片ndk,【OpenGL】Android NDK与OpenGL显示png图片(native方式)

Android NDK与OpenGL显示png图片(native方式)NDK使用:libpng-1.6.15 + zlib-1.2.8 Android.mk# Copyright (C) 2009 The Android Open Source Project## Licensed under the Apache License, Version 2.0 (the "License");# yo...

weixin_30465829的博客 379

【论文复现】——基于NDT与ICP结合的点云配准算法(matlab版)

基于NDT与ICP结合的点云配准算法matlab版

点云侠的博客 490

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

上一篇: OPENGL文字显示
下一篇: OpenGL 3ds模型显示
programking
博客等级 码龄23年 450粉丝 140原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值