程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> osg for android (一) 簡單幾何物體的加載與顯示,osgandroid

osg for android (一) 簡單幾何物體的加載與顯示,osgandroid

編輯:C++入門知識

osg for android (一) 簡單幾何物體的加載與顯示,osgandroid


  • 1. 首先需要一個OSG for android的環境.
  • (1).NDK 現在Eclipse 對NDK已經相當友好了,已經不需要另外cygwin的參與,具體可以參考
  • Android NDK開發篇(一):新版NDK環境搭建(免Cygwin,超級快) 
  • (2).osg for android的編譯,參考 osg for android學習之一:windows下編譯(親測通過) 建議編譯OpenGL ES2版本.
  • 2.然後加載OSG自帶的Example:osgAndroidExampleGLES2
  •  
    (1)點擊菜單鍵加載文件路徑,輸入/sdcard/osg/cow.osg(必須先往sdcard創建文件夾osg並把cow.osg放到該文件夾裡邊)                                                                                           

(2)接著經典的牛出現了:)     

                                                                                                           

3.自帶的example太多的代碼,這樣的代碼無論對於NDK的初學者或OSG很不直觀,所以本人重寫了一個HelloWolrd for osg的例子。例子很簡單,就是簡單加載一個四邊形並附上顏色。

(1)Java 代碼:

(1)Java 代碼: 
package com.example.helloosg;
import android.app.Activity;
import android.opengl.GLSurfaceView;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.TextView;

public class MainActivity extends Activity {

	private GLSurfaceView mGLSurfaceView;
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		mGLSurfaceView = new GLSurfaceView(this);
		mGLSurfaceView.setEGLContextClientVersion(2);
		NDKRenderer renderer = new NDKRenderer();
		this.mGLSurfaceView.setRenderer(renderer);
		this.setContentView(mGLSurfaceView);
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.main, menu);
		return true;
	}

	@Override
	protected void onResume() {
		// TODO Auto-generated method stub
		super.onResume();
		mGLSurfaceView.onResume();
	}

	@Override
	protected void onPause() {
		// TODO Auto-generated method stub
		super.onPause();
		mGLSurfaceView.onPause();
	}

	@Override
	public boolean onOptionsItemSelected(MenuItem item) {
		// Handle action bar item clicks here. The action bar will
		// automatically handle clicks on the Home/Up button, so long
		// as you specify a parent activity in AndroidManifest.xml.
		int id = item.getItemId();
		if (id == R.id.action_settings) {
			return true;
		}
		return super.onOptionsItemSelected(item);
	}
}


osg與ogre哪個適合開發GIS?

顯而易見,如果你的項目是想要靈活高效,且極具顯示效果的的地圖界面那就用ogre,如果你是真對大型數據集提供精確的計算結果,及高難度的圖層疊加計算分析,那麼就用osg,另外提一句,osg是基於OpenGL接口開發的,而esri最近開發的arcgis for android API也是基於OpenGL的,你自己分析一下吧,看哪個更適合你的項目,一家之言,錯了勿噴,獨家手打,僅供參考。
 


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved