【问题标题】:meaning of U and V as in getU()U 和 V 在 getU() 中的含义
【发布时间】:2015-12-14 20:04:49
【问题描述】:

我检查了 TextureRegion 类的文档。我不确定getU(), setU(), getV(),setV(),getU2(),setU2()...methods 的含义。他们做什么以及在什么场景对程序员有用。过去我正在为 3d 对象创建 UV 贴图。那些UV与3D图形有关吗?这是它的链接:https://libgdx.badlogicgames.com/nightlies/docs/api/com/badlogic/gdx/graphics/g2d/TextureRegion.html#setU-float-

【问题讨论】:

    标签: java libgdx


    【解决方案1】:

    UV 是二维纹理中样本(像素)的坐标。 UVW - 相同,但用于 3d 纹理。

    我想在这个类的情况下,它允许设置将要使用的区域,而不是完整的纹理。当您需要大量小纹理时,通常会这样做 - 因为大多数卡不支持加载大量纹理(例如 - 移动芯片大约 4-32,桌面 - 128-512)它们打包在单个纹理图像中并且然后由定义矩形区域的 UV 坐标范围选择。

    SetUSetV 用于左上角,setU2setV2 用于右下角。

    【讨论】:

    • 感谢您的光临。我还是有点困惑。纹理图集不是用于将较小的图像打包到较大的图像中吗?那为什么还要紫外线呢?
    • UV 允许从图集中选择单个纹理,在适配器中由单个纹理表示。例如,您有一个包含 4 张相同大小的图片的图集,然后要使用图片 1,在左上角,U 和 V 仅使用从 0 到 0.5 的范围。如果您不限制它们,则使用视频适配器将使用整个纹理 - 这意味着您可以从 4 张图片中获得混合,而不是一张。
    【解决方案2】:

    U 和 V 是纹理坐标的标准名称,就像 X 和 Y 是 2D 绘图的标准名称。

    当纹理映射到 2D 表面时,它们用于 3D 图形。通常,U 和 V 的值都在 0.0 到 1.0 之间。例如,当将纹理映射到方形表面时,通常会在像素坐标中指定纹理的每个角,并将每个角与 UV 坐标中的 0,0 或 0,1 或 1,1 或 1,0 匹配。

    但是,您可以通过映射这些坐标的方式做更多事情。您可以在表面上旋转、翻转和拉伸纹理。如果随着时间的推移改变 UV 坐标,您将获得在表面上为纹理设置动画的效果。

    【讨论】:

      猜你喜欢
      • 2011-05-21
      • 1970-01-01
      • 1970-01-01
      • 2015-04-24
      • 2021-06-06
      • 2014-07-20
      • 1970-01-01
      • 2021-12-22
      • 2020-01-16
      相关资源
      最近更新 更多