android OpenGL开发使用JPCT-AE引擎显示3D立方体

本文介绍了如何在Android平台上利用OpenGL ES和JPCT-AE引擎创建并显示一个3D立方体。JPCT-AE是Java 3D图形引擎jPCT在Android上的移植版,简化了3D图形编程。通过引入jpct_ae.jar库,开发者可以重写GLSurfaceView的特定方法来实现3D模型的渲染。文章提供了一个官方Demo的修改示例,并分享了JPCT-AE引擎的下载链接。
摘要由CSDN通过智能技术生成

在了解JPCT之前得了解什么是opengl,opengl是一个跨语言,跨平台的3D图形编程接口,OpenGL ES (OpenGL for Embedded Systems) 是 OpenGL 三维图形 API 的子集,针对手机、PDA和游戏主机等嵌入式设备而设计。而JPCT则是java的一款3D图形引擎,封装了opengl,jPCT-AE是jPCT在android平台上的移植版本。

用opengl的框架(或者叫做引擎)来进行android开发会比使用原本的opengl es方便许多,所以下文就参照JPCT-AE的一个官方Demo小例子进行修改,在手机上显示一个带贴图的3D模型。

效果图

这里写图片描述

JPCT-AE引擎压缩包百度云链接: https://pan.baidu.com/s/1o8jyqJg 密码: ehpu,下载完解压后将lib目录下的jpct_ae.jar文件引入android studio即可。

这里写图片描述

接下来就是按照正常的android opengl编程思路,使用GLSurfaceview来进行3D物体的展示,分别重写onSurfaceCreated,onDrawFrame,onSurfaceChanged方法。

具体代码和注释如下

import android.graphics.Bitmap;
import android.opengl.GLSurfaceView;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.MotionEvent;

import com.threed.jpct.Camera;
import com.threed.jpct.FrameBuffer;
import com.threed.jpct.Light;
import com.threed.jpct.Object3D;
import com.threed.jpct.Primitives;
import com.threed.jpct.RGBColor;
import com.threed.jpct.SimpleVector;
import com.threed.jpct.Texture;
import com.threed.jpct.TextureManager;
import com.threed.jpct.World;
import com.threed.jpct.util.BitmapHelper;
import com.threed.jpct.util.MemoryHelper;

import javax.microedition.khronos.egl.EGLConfig;
import javax.microedition.khronos.opengles.GL10;

public class MainActivity extends AppCompatActivity {
   

    //GLSurfaceView,负责OpenGL渲染
    private GLSurfaceView mGLSurfaceView;
    //自定义Renderer类(渲染器)
    private GlRenderer mRenderer ;

    //jpct_ae中的3D物体
    private Object3D cube = null;
    //位置
    private float xpos = -
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值