我正在嘗試縮放UV。我有當前UV外殼佔用的0-1 UV空間的百分比和我需要外殼佔據的百分比。什麼是最好的方式來做到這一點?將百分比轉換爲適當的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關鍵字ARGS在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%。我們如何考慮額外的數量級?
我爲這個例子的迂腐性質道歉,但我想確保我的例子清楚,如果不是,我會添加更多。
我很抱歉,我意識到我沒有正確解釋我的問題。它已被更新。 – TheBeardedBerry
如果要將1,1矩形設置爲.5,.5矩形,則將該區域縮小至其原始值的25%。如果要將1,1矩形縮放爲其面積的50%,則需要採用縮放因子的平方根:在這種情況下,sqrt(.5)= .707 – theodox
謝謝,看着這個回想起來,這簡直令人難以置信。我一定是盯着我的代碼太久了。 – TheBeardedBerry