1. 程式人生 > >jpct_ae 安卓建立3d檢視效果 jpct的基本使用

jpct_ae 安卓建立3d檢視效果 jpct的基本使用

public class GlRenderer implements Renderer {  
  
        // 停止旗語  
        private boolean stop = false;  
  
        // 停止方法  
        public void setStop() {  
            stop = true;  
        }  
  
        @Override  
        public void onDrawFrame(GL10 gl) {  
            // TODO Auto-generated method stub  
            if (!stop) {  
                // 如果rotateX不為0,向Y軸旋轉rotateX角度  
                if (rotateX != 0) {  
                    // 旋轉物體的繞Y旋轉  
                    cube.rotateY(rotateX);  
                    // 將rotateX置0  
                    rotateX = 0;  
                }  
                  
                if (rotateY != 0) {    
                    // 旋轉物體的旋轉圍繞x由給定角度寬(弧度,逆時針為正值)軸矩陣,應用到物件下一次渲染時。    
                    cube.rotateX(rotateY);    
                    // 將rotateY置0    
                    rotateY = 0;    
                }    
                  
                // 用給定的顏色(backColor)清除FrameBuffer  
                fb.clear(backColor);  
  
                // 變換和燈光所有多邊形  
                world.renderScene(fb);  
  
                // 繪製  
                world.draw(fb);  
  
                // 渲染影象顯示  
                fb.display();  
            }else {    
                if (fb != null) {    
                    fb.dispose();    
                    fb = null;    
                }    
            }    
        }  
  
        @Override  
        public void onSurfaceChanged(GL10 gl, int width, int height) {  
            // TODO Auto-generated method stub  
            // 如果FrameBuffer不為NULL,釋放fb所佔資源  
            if (fb != null) {  
                fb.dispose();  
            }  
  
            // 建立一個寬度為w,高為h的FrameBuffer  
            fb = new FrameBuffer(gl, width, height);  
  
            // 如果master為空  
            if (master == null) {  
  
                // 例項化World物件  
                world = new World();  
  
                // 設定了環境光源強度。負:整個場景會變暗;正:將照亮了一切。  
                world.setAmbientLight(20, 20, 20);  
  
                // 在World中建立一個新的光源  
                sun = new Light(world);  
  
                // 建立一個紋理  
                Bitmap image = BitmapFactory.decodeResource(mContext  
                        .getResources(), R.drawable.ic_launcher);  
                Texture texture = new Texture(image);  
  
                // 紋理的名字  
                String textureName = "texture";  
  
                // TextureManager.getInstance()取得一個Texturemanager物件  
                // addTexture(textureName,texture)新增一個紋理  
                TextureManager.getInstance().addTexture(textureName, texture);  
  
                // Object3D物件開始了:-)  
  
                // Primitives提供了一些基本的三維物體,假如你為了測試而生成一些物件或為  
                // 其它目的使用這些類將很明智,因為它即快速又簡單,不需要載入和編輯。  
                // 呼叫public static Object3D getCube(float scale) scale:角度  
                // 返回一個立方體  
                cube = Primitives.getCube(10);  
  
                // 以紋理的方式給物件所有面"包裝"上紋理  
                cube.calcTextureWrapSpherical();  
  
                // 給物件設定紋理  
                cube.setTexture(textureName);  
  
                // 除非你想在事後再用PolygonManager修改,否則釋放那些不再需要資料的記憶體  
                cube.strip();  
  
                // 初始化一些基本的物件是幾乎所有進一步處理所需的過程。  
                // 如果物件是"準備渲染"(裝載,紋理分配,安置,渲染模式設定,  
                // 動畫和頂點控制器分配),那麼build()必須被呼叫,  
                cube.build();  
  
                // 將Object3D物件新增到world集合  
                world.addObject(cube);  
  
                // 該Camera代表了Camera/viewer在當前場景的位置和方向,它也包含了當前視野的有關資訊  
                // 你應該記住Camera的旋轉矩陣實際上是應用在World中的物件的一個旋轉矩陣。  
                // 這一點很重要,當選擇了Camera的旋轉角度,一個Camera(虛擬)圍繞w旋轉和通過圍繞World圍繞w旋轉、  
                // 將起到相同的效果,因此,考慮到旋轉角度,World圍繞camera時,camera的視角是靜態的。假如你不喜歡  
                // 這種習慣,你可以使用rotateCamera()方法  
                Camera cam = world.getCamera();  
  
                // 以50有速度向後移動Camera(相對於目前的方向)  
                cam.moveCamera(Camera.CAMERA_MOVEOUT, 50);  
  
                // cub.getTransformedCenter()返回物件的中心  
                // cam.lookAt(SimpleVector lookAt))  
                // 旋轉這樣camera以至於它看起來是在給定的world-space 的位置  
                cam.lookAt(cube.getTransformedCenter());  
  
                // SimpleVector是一個代表三維向量的基礎類,幾乎每一個向量都  
                // 是用SimpleVector或者至少是一個SimpleVector變體構成的(有時由於  
                // 某些原因比如效能可能會用(float x,float y,float z)之類)。  
                SimpleVector simpleVector = new SimpleVector();  
  
                // 將當前SimpleVector的x,y,z值設為給定的SimpleVector(cube.getTransformedCenter())的值  
                simpleVector.set(cube.getTransformedCenter());  
  
                // Y方向上減去100  
                simpleVector.y -= 100;  
  
                // Z方向上減去100  
                simpleVector.z -= 100;  
  
                // 設定光源位置  
                sun.setPosition(simpleVector);  
  
                // 強制GC和finalization工作來試圖去釋放一些記憶體,同時將當時的記憶體寫入日誌,  
                // 這樣可以避免動畫不連貫的情況,然而,它僅僅是減少這種情況發生的機率  
                MemoryHelper.compact();  
  
                // 如果master為空,使用日誌記錄且設master為HelloWorld本身  
                if (master == null) {  
                    // Logger.log("Saving master Activity!");  
                    master = main_activity.this;  
                }  
            }  
  
        }  
  
        public void onSurfaceCreated(GL10 gl, EGLConfig config) {  
            // TODO Auto-generated method stub  
  
        }


@Override
public void onSurfaceCreated(GL10 gl,
javax.microedition.khronos.egl.EGLConfig config) {
// TODO Auto-generated method stub

}  
  
    }  

相關推薦

jpct_ae 建立3d檢視效果 jpct基本使用

public class GlRenderer implements Renderer {              // 停止旗語           private boolean stop = false;              // 停止方法           public void setSt

-幾種檢視SHA1和MD5的方法

安卓-幾種檢視SHA1和MD5的方法 1、獲取apk的sha1和md5 為了避免註冊時弄錯簽名,建議直接用打包出來的apk檢視簽名,具體如下: 1) 將apk修改後綴為 .rar檔案後解壓; 2) 進入解壓後的META-INF目錄,該目錄下會存在檔案CERT.R

建立SQLite資料庫

新建一個MyOpenHelper類,繼承SQLiteOpenHelper,實現它的構造方法和onCreate,onUpgrade方法, 構造方法MyOpenHelper有四個引數 1、 context 上下文環境 2、name 資料庫的名字 3、factory 目的建立cursor 物

開發客串下美工用三個gif 圖實現中的走馬燈效果

安卓開發客串下美工用三個gif 圖實現安卓中的走馬燈效果   最終效果是這個樣子的          ??????????????? 這個不像跑馬燈,到像是受驚的野馬亂蹦 啊,呵呵,在本地快

實現listview聯動效果且選項多選

   實現效果如圖,點選大洲進行第一個listview資料的重新整理且聯動第二個listview資料更新,正常第二個listview是單選,點選後進行資料重新整理,現在做的是資料多選最後點選確定按鈕進行資料提交 首先實現兩個listview聯動效果: 資料來源如下   "

實現圖片放大鏡效果

一、準備圖片 在drawable資料夾下放置需要進行輪詢的圖片 二、編寫一個簡單的佈局檔案 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:andr

weex開發實戰(5)--利用wxc-tabbar實現類似fragment分頁效果

wxc-tabbar是官方提供的一個tabbar擴充套件,需要安裝weex-components npm install weex-components --save 注意在安卓專案上,src最好寫成 “file://assets/yourpath”<templat

android手機檢視基站資訊

不過手機廠商不同,命令也不一樣。每次要用時總想不起來命令,記下備用。 (1) HTC 安卓手機 在撥號鍵盤輸入 *#*#4636#*#* , 選擇 “手機資訊” “位置”那行顯示的就是當前的16進位制基站資訊,把LAC和CID 填入到本站的 基站查詢 頁面,選擇16進位制查詢,即可顯示地圖位置。 該命令顯

實現聯網檢視圖片

效果圖 實現原始碼: layout <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.co

unity釋出的環境配置和基本流程

Android平臺環境配置主要分為三大步驟: 1: JDK安裝與環境引數配置。 2: Android虛擬機器的安裝與配置。 3: Unity相應配置。 JDK 安裝與環境引數配置1: 下載與安裝JDK 步驟1: 首先登陸Oracle 官方網站: http://www

app開發-03-專案的基本開發步驟

android專案的基本開發步驟 這裡分享一下開發 安卓 app 的流程,當然有些感覺不必要,其實不然,前期工作也是極為重要的額,就像開發的時候如果目標不對的話,到後期後很迷的,所以一定要提前做好規劃,就像上一篇介紹的去做詳細的腦圖 開發之前還需要做一些準備工作 1.技術儲備 a.Java 重要程度: ★★

記憶體分析工具Mat的基本用法

由於android studio自帶的記憶體監控工具不是很強大,在分析記憶體洩漏方面比較麻煩,遠比不上Eclipse自帶的Mat工具,Android Studio沒有自帶這款工具,所以需要自行下載獨立版的Mat,下面先介紹一下它的一些配置及用法: 1,首先開啟我們的Andr

WebSocket客戶端實現詳解(一)–連接建立與重連

ask 應該 header oid mha 主動推送 未收到 compile tde http://blog.csdn.net/zly921112/article/details/72973054 前言 這裏特別說明下因為WebSocket服務端是公司線上項目所以這裏ur

搖一搖 包含 objectAnimator valueAnimator的動畫效果

star sea cte tty pda eset ttr manager repeat public class MyAnimationDemo extends BaseActivity implements SensorEventListener{ priv

無盡跑酷3D (Endless Run 3D) 蘋果版免費下載|iOS|Android|iPhone版本免費下載 - 休閑 3D遊戲 跑酷遊戲 競速遊戲

bottom .com 開標 手機 apt splay alt idt mage 無盡跑酷3D (Endless Run 3D) 發布了 無盡跑酷3D是一款非常經典的跑酷類手機遊戲,該遊戲擁有著獨特的跑酷玩法、炫酷的跑酷特色和精美的遊戲畫面設計。感興趣的小夥伴們快來加入無盡

球球探秘3D(Secret Balls 3D) 蘋果版下載 | iOS版下載 | iPhone版本下載 | 遊戲下載 | 手機遊戲免費下載 | 版免費下載 | Android版本免費下載 - 休閑 益智 解謎 物理小遊戲

小遊戲 post and 帶來 現在 gpo 做的 borde 免費下載 球球探秘3D(Secret Balls 3D) 手機遊戲發布了 《球球探秘3D》是一款休閑類的遊戲,操控簡單,獨具物理效果,考驗玩家的思維和理解能力,眾多的關卡,更你帶來更加復雜的挑戰,喜歡就趕緊來

UWP:使用Composition實現類似的水波紋Ripple效果

nal tcl sset .cn math point ont .com ubi 原文:UWP:使用Composition實現類似安卓的水波紋Ripple效果先放效果圖: 首先,建立一個RippleHelper.cs文件,然後建立以下附加屬性: IsFillEnab

常用控制元件RecyclerView+HorizontalScrollView實現item側滑效果 常用控制元件RecyclerView+HorizontalScrollView實現item側滑效果

原 安卓常用控制元件RecyclerView+HorizontalScrollView實現item側滑效果 2017年10月28日 12:23:14 低-調

Android核心技術-day04-01-網路圖片檢視器(訊息迴圈機制)

package com.gaozewen.netimageviewer; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.os.Bundle; import and

萬王之王3D手遊怎麼在電腦上玩?萬王之王3D模擬器使用詳細教程

萬王之王3D是騰訊髮型的一款魔幻題材的MMORPG遊戲,已經於近期全平臺上線了。那麼怎麼在電腦上玩萬王之王3D手遊呢?其實想用滑鼠鍵盤大屏玩萬王之王3D手遊非常簡單,不需要安卓模擬器,也不需要你有高配置的電腦,只要你是安卓手機和一臺普通電腦按照我的方法就可以在電腦上玩萬王之王3D手遊了,非常簡單,完