0

我正在尝试缩放 UV。我有当前 UV 壳占用的 0-1 UV 空间的百分比以及我需要壳占用的百分比。最好的方法是什么?

我试过使用pm.polyEditUVs(),但我无法想出一个公式来将百分比转换为适当的比例值。

如果我含糊不清,请告诉我,我会尝试更具体。

编辑:

抱歉,我的问题不完整。

中的比例值pm.polyEditUVs()不按区域缩放,它们独立使用 U 和 V 值进行缩放。

如果它是按面积缩放,那么将旧的除以新的会产生正确的比例值,但在这里它不会。例如:

A = 1.0 #Normalized percentage of the total UV area our UVs currently occupy.
B = 0.25  #Normalized percentage of the total UV area we want our UVs to occupy.

#If we could scale the area directly using a single number then the following would work.
ScaleValue = B\A
0.25 = 0.25\1.0

但是,如果我们将该值插入到 scaleU 和 scaleV 关键字参数中,pm.polyEditUVs()那么您将按指数比例而不是线性减少面积。

#continuing with the previous example
#for the sake of ease of predictability regarding the math I am assuming our UVs are a square for this example, however U and V will rarely be the same value.
U = 1.0 #linear distance  actual value (percentage value would be 100% (1.0))
V = 1.0 #linear distance. actual value (percentage value would be 100% (1.0))
Area = 1*1 #actual area value. (percentage value would be 100% (1.0))

newU = U * scaleValue
0.25 = 1.0 * 0.25

newV = V * scaleValue
0.25 = 1.0 * 0.25

newArea = newU * newV
0.0625 = 0.25 * 0.25

最终结果,不是将区域设为原始大小的 25%,而是将其变为原始大小的 6.25%。我们如何考虑这个额外的数量级?

我为这个例子的迂腐性质道歉,但我想确保我的例子是清楚的,如果不是,我会添加更多。

4

2 回答 2

1

如果目标是从 UV 空间的某个 % 变为不同的 %,只需按当前 % 与所需 % 的比率进行缩放。如果您当前的区域是 uv 空间的 45%,并且您希望它是 90%,那么您将按 90/45 = 2 进行缩放。如果您当前处于 75% 并且希望达到 25%,按 25/75 或 0.33333 缩放。

于 2013-11-16T22:18:55.697 回答
0

来自维基百科:

百分比是一个数字或比率,表示为 100 的分数。...例如,45%(读作“百分之四十五”)等于 45/100 或0.45

所以根据定义,百分之十是 0.10 个单位,所以百分之十的比例是 0.10。

于 2013-11-16T13:40:16.083 回答