2014-02-15 312 views
1

我面臨非常晦澀的問題。WebGL紋理渲染部分

我正在將.obj 3d模型加載到我正在處理的WebGL應用程序中。我正在使用自定義函數解析它們。我知道它能正常工作。因爲我得到這個:

Wood textured cube

授予紋理被拉伸太多。但這就是UV的映射方式。

但是,當我在這裏裝載鵝模型就是我得到:

Goose no texture

無紋理鵝。我使用相同的紋理。

Weirder仍然是隻能在眼睛周圍呈現紋理的事實。如果我不畫線框,我得到這個:

Goose eyes

,我已經圈出這兩個微小的規格是眼睛。

只是爲了確保這不是這種模式,我想另一個問題:

Partially texture axe

我不知道爲什麼它不會使紋理其他地方。

這是我已經試過:

  • Recalcuated法線和從攪拌機再次出口。同樣的結果。
  • 在Photoshop中加載模型,他們預覽正確。意義模型很好。
  • 檢查我的.obj文件解析爲WebGL反覆使用的可用格式。另外,由於立方體加載正確,我認爲不是這樣。
  • 嘗試關閉MipMapping,禁用CULL_FACE並更改纏繞順序。沒有不同。
  • 使用不同的紋理圖像。紋理圖像都是NPOT。試過非NPOT。沒有什麼變化,除了不同的圖像,小眼睛的紋理元素或斧頭上的碎片變成了紋理。
  • 檢查UV映射,一切看起來不錯。沒有負值或超出範圍值。

我完全沒有想法。如果有人有類似的經歷,我會很高興看到下一步看什麼。

我通常不喜歡在沒有發佈代碼的情況下提問,但代碼非常複雜,因爲我將sweet.js用於自定義JavaScript語法。讓我知道是否有人想看代碼,我可以嘗試清理一些代碼並上傳到某處。

+1

遠景:多邊形是否填滿了模型的第一個多邊形? – GameAlchemist

+0

@GameAlchemist是的!就是這樣!我有一個硬編碼的值來繪製使用DrawElements的面數。非常感謝你。我只是將它更改爲頂點/ 3,它的作用就像一個魅力。請發表您的評論作爲答案。我想給你這麼多點。 –

回答

4

從你的圖片我想知道,如果你沒有繪製一個恆定數量的多邊形,或者如果繪製開始,然後由於一些錯誤在其道路上默默失敗。這就是爲什麼我問如果繪製的多邊形是第一個模型。
所以似乎確實有一個硬編碼限制繪製的多邊形的數量。
很高興你發現它!