我正在創建一個遊戲,每個原始遊戲都需要自己的紋理,但我似乎無法弄清楚如何。我通過Google搜索,但它只顯示關於紋理混合的結果。你能告訴我如何在多個非索引基元上應用多個紋理嗎?或者他們必須被索引?如何將不同的紋理應用於多個基元? (Direct3D 9)
回答
您可以通過在每個DrawPrimitives之前調用SetTexture來更改紋理。
我認爲使用UV atlas可以解決您的問題。地圖集基本上是由較小的紋理組成的大質地,如照片拼貼。頂點的UV座標當然是指大的紋理,但是如果你知道「小」紋理的位置,這很容易計算。
當然,你必須首先創建地圖集紋理。
U和V值是浮點數,它們不夠方便我所需要的精度。 – cruelcore1
這意味着你有太多的紋理,或者你的紋理太大以至於float的精度不允許在atlas紋理中尋址特定的像素? – cdoubleplusgood
浮點不足以處理地圖集紋理中的特定像素。也許如果它是一個小的地圖集,但不是。是的,我需要很多紋理。 – cruelcore1
- 1. Direct3D中的Alpha混合9.某些基元不在紋理背後渲染
- 2. 如何將不同的紋理應用於LWJGL中的多個多邊形?
- 3. 在託管Direct3D中渲染多個紋理9
- 4. 如何使用GLKit將不同的紋理應用於不同的對象?
- 5. 將紋理應用於頂點緩衝區對象基元
- 6. 如何將紋理應用於THREE.ExtrudeGeometry?
- 7. iOS + SceneKit:如何將紋理着色器應用於紋理?
- 8. 將不同的紋理應用於覆蓋的canvas使用javascript
- 9. 如何讀取direct3d紋理像素
- 10. 如何將多個紋理應用於多維數據集的VBO?
- 11. 將視頻渲染到Direct3D 9.0c紋理
- 12. 如何使用遍歷將不同的紋理應用於子對象?
- 13. Direct3D渲染錯誤紋理
- 14. Direct3D C++紋理映射
- 15. OpenGL:如何將紋理應用於此多維數據集?
- 16. 紋理不適用於多個面
- 17. C++ directx 9網格紋理
- 18. 如何設置Direct3D紋理中單個像素的顏色?
- 19. 更新Direct3D紋理的最佳方式
- 20. 的Direct3D上傳視頻紋理
- 21. 將紋理應用到多維數據集,立方體的每個表面上的不同紋理
- 22. Direct3D紋理後處理/複製
- 23. 如何將2個或更多紋理貼圖應用於gluSphere OpenGL對象?
- 24. 如何使用UpdateSubresource更新Direct3d中的紋理
- 25. 如何用隨機RGB值填充Direct3D紋理。用於HLSL像素着色器
- 26. 如何將紋理應用於使用OpenGL的方格網格
- 27. Direct3D中的紋理映射問題
- 28. 我可以使用一個紋理單元5種不同的2D紋理
- 29. 我將如何添加多個紋理而不使用glaux?
- 30. 多的Direct3D設備9和Alt-Tab鍵
您可以通過在每個DrawPrimitives之前調用SetTexture來更改紋理。有什麼問題? – Dish
謝謝。我之前嘗試過類似的東西,但我想我錯了。請張貼這個答案,以便我可以將其標記爲已接受。 – cruelcore1
根據不同紋理的數量,這意味着您將有大量的繪製調用。通常情況下,您會盡可能減少平局數量。 – cdoubleplusgood