謇区惻蠑蜿第欠蜊 > Android > Open GL



Open GL

縲GL繧偵せ繝シ繝代シ繧ッ繝ゥ繧ケ縺ィ縺励※縲^penGL ES 1.0繧貞ョ溯」縺励◆GL10縲
縲GL10繧堤カ呎価縺励◆GL11縺ェ縺ゥ縺悟性縺セ繧後※縺繧
縲Android 縺ォ縺ッ縲^penGL ES 1.1縺ョ縺溘a縺ョ荳サ隕√↑API縺悟性縺セ繧後>繧

縲Android NDK縺薫penGL縺ォ蟇セ蠢
縲Android NDK r3 莉・髯阪〒Open GL縺ォ逶エ謗・繧「繧ッ繧サ繧ケ縺ァ縺阪k繧医≧縺ォ縺ェ縺」縺ヲ縺繧九

繧ケ繝繝繝暦シ托シ夊レ譎ッ繧堤ー濶イ縺ァ蝪励j貎ー縺儖penGL繝励Ο繧ー繝ゥ繝

逕サ髱「

test02.jpg


繧オ繝ウ繝励Ν 繝励Ο繧ー繝ゥ繝

package com.chinsanSoft;

import android.app.Activity;
import android.opengl.GLSurfaceView;
import android.os.Bundle;
import android.opengl.GLSurfaceView;
import javax.microedition.khronos.egl.EGLConfig;
import javax.microedition.khronos.opengles.GL10;

public class test02 extends Activity {
   private GLSurfaceView mChinSurfaceView;

   @Override
   public void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       mChinSurfaceView = new GLSurfaceView(this);
       mChinSurfaceView.setRenderer(new ChinTutorial());
       setContentView(mChinSurfaceView);
   }
}

class ChinTutorial implements GLSurfaceView.Renderer {

  public ChinTutorial( ) {
   }
   

    public void onDrawFrame(GL10 gl){
   //protected void drawFrame(GL10 gl) {
       //閭梧勹蝪励j貎ー縺
       gl.glClear(GL10.GL_COLOR_BUFFER_BIT|GL10.GL_DEPTH_BUFFER_BIT);
   }

    public void onSurfaceChanged(GL10 gl, int width, int height) {
    }

    public void onSurfaceCreated(GL10 gl, EGLConfig config) {
        //閭梧勹蝪励j貎ー縺苓牡縺ョ謖螳
        gl.glClearColor(0.5f,0.5f,0.5f,1);
        
        //繧ォ繝ゥ繝シ縺ィ繝繧ッ繧ケ繝√Ε蠎ァ讓吶ョ陬憺俣邊セ蠎ヲ 鬮倬
        gl.glHint(GL10.GL_PERSPECTIVE_CORRECTION_HINT,GL10.GL_FASTEST);
    }

}




繧ケ繝繝繝暦シ抵シ壼屁隗貞ス「縺ァ蝪励j貎ー縺儖penGL繝励Ο繧ー繝ゥ繝

逕サ髱「

test03.jpg


繧オ繝ウ繝励Ν 繝励Ο繧ー繝ゥ繝

package com.chinsanSoft;

// 蝗幄ァ貞ス「繧抵シ抵シ、縺ァ陦ィ遉コ縺吶k繝励Ο繧ー繝ゥ繝
import android.app.Activity;
import android.opengl.GLSurfaceView;
import android.os.Bundle;
import android.opengl.*;
import java.nio.*;
import javax.microedition.khronos.egl.EGLConfig;
import javax.microedition.khronos.opengles.GL10;

public class test03_3d extends Activity {
   private GLSurfaceView mChinSurfaceView;
   /** Called when the activity is first created. */
   @Override
   public void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       mChinSurfaceView = new GLSurfaceView(this);
       mChinSurfaceView.setRenderer(new ChinTutorialOne());
       setContentView(mChinSurfaceView);
   }
}


class ChinTutorialOne implements GLSurfaceView.Renderer {

   float[] square=new float[] {//鬆らせ     
           -0.25f,-0.25f,0.0f,
            0.25f,-0.25f,0.0f,
           -0.25f, 0.25f,0.0f,
            0.25f, 0.25f,0.0f};

   FloatBuffer squareBuff ;//鬆らせ繝舌ャ繝輔ぃ	
	
	
  public ChinTutorialOne(/*Context c*/) {
	    squareBuff=getFloatBuffer(square);//鬆らせ繝舌ャ繝輔ぃ	
       //super(c);
   }

   
  	private FloatBuffer getFloatBuffer(float [] array){
		FloatBuffer floatBuffer;
		ByteBuffer bb = ByteBuffer.allocateDirect(array.length * 4);
		bb.order(ByteOrder.nativeOrder());
		floatBuffer = bb.asFloatBuffer();
		floatBuffer.put(array);
		floatBuffer.position(0);
		return floatBuffer;
	}
 
    public void onDrawFrame(GL10 gl){
   //protected void drawFrame(GL10 gl) {
       //閭梧勹蝪励j貎ー縺
       gl.glClear(GL10.GL_COLOR_BUFFER_BIT|GL10.GL_DEPTH_BUFFER_BIT);

       //繝「繝繝ォ繝薙Η繝シ陦悟励ョ謖螳
       gl.glMatrixMode(GL10.GL_MODELVIEW);
       gl.glLoadIdentity();
       gl.glTranslatef(0,0,-1);//蟷ウ陦檎ァサ蜍
       
       //濶イ縺ョ謖螳
       gl.glColor4f(1,0,0,0.5f);
       
       //鬆らせ驟榊励ョ謖螳
       gl.glVertexPointer(3,GL10.GL_FLOAT,0,squareBuff);
       gl.glEnableClientState(GL10.GL_VERTEX_ARRAY);
       
       //繝励Μ繝溘ユ繧」繝悶ョ謠冗判
       gl.glDrawArrays(GL10.GL_TRIANGLE_STRIP,0,4);
       
    
    }

    public void onSurfaceChanged(GL10 gl, int width, int height) {
    }

    public void onSurfaceCreated(GL10 gl, EGLConfig config) {
        //閭梧勹蝪励j貎ー縺苓牡縺ョ謖螳
        gl.glClearColor(0.5f,0.5f,0.5f,1);
        
        //繧ォ繝ゥ繝シ縺ィ繝繧ッ繧ケ繝√Ε蠎ァ讓吶ョ陬憺俣邊セ蠎ヲ-鬮倬
        //gl.glHint(GL10.GL_PERSPECTIVE_CORRECTION_HINT,GL10.GL_FASTEST);

        //蟆蠖ア陦悟励ョ謖螳
        gl.glMatrixMode(GL10.GL_PROJECTION);
        gl.glLoadIdentity();
        GLU.gluOrtho2D(gl,0.0f,1.2f,0.0f,1.0f);//蟷ウ陦梧兜蠖ア
    }




繧ケ繝繝繝暦シ難シ夂ォ区婿菴薙r陦ィ遉コ縺吶k OpenGL繝励Ο繧ー繝ゥ繝

逕サ髱「

test04.jpg


繧オ繝ウ繝励Ν 繝励Ο繧ー繝ゥ繝



縲縲縲蟾・莠倶クュ



繝「繝繝ェ繝ウ繧ー

縲縲繝昴Μ繧エ繝ウ陦ィ遉コ縺ィ繝繧ッ繧ケ繝√Ε陦ィ遉コ縺後〒縺阪◆繧峨∵ャ。縺ォ繧繧翫◆縺上↑繧九ョ縺ッ閾ェ蛻縺ァ繝「繝繝ェ繝ウ繧ー縺励◆繧ェ繝悶ず繧ァ繧ッ繝医r陦ィ遉コ縺輔○繧九%縺ィ
縲縲http://ronor.blog81.fc2.com/blog-category-1.html

蜿り

縲縲http://code.google.com/p/rokon/downloads/list



縲縲謌サ繧

     




Front page   Edit Unfreeze Diff Backup Upload Copy Rename Reload   New List of pages Search Recent changes   Help   RSS of recent changes