当前采样纹理的精确中心

时间:2016-05-11 06:16:23

标签: opengl-es texture-mapping render-to-texture

如果我们在确切的纹素中心采样,我读到了;然后GL_NEAREST和GL_LINEAR采样将给出相同的结果。 试图找出方法。

p0 p1 p2

p3 p4 p5

p6 p7 p8

假设p4是我当前的采样纹素。如果使用GL_NEAREST,则应该找到中心最接近当前texel的纹素。  如果我的采样点恰好位于p4的中心;是否会给出GL_NEAREST的p1,p3,p5和p7的平均值,这与GL_LINEAR中的完全相同?

GL_NEAREST和GL_LINEAR是如何相同的?

是的,然后我想访问当前texel p4的确切中心,以获得GL_NEAREST和GL_LINEAR的相同结果。如何找到当前纹理元素的确切中心

1 个答案:

答案 0 :(得分:1)

  

GL_NEAREST和GL_LINEAR是如何相同的?

理想化的采样点将在数学上落在四个理想纹理点之间的某个点上。 GL_LINEAR过滤器根据每个纹素与实际样本坐标之间的距离返回四个纹素的加权平均值。

如果该点恰好位于一个采样点的顶部,则其他三个点的权重应为零。

  

如何找到当前纹理元素的确切中心

难以回答的问题 - 这取决于您提交的三角形,它们在屏幕上的布局方式以及您渲染的纹理大小。没有“当前纹素”这样的东西。

如果你真的想要一个精确的1:1副本,你也可以使用glBlitFramebuffer或类似的......