• 大小: 2KB
    文件类型: .rar
    金币: 2
    下载: 1 次
    发布日期: 2021-06-17
  • 语言: Java
  • 标签: 源码  工具  

资源简介

NULL 博文链接:https://bcf.iteye.com/blog/1240897

资源截图

代码片段和文件信息

package cn.bcf.opengl.test;

import java.nio.ByteBuffer;
import java.nio.ByteOrder;
import java.nio.FloatBuffer;
import java.nio.IntBuffer;

import javax.microedition.khronos.opengles.GL10;

import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.opengl.GLUtils;
import android.view.View.OnTouchListener;

public class Pyramid {
Context mContext = null;
private int one = 0x10000;
public float mAngleX;
public float mAngleY;

private IntBuffer mVertexBuffer;
private FloatBuffer mTexBuffer;

FloatBuffer lightDiffuse = FloatBuffer.wrap(new float[] { 0.5f 0.5f 0.5f
1.0f });

FloatBuffer specularParams = FloatBuffer.wrap(new float[] { 0.5f 1.0f
0.5f 1.0f });

FloatBuffer lightPosition = FloatBuffer.wrap(new float[] { 0.3f 0.0f
2.0f 1.0f });

int vertices[] = { 0 one 0 -one -one one one -one one

0 one 0 one -one one one -one -one

0 one 0 one -one -one -one -one -one

0 one 0 -one -one -one -one -one one };


float[] texST={
0.5f0.0f01110.5f0.0f0111
0.5f0.0f01110.5f0.0f0111
};

    //纹理点
    private int[] texCoords = {   
            0 oneone 
            one0 0 
            one 0
    }; 

float x y z;
int textureId;
boolean isY = true;

private Bitmap bitmap;
private int[] textureids=null;
private IntBuffer texBuffer;
private Bitmap[] bit =new Bitmap[4];
public Pyramid(GL10 glfloat x float y float z float rot int textureIdContext context) {
        this.mContext = context;
this.x = x;
this.y = y;
this.z = z;
this.textureId = textureId;
ByteBuffer vbb = ByteBuffer.allocateDirect(vertices.length * 4);
vbb.order(ByteOrder.nativeOrder());
mVertexBuffer = vbb.asIntBuffer();
mVertexBuffer.put(vertices);
mVertexBuffer.position(0);

 // 初始化
        textureids = new int[4]; 

        bit[0]=BitmapFactory.decodeResource(mContext.getResources() R.drawable.walla);
        bit[1]=BitmapFactory.decodeResource(mContext.getResources() R.drawable.wallb);
        bit[2]=BitmapFactory.decodeResource(mContext.getResources() R.drawable.walld);
        bit[3]=BitmapFactory.decodeResource(mContext.getResources() R.drawable.wallf);
        
        // 实例化bitmap
        bitmap = BitGL.bitmap;

        ByteBuffer tbbs = ByteBuffer.allocateDirect(texCoords.length * 3 * 4);
        tbbs.order(ByteOrder.nativeOrder());
        texBuffer = tbbs.asIntBuffer();
        //为每一个面贴上纹理
        for (int i = 0; i < 3; i++) {
            texBuffer.put(texCoords);
        }
        texBuffer.position(0); 
        
        
ByteBuffer tbb = ByteBuffer.allocateDirect(texST.length * 4);
tbb.order(ByteOrder.nativeOrder());  //after byte sort  image is ok
mTexBuffer = tbb.asFloatBuffer();
mTexBuffer.put(texST);
mTexBuffer.position(0);

        /*********贴图开始********/
//打开纹理
  

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       5849  2011-11-08 00:37  Pyramid.java

----------- ---------  ---------- -----  ----

                 5849                    1


评论

共有 条评论