【问题标题】:(Unity C#) Texture2D scaling mystery(Unity C#) Texture2D 缩放之谜
【发布时间】:2014-03-09 05:56:12
【问题描述】:

好的,我在此处和 Unity 论坛上看到了许多关于缩放 Texture2D 的主题。那条搜索线让我现在能够使用这个类来缩放 Texture2D:http://wiki.unity3d.com/index.php/TextureScale

现在,我目前的工作是将贴花直接应用于目标纹理。这工作正常。但是,根据纹理大小以及它在几何上缩放的程度,贴花以不同的大小出现(没有任何缩放,请参见附图)。这就是我什至考虑缩放 Texture2D 的原因。

谜团在于,我不确定要在缩放函数中使用什么样的数学运算才能使贴花在视觉上看起来大小相同,无论它位于哪个网格和纹理上。

非常感谢任何帮助:]

【问题讨论】:

    标签: c# unity3d scaling texture2d


    【解决方案1】:

    如果纹理是两倍大,贴花将是两倍大。所以,将贴花缩小一半,它就会变成正常大小。

    一般来说,每个地方你乘以贴图的比例,将贴花的比例除以相同的数量。

    【讨论】:

    • 这似乎要么导致无限循环,要么冻结统一:paste.ofcode.org/37Vj52eREqFAiLtfKDQTpAG
    • DecalTex.width*(_targetTex.width/DecalTex.width) 仅相当于 _targetTex.width。至于为什么会结冰:我不知道。这听起来像是TextureScale 代码的错误,您必须逐步完成。但是transform.scale 对你不起作用有什么原因吗?
    • 我确实尝试过使用保存相应几何图形的游戏对象的 transform.localScale ......那是一两天前的事,我忘记了我尝试过的内容。无论我尝试什么,它都没有奏效,我继续前进。要么我做错了,要么不是答案。但是,是的,我在上面的数学中看到了失败,这是漫长的一天哈哈。
    • 我放弃了这几天来处理其他任务,但现在我回来了。经过一些研究,在我正在测试的特定模型上,所有纹理都是 1024x1024,不同视觉尺寸的原因是因为艺术家如何对事物进行 UV 处理。话虽如此,我仍然很困惑,但方式不同。
    • 我刚和一位艺术家坐下来,这似乎与简单地缩放贴花没什么关系,而与一些 uv 魔法有很大关系。现在我实际上只是在打印纹理。我需要做的是确定哪些三角形属于纹理的每个部分,这样我就可以将贴花限制在纸张的适用部分。然后,我还需要在世界空间中进行一些其他检查,以便贴花可以跨越纸张不同区域上的纹理的两个部分,而在模型上它们实际上是相互连接的。所以我认为我原来的问题不再有效。
    猜你喜欢
    • 1970-01-01
    • 2015-04-16
    • 1970-01-01
    • 1970-01-01
    • 2015-06-24
    • 2018-02-11
    • 1970-01-01
    • 2023-03-30
    相关资源
    最近更新 更多