当物体放大缩小时导致投影在上面的纹理也随着变化,OpenGL为了 优化其细节使其效果更好,因此可以采用纹理过滤
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);

GL_TEXTURE_MAG_FILTER GL_NEAREST或GL_LINEAR
GL_TEXTURE_MIN_FILTER GL_NEAREST 速度快,效果差
GL_LINEAR  计算量大。效果好
GL_NEAREST_MIPMAP_NEAREST 速度快,效果差
GL_LINEAR_MIPMAP_NEAREST
GL_NEAREST_MIPMAP_LINEAR
GL_LINEAR_MIPMAP_LINEAR 计算量大。效果好

GL_NEAREST是点采样,GL_LINEAR 是双线性采样,GL_LINEAR_MIPMAP_LINEAR三线性采样

     

命名纹理空间
void glGenTextures (GLsizei n, GLuint *textures);

判断纹理是否已绑定
GLboolean glIsTexture (GLuint textureName);

创建和使用纹理对象
void glBindTexture (GLenum target, GLuint texture);

清除纹理对象
void glDeleteTextures (GLsizei n, GLuint *textures);

常驻纹理工作集
有些OpenGL实现支持高性能的纹理工作集,称为常驻纹理,一般情况下,这些OpenGL实现具有专门的硬件来执行纹理操作,使用
GLboolean glAreTexturesResident (GLsizei n, const GLuint *textures, GLboolean *residences);判断纹理是否是常驻纹理
如果OpenGL实现并没有建立高性能工作集,那么纹理总被认识是常驻的

常驻纹理策略
如果常驻纹理足够,绝不应该访问非常驻纹理,如果常驻纹理资源有限,将经常使用的放入常驻纹理,同时减少所使用的纹理图像的大小,分辨率以及mipmap层数量,或者使用glTexSubImage*()函数反复使用同一块纹理内存

可以设置纹理的优先级。使经常用的纹理能够有更多的机会的形成常驻纹理,当常驻纹理资源紧张时可以移除哪些低优先级的纹理单元
void glPrioritizeTextures (GLsizei n, const GLuint *textures, const GLclampf *priorities);

如果几个纹理对象具有相同的优先级,OpenGL一般会采用最近最少使用策略来选择哪些纹理单元该被移除常驻纹理

OpenGL学习十九:纹理过滤相关推荐

  1. OpenGL(十九)——Qt OpenGL波动纹理(旗子的飘动效果)

    OpenGL(十九)--Qt OpenGL波动纹理(旗子的飘动效果) 一.场景 在日常的项目中,我们经常会实现波动的一些纹理效果,比如飘动的旗子,水的波纹,地图上某一点的波浪圈圈等...,本篇介绍波动 ...

  2. NeHe OpenGL第十九课:粒子系统

    NeHe OpenGL第十九课:粒子系统 粒子系统: 你是否希望创建爆炸,喷泉,流星之类的效果.这一课将告诉你如何创建一个简单的例子系统,并用它来创建一种喷射的效果. 欢迎来到第十九课.你已经学习了很 ...

  3. NeHe OpenGL第二十九课:Blt函数

    NeHe OpenGL第二十九课:Blt函数 Blitter 函数: 类似于DirectDraw的blit函数,过时的技术,我们有实现了它.它非常的简单,就是把一块纹理贴到另一块纹理上. 这篇文章是有 ...

  4. PyTorch框架学习十九——模型加载与保存

    PyTorch框架学习十九--模型加载与保存 一.序列化与反序列化 二.PyTorch中的序列化与反序列化 1.torch.save 2.torch.load 三.模型的保存 1.方法一:保存整个Mo ...

  5. OpenGL学习(九)阴影映射(shadowMapping)

    目录 写在前面 阴影映射原理简介 封装 Camera 类 帧缓冲 阴影映射 准备工作 创建帧缓冲与深度纹理附件 从光源方向进行渲染 正常地渲染场景 如何查找bug(⚠重要) 多纹理传送 查看深度纹理数 ...

  6. 强化学习(十九) AlphaGo Zero强化学习原理

    在强化学习(十八) 基于模拟的搜索与蒙特卡罗树搜索(MCTS)中,我们讨论了MCTS的原理和在棋类中的基本应用.这里我们在前一节MCTS的基础上,讨论下DeepMind的AlphaGo Zero强化学 ...

  7. 鸿蒙Hi3861学习十九-DevEco Device Tool源码获取、编译、下载

    一.简介 在上一篇文章中,已经讲述了如何在Windows通过Remote SSH远程连接Linux下的DevEco Device Tool.这篇文章,来说一下关于源码的获取.编译与下载.建议先按照上一 ...

  8. 什么是python的第三方库_python学习(十九)常见的第三方库

    介绍几个python中常见的第三方库. Pillow Pillow简称PIL,是python中常用的图形图像处理模块.写一个简单的例子 1 2 3 4 5 6 7 8 9 10 11 12 13 14 ...

  9. OpenGL进阶(十九) - 多光源

    从光说起 先看一段wiki中对光的定义 光是一种人类眼睛可以见的电磁波(可见光谱),视知觉就是对于光的知觉[1].光只是电磁波谱上的某一段频谱,一般是定义为波长介于400至700纳米(nm)之间的电磁 ...

最新文章

  1. AI视频行为分析系统项目复盘——技术篇3:tensorRT技术梳理
  2. Xilinx IP核之FIFO
  3. POJ - 1185 炮兵阵地(状压dp)
  4. VS2010 VC Project的default Include设置
  5. Django-04-路由系统
  6. vscode的eslint无效_VSCode配置eslint
  7. nginx负载php导致时间不一致,nginx – 为什么php-fpm会产生并在没有服务器负载的情况下每秒摧毁数百个孩子?...
  8. latext配置 vscode_VScode 配置为 LaTeX IDE
  9. 渗透测试——XP工具练习
  10. C#连接数据库PostSQL-NpgSQL
  11. 如何在WordPress中使用SEO写作助手来改善SEO
  12. PC安装Mac系统详解
  13. 使用 TICS Pro 配置时钟芯片
  14. 中国人民银行招聘计算机考什么,求中国人民银行招聘计算机专业人员的考试题。...
  15. Python基础 - 20210425 - 基础(命名规范,注解,基础语法)
  16. 理解和解决requireJS的报错:MODULE NAME HAS NOT BEEN LOADED YET FOR CONTEXT
  17. Pymol一些命令及使用小技巧
  18. html之div中id和class的区别
  19. 原装苹果手机_“苹果”手机换个屏水这么深!嘉兴警方揭开“原装屏”背后真相...
  20. zepto 的touch 、event

热门文章

  1. C语言中的puts()、putchar()、printf()
  2. mac安装mysql方法
  3. 以太网以及车载以太网概述
  4. linux系统时间显示错误的是,教你解决linux操作系统时间错误
  5. Sexagenary Cycle(天干地支法表示农历年份)
  6. linux 易语言窗口程序_用易语言开发Linux程序的方法
  7. 基于Python的百度AI人脸识别API接口(可用于OpenCV-Python人脸识别)
  8. SwiftUI Mapkit 导航基础教程大全之 MKMapView地图显示并实现导航线路(教程含源码)
  9. Hive 与 Hbase表映射(内部表与外部表),Hbase常用命令
  10. PHP redis key