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% にしました。その余分な桁数をどのように考慮に入れるのでしょうか?
この例の衒学的な性質をお詫びしますが、私の例が明確であることを確認したかったので、そうでない場合はさらに追加します。