opengl - 当多个纹素处于相等距离时,在纹理的点采样期间返回哪个纹素值?
问题描述
当多个纹素处于相等距离时,采样器在点/最近邻采样期间返回哪个纹素值?
例如:在这种情况下(放大后),对于许多像素(或纹理坐标),2 个纹理像素与其中心的距离相同。将返回哪些纹素用于这些像素的采样。
黑点 = 像素中心黄点 = 纹素中心
- OpenGL中最近邻采样计算最近纹素的公式是什么?
解决方案
来自OpenGL 维基:
如果使用 GL_NEAREST,则实现将选择最接近纹理坐标的纹素
所以最终,显卡供应商决定他们认为最接近的纹素。
一个可能的公式将纹理坐标乘以图像宽度/图像高度并将其向下舍入以获得纹理索引。
(i, j) = floor(uv * (width, height)),
其中*
是逐分量乘法。
推荐阅读
- typescript - 如何使用打字稿设置 axiosconfig?
- swiftui - SwiftUI:如何将字体颜色保持在顶部边缘区域?
- python - (python)标记在3-D坐标系相似区域内的点
- php - 重复使用相同的表单进行更新和创建,还是在 Laravel 中有更简单的方法?
- ruby - CSS 更改未显示 Ruby、Bootstrap
- javascript - 实现滚动锚定时元素“轻微抽搐”
- snowflake-cloud-data-platform - 雪花如何循环对象数组并将数据合并到相关表中而不将数组移动到临时表中?
- c# - 如何在 Entity Framework 6 中将 SQL 查询转换为 Linq?
- symfony - 在 Symfony5 中创建一个从一个小时开始执行多次的命令
- javascript - HTML、CSS 和 JavaScript 游戏中的背景图像不显示