gpt4 book ai didi

c++ - OpenGL 3.x/4x 中的纹素/像素匹配

转载 作者:行者123 更新时间:2023-11-30 04:54:31 25 4
gpt4 key购买 nike

根据我在像素中心约定方面所读到的内容,OpenGL 认为像素的中心位于其半像素位置。这使得光栅化的像素中心“匹配”用于纹理化的纹素中心。

因此,如果满足以下 4 个条件:

  1. “世界” 坐标系“完全”匹配视口(viewport)分辨率(例如均为 1920x1080)
  2. 投影是正交 (glm::ortho )
  3. 每个纹理的宽度/高度匹配由其对应的四元数顶点定义的 1 到 1(纹素到像素)
  4. UV [0,1] 用于纹理贴图

然后:

  • 纹理的纹素和视口(viewport)的像素之间的匹配将是1 对 1 ?

  • 无需添加/减去任何修正 (+/-0.5) ?

  • 关于如何检查它是否是 1 对 1 匹配的任何想法?

有什么提示吗?

最佳答案

您可以在 glsl 中使用偏导函数。偏差导数函数。这些是片段着色器指令,可用于计算任何值相对于屏幕空间坐标的变化率。这个任何值都可以是纹理坐标所以

vec2 dx_vtc = dFdx(纹理坐标);vec2 dy_vtc = dFdy(纹理坐标);

float len1 = 长度(dx_vtc);float len2 = length(dy_vtc);

如果长度差为零,那么我们可以断定存在一对一映射。

关于c++ - OpenGL 3.x/4x 中的纹素/像素匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53561950/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com