8.13 OpenGL纹理和采样器:立方体贴图纹理选择

立方体贴图纹理选择 Cube Map Texture Selection

当对立方体贴图纹理进行采样时,s、t、r 纹理坐标被视为从立方体中心发出的方向向量 rx、ry、rz。q 坐标被忽略。在纹理应用时,插值的每个片段方向向量根据最大幅度坐标方向(主轴方向)选择立方体贴图面的二维图像之一。如果两个或更多坐标具有相同的幅度,则实现可以定义规则以消除这种情况的歧义。该规则必须是确定性的,并且仅依赖于 rx、ry、rz。表8.19中的目标列解释了主轴方向如何映射到特定立方体贴图目标的二维图像。

无缝立方体贴图过滤 Seamless Cube Map Filtering

无缝立方体贴图过滤可以通过调用 Enable 或 Disable 函数,并指定目标为 TEXTURE_CUBE_MAP_SEAMLESS 来启用或禁用。

当无缝立方体贴图过滤功能被禁用时,新的(s t)坐标将依据第 8.14 至 8.15 节中的规则,在已确定的面的二维图像中查找纹理值。

当无缝立方体贴图过滤功能被启用时,第 8.14 至 8.15 节中关于纹理像素选择的规则将会调整,使得纹理环绕模式被忽略。替代规则如下:

• 如果在某一 mipmap 层级内部执行最近邻(NEAREST)过滤,始终应用 CLAMP_TO_EDGE 环绕模式。

• 如果在某一 mipmap 层级内部执行线性(LINEAR)过滤,始终应用 CLAMP_TO_BORDER 环绕模式。然后,

  • 如果纹理采样位置位于 u 或 v 方向的纹理边界内,则从相应相邻面选取对应的纹理像素。

  • 如果纹理采样位置同时位于 u 和 v 方向的纹理边界内(即立方体的一个顶点处),没有唯一相邻面可供提取单个纹理像素。推荐的方法是取可用的三个样本的平均值来生成此纹理像素。然而,只要当这三个可用样本值相同时,这个纹理像素也具有相同值,那么实现也可以采用其他方式构造这个第四纹理像素。

所需的系统状态是一个比特位,用于指示是否启用了无缝立方体贴图过滤功能。初始状态下,该功能是禁用的。

相关推荐
郝学胜-神的一滴6 小时前
中级OpenGL教程 009:用环境光告别模型死黑
前端·c++·unity·godot·图形渲染·opengl·unreal
charlie1145141911 天前
通用GUI编程技术——图形渲染实战(四十八)——Owner-Draw控件:让标准控件焕然一新
图形渲染
故渊at1 天前
第三板块:Android 图形渲染与窗口体系 | 第十四篇:View 绘制体系与 RenderThread 异步渲染
android·图形渲染·ui线程·renderthread·view体系
故渊at1 天前
第三板块:Android 图形渲染与窗口体系 | 第十三篇:SurfaceFlinger 与 VSYNC 信号机制
android·图形渲染·surfaceflinger·帧率·窗口体系
charlie1145141911 天前
通用GUI编程技术——图形渲染实战(四十九)——完全自绘控件架构:状态机与动画
c++·windows·架构·图形渲染
玖釉-2 天前
Vulkan 离屏渲染详解:从 Framebuffer 到后处理、阴影贴图与 Render Texture
c++·windows·计算机视觉·图形渲染
玖釉-2 天前
nvpro_core2 详解:NVIDIA Vulkan / OpenGL 图形样例背后的现代 C++ 基础库
c++·windows·图形渲染
郝学胜-神的一滴3 天前
[简化版 GAMES 101] 计算机图形学 12:可见性与 Z‑Buffer 深度缓存
unity·godot·图形渲染·three.js·opengl·unreal
XX風4 天前
OpenGL OIT 之 Linked List 实现(上篇):原理、流程与缓冲区设计
图形渲染
玖釉-5 天前
Vulkan Specialization Constants 详解:在“运行时配置”和“编译期优化”之间取得平衡
c++·windows·图形渲染