資源簡介
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
評論
共有 條評論