tft每日頭條

 > 遊戲

 > opengl遊戲開發書籍

opengl遊戲開發書籍

遊戲 更新时间:2024-09-09 11:55:55

opengl遊戲開發書籍(學遊戲開發需要懂openGL嗎)1

遊戲開發客戶端圖形核心技術就是openGL,在手機上的版本叫openGLES,這是一個它的輕量級版本。目前主流的遊戲引擎cocos,unity都是在它的基礎上進行了封裝,并為開發者提供使用更簡單的API或者可視化編輯器,因此,大多數情況下,我們并不需要透徹的去了解OpenGL是如何工作的。但了解是必要的,比如筆者就遇到了一個這樣的問題。

問題描述:在維護一個 基于 cocos 2.1.3 (一個比較古老的版本)的舊項目的時候,運行這個項目的mac版本會出現如下的錯誤:

cocos2d: cocos2d: ERROR: Failed to compile vertex shader

問題的大概意思是:無法編譯頂點着色器,而且通過openGL自帶的日志函數也無法獲得任何錯誤信息。從而導緻程序無法運行。找了數天,都沒有找到原因。這時候内心是

opengl遊戲開發書籍(學遊戲開發需要懂openGL嗎)2

于是問題被擱置,直到過完春節,再來研究這個問題的時候,有了新的發現。編譯shader之前需要調用

glCreateProgram();然而它的返回值始終為0。百度,google各種搜索,依然沒有找到現成的解決方案,不過也得到了一些有用的信息,那就是 openGL的context沒有初始化好。朝着這個方向,繼續上前查詢代碼,終于在 EALView.mm文件中,發現了一個 prepareOpenGL 的函數,是用來初始化openGL的。然而在調試的時候,并沒有發現這個函數被調用過。于是嘗試修改 initWithFrame 如下:

if( context ){

[selfsetOpenGLContext:context];

}

else{

[self prepareOpenGL];

}

else是 新增的代碼,重新編譯運行程序。終于成功!

opengl遊戲開發書籍(學遊戲開發需要懂openGL嗎)3

結論:

  1. 選擇一個好引擎。

  2. 也要适當了解OpenGL。

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关遊戲资讯推荐

热门遊戲资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved