我在我的代碼中修復了一個問題,我知道這個問題有關:GL11.glTexCoord2f(x,y);
當然我改變了它,但我想知道爲什麼它使用浮點數作爲座標。我確信有一個原因,但對我來說,這似乎非常愚蠢。有可能是我失蹤的東西:P,但無論如何。爲什麼LWJGL有一個使用浮點數作爲座標的函數?
回答
這不是特定於Java或LWJGL。如您所知,LWJGL主要是原始OpenGL API的1:1映射。 glTexCoord
函數的不同風格自1.0版以來一直在OpenGL中:https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord.xml
爲什麼紋理座標通常作爲浮點值給出的原因是它們指的是「抽象」圖像(紋理)。該紋理的大小未知。例如,您可能有一個網格,並且作爲其紋理,您可以使用200x200像素大的JPG圖像或800x800像素大的圖像。
爲了允許任意圖像被用作紋理,紋理座標幾乎總是以(0.0,0.0)和(1.0,1.0)之間的值給出。它們指圖像的總大小,而不管這是多大。
想象一下具有紋理座標(0.5,0.5)的頂點。如果紋理大小爲200x200像素,則將用作該頂點的實際「像素」是(100,100)處的像素。如果紋理大小爲800x800像素,那麼將在該頂點使用的像素將是(400,400)處的像素。
使用這種「標準化」座標(範圍[0.0,1.0])在圖形和其他應用程序中非常常見。
我知道了。 XD我假設他們是像glVertex使用的座標。 –
它還應該使用什麼?儘管有一些支持,但所有GPU都可能不支持Double dataType。由於紋理uv座標應該在0.0到1.0之間(作爲高度/寬度的百分比),所以我不能想到可以在此使用的任何其他邏輯數據類型。
那麼使用浮點數有什麼特別的問題嗎?如果是這樣,請編輯您的帖子並提供更多信息,因爲現在我們無法進一步幫助您。
我錯誤地認爲它與glVertex基本相同,除了它是紋理。 –
- 1. 考慮到我們有round()函數,爲什麼要量化()一個浮點數?
- 2. 爲什麼不能將鼠標座標作爲浮點值獲取?
- 3. 圖形:爲什麼漂浮座標?
- 4. 爲什麼52.0作爲一個浮點數投射爲int時變成51?
- 5. 爲什麼x和y總是與一個浮點數爲0?
- 6. 爲什麼一個固定點數稱爲整數,即使它有一個點?
- 7. 使用鼠標座標作爲javascript函數的像素值
- 8. summaryType函數有一個浮點數
- 9. 爲什麼我的浮點數變成Numpy Timeseries的一個值?
- 10. 爲什麼在這個例子中他使用了浮點數?
- 11. 爲什麼使用double.Parse然後將其轉換爲浮點數?
- 12. 爲什麼這個tf.placeholder是一個浮點數?
- 13. 將小數位數多的浮點數轉換爲浮點數只有一個小數位的浮點數
- 14. 爲什麼使用這種尷尬的方式將一個浮點數舍入爲一個整數?
- 15. 爲什麼我應該使用整數而不是浮點數?
- 16. 爲什麼requestAnimationFrame函數接受一個元素作爲參數?
- 17. 添加浮點數,這是爲什麼?
- 18. 爲什麼浮點數333.50是雙
- 19. 爲什麼NumPy浮點數不給ZeroDivisionError?
- 20. 爲什麼「overflow:hidden」會清除浮點數?
- 21. 這個函數比較浮點數有什麼問題嗎?
- 22. 爲什麼我不能使用char作爲函數的參數?
- 23. 爲什麼使用LAMBDA發送功能作爲參數給另一個函數
- 24. 爲什麼在add_action函數中使用init作爲第一個參數(Wordpress)?
- 25. 爲什麼是一個空的函數!==一個空的函數?
- 26. 使用浮點數函數
- 27. 調用一個類作爲一個函數是什麼意思?
- 28. 有一個問題一個浮點數轉換爲整數(PHP)
- 29. 爲什麼使用Math.min()作爲x,y座標和math.abs()
- 30. 爲什麼gluProject沒有給出正確的屏幕空間座標與LWJGL
它應該使用什麼呢? – tkausl
你得到的錯誤是什麼,請提供多一點的代碼 –
嗯,我的問題是爲什麼glTexCoord有一個版本使用浮點數... –