簡體   English   中英

更新到iOS 7.1后,OpenGL ES精靈不再渲染

[英]OpenGL ES sprites no longer render after updating to iOS 7.1

我使用基於本教程一個簡單的2D精靈類來渲染PNG位圖到屏幕上:

http://www.raywenderlich.com/9743/how-to-create-a-simple-2d-iphone-game-with-opengl-es-2-0-and-glkit-part-1

在運行iOS 6.1的iPhone 4S和運行iOS 7的iPhone 5S上,一切正常。由於我更新到iOS 7.1,並且在MacBook Air上更新到Mavericks和XCode 5.1,因此精靈不再顯示在屏幕上(我只得到一個空白屏幕,這是我清除背景的顏色)。 當我使用的XCode 5.1構建應用程序,並在我的iPhone 4S再次運行,它仍然有效。

有誰知道是什么原因造成的? 有沒有人遇到這個問題? 我有麻煩的問題的根源是由於我缺乏除其他事項外的OpenGL ES的理解。 :)我的精靈類與本教程中的類完全相同。

讓我知道,如果需要更多的細節/代碼段。

我什至不去看示例代碼,因為它聽起來好像與您當前的代碼不同。 (您說“基於”。)但是,我將告訴您如何查找問題。

首先,清除白色(例如紅色)以外的東西作為測試。

如果屏幕變成紅色,則至少知道您的視圖和上下文以及打開gl的總體效果。 這消除了許多可能的罪魁禍首。

其次..使用調試工具,很可能會帶您正確解決問題。 您必須在連接的設備上運行,而不是在SIM卡上運行。 運行您的應用...

OpenGL分析屏幕

在調試導航器中單擊FPS。 然后單擊分析並耐心等待。 這將對open gl中發生的情況進行一幀快照。 它必須做很多事情才能實現,並且大約需要30秒。 但是,然后您將獲得一個交互式的東西,向您展示框架,並讓您逐步執行流程,查看是什么代碼使這種情況發生,以及框架繪制每個元素時的情況。 真的很酷。 可能會顯示一條錯誤消息(紅色)。

我的猜測是它不再加載您的Sprite圖片。 在6到7之間或Xcode或OSX的版本之間可能有所更改。 在那種情況下,屏幕是空白的,因為它們沒有被加載,因此沒有被繪制。

編輯:我認為分析將有助於發現您的問題。 但是要提供更多的可能性,以我的經驗,什么也沒畫,通常是這些事情之一:

  1. 整個OpenGL問題-將透明色設置為紅色或藍色進行測試。
  2. 着色器未編譯-總是輸出着色器編譯錯誤,因此您知道。
  3. 錯誤的Shader數學或邏輯-使用gl_FragColor = vec4(0.0,0.0,1.0,1.0)或一些對比色進行測試。 你看到你的結構了嗎?
  4. 程序沒有屬性。 你還記得glEnableVertexAttribArray
  5. 程序沒有統一。 使用上面的“分析”功能檢查均勻值,以確保它們到達着色器。

(如果我想到它們,我會添加更多)

什么時候做

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM