opengl 贴图

Opengl之立方体贴图 简单来说,,每个2D纹理都组成了:一个有纹理的立方体。你可能会奇怪,这样一个立方体有什么用途呢?为什么要把6张纹理合并到一张纹理中,而不是直接使用6个单独的纹理呢?立方体贴图有一个非常有用的特性,它可以通过一个方向向量来进行。假设我们有一个1x1x1的单位立方体,方向向量的原点位于它的中心。 阅读详情
#include "stdafx.h"
/*
 * Copyright (c) 1993-1997, Silicon Graphics, Inc.
 * ALL RIGHTS RESERVED 
 * Permission to use, copy, modify, and distribute this software for 
 * any purpose and without fee is hereby granted, provided that the above
 * copyright notice appear in all copies and that both the copyright notice
 * and this permission notice appear in supporting documentation, and that 
 * the name of Silicon Graphics, Inc. not be used in advertising
 * or publicity pertaining to distribution of the software without specific,
 * written prior permission. 
 *
 * THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU "AS-IS"
 * AND WITHOUT WARRANTY OF ANY KIND, EXPRESS, IMPLIED OR OTHERWISE,
 * INCLUDING WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY OR
 * FITNESS FOR A PARTICULAR PURPOSE.  IN NO EVENT SHALL SILICON
 * GRAPHICS, INC.  BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DIRECT,
 * SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY
 * KIND, OR ANY DAMAGES WHATSOEVER, INCLUDING WITHOUT LIMITATION,
 * LOSS OF PROFIT, LOSS OF USE, SAVINGS OR REVENUE, OR THE CLAIMS OF
 * THIRD PARTIES, WHETHER OR NOT SILICON GRAPHICS, INC.  HAS BEEN
 * ADVISED OF THE POSSIBILITY OF SUCH LOSS, HOWEVER CAUSED AND ON
 * ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE
 * POSSESSION, USE OR PERFORMANCE OF THIS SOFTWARE.
 * 
 * US Government Users Restricted Rights 
 * Use, duplication, or disclosure by the Government is subject to
 * restrictions set forth in FAR 52.227.19(c)(2) or subparagraph
 * (c)(1)(ii) of the Rights in Technical Data and Computer Software
 * clause at DFARS 252.227-7013 and/or in similar or successor
 * clauses in the FAR or the DOD or NASA FAR Supplement.
 * Unpublished-- rights reserved under the copyright laws of the
 * United States.  Contractor/manufacturer is Silicon Graphics,
 * Inc., 2011 N.  Shoreline Blvd., Mountain View, CA 94039-7311.
 *
 * OpenGL(R) is a registered trademark of Silicon Graphics, Inc.
 */
 
#include <GL/glut.h>
#include <stdlib.h>
#include <stdio.h>
 
 
static GLuint texName;
 
uchar* pData;
void init(void)
{
   glClearColor (0.0, 0.0, 0.0, 0.0);
   glEnable(GL_DEPTH_TEST);
   glEnable(GL_TEXTURE_2D);
   glShadeModel(GL_SMOOTH);
 
   glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
 
   glGenTextures(1, &texName);
   glBindTexture(GL_TEXTURE_2D, texName);

   glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
   glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
   glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);


   glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 4096, 4096, 0,
                GL_RGBA, GL_UNSIGNED_BYTE, pData);
   glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
}
 
void display(void)
{
   glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
   glPushMatrix ();
   glBindTexture(GL_TEXTURE_2D, texName);

   glBegin(GL_QUADS);
   {
     glTexCoord2f(0.0f, 0.0f); glVertex3f(0.0f,	0.0f,	0.0f);
     glTexCoord2f(1.0f, 0.0f); glVertex3f(1.0f,	0.0f,	0.0f);
     glTexCoord2f(1.0f, 1.0f); glVertex3f(1.0f,	1.0f,	0.0f);
     glTexCoord2f(0.0f, 1.0f); glVertex3f(0.0f,	1.0f,	0.0f);
   }
   glEnd();
   glPopMatrix ();
   glFlush();
}
 
void reshape(int w, int h)
{
   glViewport(0, 0, (GLsizei) w, (GLsizei) h);
   glMatrixMode(GL_PROJECTION);    
   glLoadIdentity();              
   gluOrtho2D(0, 1, 0, 1);
   glMatrixMode(GL_MODELVIEW);     
   glLoadIdentity();
}
 
void processNormalKeys(unsigned char key,int x,int y) 
{ 
  if(key==27) 
    exit(0); 
} 
int main(int argc, char** argv)
{
   Mat m = imread("BG.jpg");
   cvtColor(m, m, CV_BGR2RGBA);
   pData = m.data;
   glutInit(&argc, argv);
   glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB | GLUT_DEPTH);
   glutInitWindowSize(512, 512);
   glutInitWindowPosition(100, 100);
   glutCreateWindow (argv[0]);
   //glutIdleFunc( idle );
   init ();
   glutDisplayFunc(display);
   glutReshapeFunc(reshape);
   glutKeyboardFunc(processNormalKeys);
   glutMainLoop();
   return 0;
}

OpenGL纹理贴图 OpenGL纹理1. 基本概念2. 纹理环绕方式3. 纹理过滤3.1 GL_NEAREST3.2 GL_LINEAR3.3 多级渐远纹理 (Mipmap)4. 纹理加载与创建4.1 纹理加载4.2 纹理创建4.3 纹理的使用 1. 基本概念 纹理是一个2D图片(甚至也有1D和3D的纹理),它可以用来表示物体的细节特征,希望绘制一个有足够多细节的物体,当然可以用足够多的顶点颜色来描述,但是无疑也增加了许多额外的开销;另一种办法就是使用纹理。 学习之前先展示一张实现的纹理图以更好理解纹理! 还是这张图为了将纹 阅读详情

相关推荐

【OpenGL】纹理贴图实例-棋盘

简单的纹理贴图实例,来学习OpenGL的功能 //main.h #if !defined_MAIN_H_ #define _MAIN_H_ #include #define WIDTH 64 #define HEIGHT 64 GLubyte Image[WIDTH][HEIGHT][4]; static GLuint texName; GLint WinWidth; GLint Win

lafay626的博客 5433

"opengl编程指南第七版源码(网上下载的)"makefile中的一处错误

您好。最近学习opengGL。从网上下载了《openg编程指南第七版》和书中的源代码。在ubuntu上编译运行。源代码的makefile文件中有一处错误。 错误在于:必要条件中不能使用自动变量。 GNU.Make.项目管理.pdf pag37 make会在规则与它的工作目标和必要条件相符之后设定自动变量,所以自动变量只能应用在规则中的命令脚本部分。

woniupengpeng的专栏 1089

Qt+OpenGL之纹理贴图

NeNe的代码中是加载到了一个正方体当中,代码很长。其实单纯的想要纹理贴图是很方便的。具体的纹理贴图技术在NeNe的书中的有很详细的介绍。 .h文件: #ifndef PICGLWIDGET_H #define PICGLWIDGET_H #include #include #include #include #include class PicGLWidget : pu

Jcy 7275

kdump crash

查看kdump状态为failed。 重启kdump服务失败,原因未知。 安装crash:sudo yum install crash 运行测试: [yubo.wang@localhost 4g-box]$ sudo crash a.out [sudo] password for yubo.wang: crash 7.2.3-8.el7 Copyright (C) 200...

TSZ0000的博客 1760

OpenGL视差贴图

参考: https://learnopenglcn.github.io/05%20Advanced%20Lighting/05%20Parallax%20Mapping/ 视差贴图(Parallax Mapping)技术和法线贴图差不多,但它有着不同的原则。 和法线贴图一样视差贴图能够极大提升表面细节,使之具有深度感。它也是利用了视错觉,然而对深度有着更好的表达,与法线贴图一起用能够产生难以置信的...

qq_44800780的博客 539

OpenGL Cube Map立方体贴图的实例

OpenGL Shadow Mapping阴影贴图先上图,再解答。完整主要的源代码源代码剖析 先上图,再解答。 完整主要的源代码 #include "vermilion.h" #include "vapp.h" #include "vutils.h" #include "vbm.h" #include "vmath.h" #include <stdio.h> BEGIN_APP_DECLARATION(CubeMapExample) // Override functions from

希望我的博客,能帮上你解决学习中工作中所遇到的问题 564

没有x86的apk安装到x86会崩溃吗_ceph存储 Linux内核分析coredump文件内核代码崩溃

一、分析Core文件1.1 找到core文件目录,启动crash:crash(命令:crash /usr/lib/debug/usr/lib/kernels/xxx/vmlinux /etc/crash/xxxx/core-dump)1.2 查看崩溃的堆栈信息:bt1.3 反汇编崩溃点的代码,向后10行:dis -l extract_http_info+73 10二、分析源文件hinfo.ko2....

weixin_39593469的博客 690

基于QOpenGLWidget类的图片贴图自适应更新显示Demo

编译环境Qt5.12.7MSVC2017

【Linux】Ubuntu Remove Unnecessary User Dirs form Files

【代码】【Linux】Ubuntu Remove Unnecessary User Dirs form Files。

天天向上 Up Up Up (*^▽^*) 478

百度智能云ASR实战:5分钟搞定Unity语音转文字(含完整代码)

本文详细介绍了如何在Unity中集成百度智能云ASR服务,实现高效的语音转文字功能。从环境配置、音频处理到服务端通信,提供完整代码示例和实战优化技巧,帮助开发者快速实现语音交互功能,适用于游戏开发、XR应用等场景。

ujm56789012的博客 215

立创·庐山派-K230-CanMV(嘉楠勘智)开发板通过ATK-ESP8266实现图像识别数据无线传输至原子云

本文详细介绍了如何使用立创·庐山派-K230-CanMV开发板,通过ATK-ESP8266 WIFI模块实现图像识别数据的无线传输至原子云平台。内容包括硬件连接、软件环境搭建、AT指令控制、原子云连接及数据上传的全过程,并提供了实用的调试技巧和常见问题解决方案,为物联网应用开发提供了完整实践指南。

potato的博客 741

CCClippingNode导致的贴图错误问题

此问题我的原文和解决办法: http://stackoverflow.com/questions/28367881/why-i-need-add-empty-ccclippingnode-between-each-slice-part-in-cocos2dx-2-2-6/28367882#28367882 帮助贴: http://blog.youkuaiyun.com/jusnxie/article

Zszen John 的 Blog 1084

Jetbrains IDE 配置上Gemini Code 插件,让你的的编程高效起飞~

Gemini Code Assist是 Google 家产品,基座模型为最新的Gemini 2.5 Pro。本篇实践了在 WebStrom 中Gemini Code Assist插件的高效编程。

2301_76993408的博客 4595

opengl球体_球体贴图小谈

球体贴图是老生常谈的东西了,很多时候都会遇到。选择什么方式去进行贴图,有时候也还是要考虑一番的。——ZwqXin.com第一次接触球体贴图这玩意,是课程的第三次作业的时候做的Demo(LostHeaven)。那时候恰逢汶川的地震,自己就选择了那么个祈祷与人类破坏自然的主题,一开始的场景是一个下坠并“破碎”的地球。这个地球就是最初的我的球体贴图应用物了。怀念一下,贴图参考的是NEHE第二十多课那个,...

weixin_39611031的博客 885

实战:如何通过修改VTS和HTS调整GC4653 sensor帧率(附完整计算步骤)

本文以GC4653图像传感器为例,详细解析了通过修改VTS和HTS寄存器来精确调整输出帧率的完整流程。文章深入剖析了帧率计算公式FPS = PCLK / (VTS × HTS)的核心原理,并提供了从获取寄存器参数、计算目标VTS值到系统验证的实战步骤,帮助工程师掌握独立优化Sensor性能、提升低照度画质的关键技能。

gin88的博客 338

【库卡机器人】接线步骤

准备X11插头接线,X11插头可以接入机器人外部安全回路接线,其中外部使能信号线也接在此接口上,如果机器人系统没有配置外部使能装置,那个此接口上的外部使能信号端须短接,短接规则为:20-21、23-22、31-30、33-32。持续按住使能键,保持使能上电状态,分别按住示教器右侧每个轴对应的+或-按键,测试机器人每一个轴是否能正常运行,如果一切正常,说明机器人控制正常,机器人可以正常使用。将一根黄绿色等电位线接入其中的一个接地端,并与机器人的接地端相连,使得控制柜与机器人等电位。

qq_45161762的博客 9440

OpenGL立方体贴图

OpenGL 立方贴图Copyright NVIDIA Corporation, 1999.Commercial publication in written, electronic, or other forms without expressed written permission is prohibited.Electronic redistribution for edu

OpenGL 技术 1万+

IAR9.20.4安装与注册全攻略:附资源及典型问题解决方案

本文提供IAR9.20.4的详细安装与注册指南,涵盖环境准备、安装步骤、权限设置及注册机使用技巧。针对典型问题如评估版残留、权限不足和杀毒软件拦截等,给出了具体解决方案,帮助用户顺利完成IAR开发环境的搭建与激活。

a2b3c4d5e的博客 296

【OpenGL】LearnOpenGL学习笔记26 - 视差贴图 Parallax Map

LearnOpenGL学习笔记 - 视差贴图 Parallax Map

Duo1J的随笔 1333

多天线技术:5G波束成形&空间复用&空时编码

以提升信号的可靠性。然而,在20世纪90年代中期,研究者们惊讶地发现,多天线技术不仅仅提供分集增益,还可以开启一些单天线系统无法实现的新机遇。,我们可以将信道矩阵 ( H ) 视为一个满秩矩阵,则理论上可以建立min(𝑁𝑇,𝑁𝑅)个独立的数据流,形成一个。波束成形是5G物理层的核心技术,其本质是利用多个天线来增强特定方向上的信号,同时抑制干扰方向的信号。:物理波束成形 = 🔦 类似手电筒的聚焦光束,虚拟波束成形 = 🌊 类似水波的相干叠加。随着 5G 和 6G 时代的到来,多天线技术的作用愈发重

weixin_43199439的博客 1389

AgentScope实战训练营:从零搭建一个完整的A2A Agent应用

2024年4月,Google在Google Cloud Next大会上正式提出了A2A(Agent-to-Agent)协议,这是一个开放协议,旨在让不同的AI Agent之间能够像微服务一样相互发现、相互调用。通俗地讲:A2A协议就是AI Agent世界的HTTP协议——有了它,一个Agent可以把自己的能力以标准化的方式暴露出去,另一个Agent可以无缝地发现并调用它。本文将基于阿里巴巴开源的(Apache 2.0协议),手把手带你从零搭建一个完整的A2A Agent应用。

program哲学 564

Learn OpenGL 17 立方体贴图

我们已经使用2D纹理很长时间了,但除此之外仍有更多的纹理类型等着我们探索。在本节中,我们将讨论的是将多个纹理组合起来映射到一张纹理上的一种纹理类型:立方体贴图(Cube Map)。简单来说,立方体贴图就是一个包含了6个2D纹理的纹理,每个2D纹理都组成了立方体的一个面:一个有纹理的立方体。你可能会奇怪,这样一个立方体有什么用途呢?为什么要把6张纹理合并到一张纹理中,而不是直接使用6个单独的纹理呢?立方体贴图有一个非常有用的特性,它可以通过一个方向向量来进行索引/采样。

Mr_Dongzheng的博客 1595

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Opengl实现纹理贴图

纹理贴图的步骤创建纹理对象,并为它指定一个纹理确定纹理如何应用到每个像素上启用纹理贴图功能绘制场景,提供纹理坐标和几何图形坐Tips:纹理坐标必须在RGBA模式下才能使用,在颜色索引模式下是未定义的行为一、创建纹理对象,并为它指定一个纹理static GLuint texName;glGenTextures(1, &amp;texName); //创建1个纹理对象,&amp;texName指向纹理...

Shenpotato的博客 1万+

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

openGL环境贴图

openGL系列文章目录 文章目录openGL系列文章目录前言一、代码1.主程序二、着色器程序1.顶点着色器2.片元着色器总结 前言 在照明和材质章节中,我们考虑了物体的“光泽”。然而,我们从未对非常闪亮的物体 进行建模,例如镜子或铬制品。这些物体在有小范围镜面高光的同时,还能够反射出周围 物体的镜像。当我们看向这些物品时,我们会看到房间里的其他东西,有时甚至会看到我 们自己的倒影。ADS 照明模型并没有提供模拟这种效果的方法。 不过,纹理立方体贴图提供了一种相对简单的方法来模拟(至少部分模拟)反射表面。

aoxuestudy的专栏 1978

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

opengl球体纹理贴图_球体贴图小谈

球体贴图是老生常谈的东西了,很多时候都会遇到。选择什么方式去进行贴图,有时候也还是要考虑一番的。——ZwqXin.com第一次接触球体贴图这玩意,是课程的第三次作业的时候做的Demo(LostHeaven)。那时候恰逢汶川的地震,自己就选择了那么个祈祷与人类破坏自然的主题,一开始的场景是一个下坠并“破碎”的地球。这个地球就是最初的我的球体贴图应用物了。怀念一下,贴图参考的是NEHE第二十多课那个,...

weixin_35003319的博客 3214

使用OpenGL 立方体贴图

使用OpenGL 立方体贴图 OpenGL 纹理立方体贴图类似于稍后将要研究的3D 纹理,它们都使用3 个纹理坐标访 问——通常标记为(s, t, r)——而不是我们目前为止用到的两个。OpenGL 纹理立方体贴图的另一个特性是,其中的图像以纹理图像的左上角(而不是通常的左下角)作为纹理坐标(0, 0, 0),这通常是混乱产生的源头。

aoxuestudy的专栏 2273
上一篇: gstreamer 手册
华亭真人
博客等级 码龄18年 74粉丝 20原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值