glGenerateMipmap 是否在 sRGB 纹理的线性空间中执行平均?

2024-04-20

OpenGL 3.3 规范似乎没有要求 mipmap 生成在线性空间中完成。我能找到的只有以下内容:

派生的 mipmap 数组的内部格式都与 levelbase 数组和派生数组的维度如下 第 3.8.14 节中描述的要求。的内容 派生数组是通过重复、过滤减少来计算的 水平基数组。对于一维和二维数组纹理,每个 层被独立过滤。没有特定的过滤算法 必需的,但建议使用盒式过滤器作为默认过滤器。

我知道如果原始图像是 sRGB 格式,调用 glGenerateMipMap 的结果是 sRGB 格式,我对此没有问题。但中间会发生什么?当然,我们不想对对数刻度上的颜色进行平均。这是特定于实现的吗?


相关答案可以在OpenGL规范第3.8.17节中找到:

3.8.17 sRGB纹理颜色转换

如果当前绑定的纹理的内部格式是SRGB、SRGB8、SRGB_ALPHA之一, SRGB8_ALPHA8、COMPRESSED_SRGB 或 COMPRESSED_SRGB_ALPHA、 红色、绿色和蓝色分量是从 sRGB 色彩空间转换为 线性色彩空间作为过滤的一部分分节描述3.8.11 and 3.8.12。任何 alpha 分量保持不变。理想情况下,实现应该执行此操作 在过滤之前对每个样本进行颜色转换,但允许实施

Mipmap 生成在第 3.8.11 节中进行了描述,因此受到颜色空间线性化的影响。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

glGenerateMipmap 是否在 sRGB 纹理的线性空间中执行平均? 的相关文章

  • 如何用SDL2和OpenGL画三角形?

    我正在使用 C 中的 SDL2 和 OpenGL 开发一个简单的应用程序 问题是我的程序没有绘制三角形 Rect hpp 绘制三角形的类 ifndef Rect hpp define Rect hpp include
  • OpenGL:仅使用一个帧缓冲区并切换目标纹理

    我是否可以只创建一个帧缓冲区对象并通过在需要时切换其目标纹理来实现相同的结果 而不是使用多个帧缓冲区对象 在所有情况下这都是一个坏主意吗 如果是 为什么 我一直在实现一个功能render SetTargetTexture 在我的程序的 AP
  • LWJGL 窗口具有透明背景?

    我想创建一个没有 黑色背景 区域的窗口 但您可以看到任何其他打开的窗口等 也就是说 渲染场景并且仅渲染场景 不留框架 不留背景区域 我读过一种方法 该方法涉及渲染到隐藏的 OpenGL 窗口并将其缓冲在内存中 创建透明分层窗口以及从内存复制
  • glGenerateMipmap 是否在 sRGB 纹理的线性空间中执行平均?

    OpenGL 3 3 规范似乎没有要求 mipmap 生成在线性空间中完成 我能找到的只有以下内容 派生的 mipmap 数组的内部格式都与 levelbase 数组和派生数组的维度如下 第 3 8 14 节中描述的要求 的内容 派生数组是
  • 着色器/矩阵问题 - 看不到对象

    我试图在屏幕上放置一个立方体并点亮它 我想要在立方体上添加 phong 阴影 当我运行代码时 我可以看到背景图像 但看不到立方体 我相当确定立方体本身是正确的 因为我已经设法用纯色着色器显示它 我已经设法编译着色器程序 但我根本看不到立方体
  • 将glm四元数转换为旋转矩阵并与opengl一起使用

    所以我将对象的方向存储在 glm fquat 中 我想用它来旋转我的模型 我怎么做 我试过这个 glPushMatrix glTranslatef position x position y position z glMultMatrixf
  • iOS glGenerateMipmap 是同步的,还是可能是异步的?

    我正在开发一个在 OpenGL ES 中使用大纹理的 iPad 应用程序 当场景首次加载时 我在天花板上看到了几帧的大型黑色伪像 如下图所示 就好像更高级别的 mipmap 尚未填充 在后续帧中 天花板正确显示 当我开始使用 mipmapp
  • 没有着色器的 OpenGL

    我已经阅读了一些教程来编写以下代码 唯一的区别是原始教程使用 SDL 而不是 GLEW 我不明白这段代码有什么问题 它可以编译 但我没有看到三角形 教程也没有使用着色器 include
  • 使用 openGL、SOIL 加载图像

    我尝试了很多使用 SOIL 在 openGL 中加载和显示图像的示例 运行下面的源代码时 它仅显示一个没有图像的白色四边形 我尝试打开一个名为 foto 的图像 我将图像文件放在程序的文件夹中 bool keyStates new bool
  • OpenGL 说“from_param 收到了一个不连续的数组”

    安装 Yosemite 后 我必须升级 numpy PyOpenGL 等 现在 以前运行的程序给了我以下堆栈跟踪 file latebind pyx line 44 in OpenGL accelerate latebind Curry c
  • OpenGL 的每个组件 alpha 通道?

    是否可以使用 OpenGL 对每个组件使用一个 alpha 通道 一个用于红色 一个用于绿色 一个用于蓝色 进行混合 如果没有 有哪些可能的解决方法 这不是直接支持的东西 不过 您自己实现起来相当容易 使用 3 通道 alpha 纹理渲染三
  • CPU 到 GPU 法线映射

    我正在创建一个地形网格 然后这个答案 https stackoverflow com a 5284527 1356106我正在尝试将 CPU 计算法线迁移到基于着色器的版本 以便通过降低网格分辨率并使用在片段着色器中计算的法线贴图来提高性能
  • 三角形未在 OSX 上的 OpenGL 2.1 中绘制

    我正在学习有关使用 OpenGL 在 Java 中创建游戏引擎的教程 我正在尝试在屏幕上渲染一个三角形 一切运行良好 我可以更改背景颜色 但三角形不会显示 我还尝试运行作为教程系列的一部分提供的代码 但它仍然不起作用 教程链接 http b
  • OpenGL 和加载/读取 AoSoA(混合 SoA)格式的数据

    假设我有以下 AoSoA 格式的简化结构来表示顶点或点 struct VertexData float px 4 position x float py 4 position y 也就是说 每个实例VertexData存储4个顶点 我见过的
  • OpenGL:调试“单通道线框渲染”

    我正在尝试实现论文 单通道线框渲染 它看起来很简单 但它给了我所期望的厚暗值 论文没有给出计算海拔高度的确切代码 所以我按照自己认为合适的方式进行了操作 代码应该将三个顶点投影到视口空间中 获取它们的 高度 并将它们发送到片段着色器 片段着
  • OpenGL z轴指向哪里?

    我正在尝试了解 OpenGL 坐标系 我到处都看到它被描述为右撇子 但这与我的经验不符 我尝试绘制一些形状和 3 d 对象 我发现 z 轴显然指向 屏幕 而 x 指向右侧 y 指向上方 这是左手坐标系的描述 我缺少什么 编辑 例如 http
  • 即使在顶点着色器中使用,glGetUniformLocation()也会返回-1

    我正在尝试用法线渲染一个简单的立方体 我使用以下代码来初始化着色器 void initShader const char vertexShaderPath const char fragmentShaderPath cout lt lt I
  • 如何以编程方式从 mipmap 文件夹加载图像? [复制]

    这个问题在这里已经有答案了 如何从 加载图像mipmap以编程方式保存文件夹 与可绘制对象一样 img setImageResource imageId 我使用的是Android Studio 1 2 1 In 安卓工作室我们有mipmap
  • 在 GLUT 中使用鼠标滚轮

    我想在 OpenGL GLUT 程序中使用鼠标滚轮来放大和缩小场景 我怎么做 Freeglut 的 glutMouseWheelFunc 回调与版本相关 并且在 X 中不可靠 使用标准鼠标功能并测试按钮 3 和 4 OpenGlut 对 g
  • 为什么拥有单独的投影矩阵但结合模型和视图矩阵会有好处?

    当您学习 3D 编程时 您会被告知用 3 个变换矩阵来思考是最简单的 模型矩阵 该矩阵对于每个模型都是独立的 它根据需要旋转和缩放对象 最后将其移动到 3D 世界中的最终位置 模型矩阵将模型坐标转换为世界坐标 视图矩阵 对于大量对象 如果不

随机推荐

  • 设置AlertBox标题栏背景颜色

    如何更改警报框标题栏的背景颜色 AlertDialog Builder alert new AlertDialog Builder getParent alert setTitle sample alert show 最简单的方法是通过创建
  • 如果从析构函数调用构造函数会发生什么?

    从 destruct 调用 construct 函数 它会产生无限循环吗 不 但这会 class Test public function construct echo Hi public function destruct new Tes
  • 不变违规:requireNativeComponent:在 UIManager 中找不到“RCTView”

    当我从开发菜单启动远程 js 调试并在 Android 模拟器中重新加载我的 React Native 应用程序时 会出现此错误 Invariant Violation requireNativeComponent RCTView was
  • IE7 与我的 jQuery 相关的问题 [点击并更改功能]

    我有以下代码片段 基本上我想做的是在第一次单击函数中循环遍历缓存的 JSON 数据并显示该 id 存在的任何值 在第二个更改函数中 每当其中一个元素更改值时 即从是到否 反之亦然 我都会捕获 这些元素都是通过我从 Web 服务接收到的 JS
  • 在 C# 中创建值列表的快速方法?

    我正在寻找一种在 C 中创建值列表的快速方法 在 Java 中 我经常使用下面的代码片段 List
  • 从控制台应用程序同步击键读取

    我想立即读取 Windows 和 Linux 下用 C 编写的控制台应用程序中的每一次击键 不幸的是 当按下 输入 返回 键时 函数 gets line 只返回一个值 我正在寻找一个在按下按键后立即返回的函数 目前我的代码看起来像这样 ch
  • 如何使用 Intel 语法内联汇编在 GCC 中设置变量?

    为什么这个代码没有设置temp到 1 我实际上该如何做到这一点 int temp asm intel syntax mov 0 eax mov eax 1 att syntax r 1 r temp eax printf d n temp
  • 对 xhtml5 感到困惑:不再有“”,现在强制使用“meta”?

    我已经是长期用户XHTML 1 0 Strict 我现在正尝试在我的新项目中切换到 XHTML5 我很困惑对于 HTML5 不再被认为是有效的http validator w3 org http validator w3 org 这是为什么
  • 我无法更新 Google App 脚本上的脚本

    我在公司使用Google App 更新脚本时经常遇到问题 当我更新我的脚本时 我在 Google 网站上的网页没有更新 而且很长一段时间 更新脚本时我必须创建一个新脚本 我可以解决这个问题吗 regards 有两种方法可以publish你的
  • 如何更轻松地在 Emacs 中的缓冲区之间切换?

    我最近开始使用 emacs 并且大部分时间我都很享受使用它 我唯一不喜欢的是在缓冲区之间切换 我经常打开一些缓冲区 并且我已经厌倦了使用C x b and C x C b 是否有任何软件包可以使缓冲区之间的切换变得更容易 我调查过emacs
  • 测试应用程序的可访问性(对讲)

    我正在使我的应用程序可访问性兼容 为此 通过在 xml 中提供 android contentDescription your string 来向可访问性框架提供正确的数据 我还看到了关于使应用程序可访问的 Android 开发人员指南 概
  • 沟通差距:用户与分析师-设计师

    通常的做法是使用案例研究 构建工作流和数据流等 但这并不一定会在用户 发起者和分析师 设计者之间创建共享词汇表 通常 其中一方都必须获得其他专业领域 内部 的术语和观点 这通常会导致误解和澄清会议 进入 RAD 技术 如进化原型 等 用户
  • 在Java中声明布尔变量的正确方法是什么?

    我刚刚开始学习Java 在我关注的在线课程中 我被要求尝试以下代码 String email1 email protected cdn cgi l email protection String email2 email protected
  • Sklearn LogisticRegressionCV 的类似数组的输入

    最初 我从a读取数据 csv文件 但在这里我从列表构建数据框 以便可以重现问题 目的是使用交叉验证来训练逻辑回归模型LogisticRegressionCV indeps M F M F M M F M M F F F F F M F F
  • 使用 Numpy for Python 创建 cx_Freeze exe

    我正在尝试使用 cx Freeze 创建一个基本的 exe 它适用于没有 numpy 的 py 程序 但我无法使用 numpy 正确制作一个程序 有想法该怎么解决这个吗 我需要在 setup py 中包含一些内容吗 当我去运行 exe 时
  • 更改传单归属控制位置

    我在我的应用程序中使用 WebView 来显示传单地图 在 HTML 文件中 我有以下制作人员和链接 L tileLayer https api tiles mapbox com v4 id z x y png access token x
  • 使用 LLVM 为整个源代码生成 CFG

    LLVM 社区的任何人都知道是否有一种方法可以使用以下方法为整个输入源代码生成 CFG opt dot cfg foo ll bc 由于此函数为每个函数生成 CFG 因此函数之间的连接将被忽略 看来旧的分析工具已经贬值了 我想知道你是否找到
  • 使用 highcharts 在堆栈标签中显示特定系列值

    这是我正在处理的内容 http jsfiddle net josip0423 prJjY 171 http jsfiddle net josip0423 prJjY 171 过去几个小时我一直在努力解决这个问题 但一无所获 我对 javas
  • C# 异步操作

    实际上我很难理解 BeginInvoke 和 EndInvoke 对 class AsynchronousDemo public delegate void DemoDelegate static void Main DemoDelegat
  • glGenerateMipmap 是否在 sRGB 纹理的线性空间中执行平均?

    OpenGL 3 3 规范似乎没有要求 mipmap 生成在线性空间中完成 我能找到的只有以下内容 派生的 mipmap 数组的内部格式都与 levelbase 数组和派生数组的维度如下 第 3 8 14 节中描述的要求 的内容 派生数组是