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、または .33333 でスケーリングします。

于 2013-11-16T22:18:55.697 に答える
0

ウィキペディアから:

割合は、100 の分数として表される数値または比率です。 ... たとえば、45% (「45 パーセント」と読みます) は、45/100、つまり0.45に相当します。

したがって、定義によると、10 パーセントは 0.10 単位なので、10 パーセントのスケールは 0.10 です。

于 2013-11-16T13:40:16.083 に答える