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

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

相关推荐
好家伙VCC3 天前
# 发散创新:用 Rust构建高并发虚拟世界引擎核心模块在当今游戏开发与元宇宙构建中,**虚拟世界的性能瓶颈往往不是图形渲染,而是底
java·开发语言·python·rust·图形渲染
懒洋洋在睡觉6 天前
Vulkan demo入门教程三:逻辑设备、队列与交换链
c++·图形渲染
wangzy19826 天前
一个高效稳定的多边形三角化算法(支持自交和孤岛检测)
算法·图形渲染
不吃鱼的猫7488 天前
【从零开始学 OpenGL:现代图形渲染实战】第02篇-渲染管线与第一个三角形
图形渲染
不吃鱼的猫7488 天前
【从零开始学 OpenGL:现代图形渲染实战】第03篇-深入着色器与GLSL
图形渲染·着色器
懒洋洋在睡觉8 天前
鸿蒙 6.0横屏显示时画面旋转错误
华为·图形渲染·harmonyos
不吃鱼的猫7488 天前
【从零开始学 OpenGL:现代图形渲染实战】第01篇-环境搭建与第一个窗口
图形渲染
玖釉-10 天前
解密图形渲染的性能原罪 —— Draw Call
c++·windows·图形渲染
small-pudding11 天前
深入理解PDF:蒙特卡洛光线追踪中的概率密度函数
算法·pdf·图形渲染
子辰ToT1 个月前
LearnOpenGL——PBR(三)漫反射辐照度
笔记·图形渲染·opengl