我遇到了紋理座標問題。首先我想描述一下我想做什麼,然後我會問這個問題。合併紋理上的XNA紋理座標
我想擁有一個只使用一個大紋理的紋理更多的網格。大紋理合併網格在其中使用的所有紋理。我做了一個合併紋理的例程,這是沒有問題的,但我仍然需要修改紋理座標,所以現在只使用一個紋理而不是許多紋理的網格已經放置得很好。
看到的景象:
在左上角我得到了紋理的一個(我們稱之爲A)我合併成一個大的質感,右一個(B)。 A的左上角是0,0,右下角是1,1。爲了便於使用,我們假設B.width = A.width * 2等等。所以在B上,迷你紋理(M原來是什麼)的右下角應該是0.5,0.5。
我沒有理解這些到目前爲止的問題,我希望我明白了。但這裏的問題是,有紋理座標是:
- 以上1
- 負
原始A.應該將這些是M上怎麼辦?
比方說,A有-0.1,0 - B上的M是-0.05,0?
那些在0..1區域以外的數字呢?在B上的-1.6或-3.1是-3.2,0?因此,我剪下部分是%1併除以2(因爲我上面說過寬度是雙倍)還是應該將整數除以2?據我瞭解,到目前爲止,這個區域以外的數字是關於鏡像紋理的。我如何管理它,所以輸出不包含B的橙色紋理?
如果我的問題不夠清楚(我沒有太多熟練的英文),請向我會編輯/答案,只是幫我清楚我的困惑:)
在此先感謝: 彼得
我明白了。那些超出範圍的座標呢?那裏有翻譯的規定嗎? (從[0-1,0-1]開始[0-0.5,0-0.5]只是一個簡單的劃分,但如果[0-1,0-1]中的座標不在範圍內,但1.3或-4.7等?) – 2012-01-02 07:27:34
你應該閱讀關於[紋理映射](http://msdn.microsoft.com/en-us/library/bb976075(v = xnagamestudio.31).aspx),關於xna 3.1,但信息是有效的,雖然在xna 4.0中,你只有三種尋址模式包裝,鏡像和鉗位。您始終必須以同樣的方式處理範圍內外的值,問題在於使用的是紋理尋址模式......如果不是鉗位,則會出現問題,因爲複製包裝和鏡像地址不值得 – Blau 2012-01-02 09:40:15