我使用iPad上一個OpenGL紋理,並得到設備上可怕的文物,而模擬器顯示所有完美平穩。我相信iPhone會顯示相同的文物。視覺假象 - 但不是在模擬器
如果我看一下頭文件,我會看到一旦我包含OpenGLES/ES2/gl.h,並且在另一個文件OpenGLES/ES1/*。h中。這可能是一個問題嗎?
或者什麼可能是設備上的工件的原因?
模擬器:
真實的設備:
我使用iPad上一個OpenGL紋理,並得到設備上可怕的文物,而模擬器顯示所有完美平穩。我相信iPhone會顯示相同的文物。視覺假象 - 但不是在模擬器
如果我看一下頭文件,我會看到一旦我包含OpenGLES/ES2/gl.h,並且在另一個文件OpenGLES/ES1/*。h中。這可能是一個問題嗎?
或者什麼可能是設備上的工件的原因?
模擬器:
真實的設備:
如果您在使用ES 2.0,則第一個猜測是,你有一個精度的問題。 highp,mediump和lowp GLSL精度說明符是提示,而不是絕對命令,因爲它們指定了最低要求的精度。模擬器很可能比您明確要求的更精確,但設備不是。
如果你對此沒有科學,那麼試着將所有事情都作爲測試,然後慢慢回撥下來,並憑經驗檢查結果。
它可能是編譯期間XCode應用的PNG優化(嘗試關閉它);看到How can I skip compressing one PNG?
雖然你可以關閉PNG優化/壓縮在您的項目設置完全使用「壓縮PNG文件」(這是可見只有當項目的基本SDK設置爲設備SDK,而不是一個模擬器SDK),你不想這樣做!請閱讀上面的鏈接,詳細瞭解爲什麼,但其優點是,優化讓iPhone跳過一些數學運算,減慢PNG顯示速度。
Xcode將只優化它知道的PNG圖像 文件。爲了防止 特定的PNG被優化, 您更改其文件類型,以便Xcode否 知道它是一個PNG。
- 在項目窗口中選擇文件。
- 選擇文件 - >獲取信息。
- 在常規選項卡上,將文件類型從image.png更改爲文件。
如果你沒有導入正確的頭文件,你的應用程序根本就不會編譯和運行,所以沒有了。你如何繪製紋理?你看到了什麼樣的文物(別名等)? – 2011-02-04 18:33:42
你還可以發佈它應該看起來像什麼(模擬器版本)?這可能有助於診斷正在發生的事情。 – 2011-02-04 20:00:48