當模型完成『三角剖分』後.需要把模型導出為Maya與3D Studio Max等程序可以理解STL文檔格式.STL格式全稱為stereo lithography『立體』.最早用於模具製作.3D打印切片軟件正是使用這種格式.當你導出STL格式後.就可為生成『紋理』圖作準備,即展開UV紋理座標,將它地平鋪.從而在PhotoShop中處理『紋理』圖.將模型導出為STL格式:
File->SaveAs->Save Object
在保存對話框選Save As Type(保存類型)中選擇『stereo lithography .STL』
之前講解在Android遊戲種使用『點陣字體』使用Photoshop繪畫.但要對齊所有字符效果並不理想.但『Codehead’s Bitmap Font Generator』可以幫助你生成『點陣字體』.而且把非等距字體自動對齊.通過記錄每個自體寬度生成非等距文本.可以從www.codehead.co.uk/cbfg/免費獲取.以創建羅馬體為例:
遊戲設計中通常『更新』『渲染』放在同一線程中.在Windows可以在主線程將『消息驅動』改為『實時驅動』.把『更新』『渲染』放在主線程中.而Android卻無法做到這點.但提供GLSurfaceView可建立獨立線程在背後實現『更新』『渲染』.你需要實現監聽接口GLSurfaceView.Renderer.並註冊到GLSurfaceView中.監聽接口需要分別重寫『創建』『調整大細』『渲染』.GLSurfaceView.Renderer可獲得GL10.通過它方可訪問OpenGL ES API.而GL10中10代表OpenGL ES 1.0標準.可以將GLSurfaceView封裝成獨立控件.從而在layout『佈局』中嵌入.
public class RenderView extends GLSurfaceView implements GLSurfaceView.Renderer {
每當Activity恢復或啟動創建. EGLConfig設置Surface顏色與深度
public void onSurfaceCreated(GL10 gl10, EGLConfig eglConfig);
當view尺寸發生改變時調用,傳入寬與高
public void onSurfaceChanged(GL10 gl10, int width, int height);
調用『渲染』『更新』完成幀繪製.但每秒不超過60幀.
public void onDrawFrame(GL10 gl10);
令外還需重寫『恢復』『暫停』
『恢復』重啟渲染線程,在Activity恢復顯示時在Activity.onResume()中調用
public void onResume();
『暫停』退出渲染線程,當Activity進入後臺時在Activity.onPause()中調用
public void onPause();
}
編輯layout『佈局』文檔main.xml添加
<net.bookcard.aa.RenderView
android:id=”@+id/render_view”
android:layout_width=”fill_parent”
android:layout_height=”fill_parent” />
定義view狀態
public static final int STATE_INIT = 0;// 初此
public static final int STATE_RUN = 1;// 運行
public static final int STATE_PAUSED = 2;// 暫停
public static final int STATE_FINISHED = 3;// 結束
public static final int STATE_IDLE = 4;// 閒置
int view_width,view_height;// 寬與高
int state = STATE_INIT;// 初此狀態
long startTime ;// 啟動時間
創建Surface獲取屏幕
public void onSurfaceCreated(GL10 gl, EGLConfig eglConfig){
你必須登入才能發表留言。