java opengl es_Java-Android-使用openGL ES绘制3D然后绘制2D
我找到了解决方案,但我忘了发布了:)对不起
package at.bartinger.opengl;
import javax.microedition.khronos.egl.EGLConfig;
import javax.microedition.khronos.opengles.GL10;
import android.content.Context;
import android.opengl.GLSurfaceView;
import android.opengl.GLU;
import android.util.AttributeSet;
public class GLGameView extends GLSurfaceView implements GLSurfaceView.Renderer{
public GLGameView(Context context) {
super(context);
setRenderer(this);
}
public GLGameView(Context context, AttributeSet attrs) {
super(context, attrs);
// TODO Auto-generated constructor stub
}
@Override
public void onSurfaceCreated(GL10 gl, EGLConfig config) {
init(gl);
}
@Override
public void onDrawFrame(GL10 gl) {
//Standard
gl.glClear( GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT );
gl.glViewport( 0, 0, getWidth(), getHeight() );
gl.glDisable( GL10.GL_DITHER );
gl.glEnable( GL10.GL_DEPTH_TEST );
gl.glEnable( GL10.GL_CULL_FACE );
//Set 3D
gl.glMatrixMode( GL10.GL_PROJECTION );
gl.glLoadIdentity();
gluPerspective( gl);
draw3D(gl);
gl.glDisable( GL10.GL_CULL_FACE );
gl.glDisable( GL10.GL_DEPTH_TEST );
//Set 2D
gl.glMatrixMode( GL10.GL_PROJECTION );
gl.glLoadIdentity();
gluOrtho2D(gl);
gl.glMatrixMode( GL10.GL_MODELVIEW );
gl.glLoadIdentity();
draw2D(gl);
}
@Override
public void onSurfaceChanged(GL10 gl, int width, int height) {
}
public void init(GL10 gl){}
public void draw2D(GL10 gl){};
public void draw3D(GL10 gl){};
/**
* Sets the projection to the ortho matrix
*/
public void gluOrtho2D(GL10 gl){
gl.glMatrixMode( GL10.GL_PROJECTION );
gl.glLoadIdentity();
GLU.gluOrtho2D( gl, 0, getWidth(), 0, getHeight() );
}
/**
* Sets the projection to the perspective matrix
*/
public void gluPerspective(GL10 gl){
gl.glMatrixMode( GL10.GL_PROJECTION );
gl.glLoadIdentity();
float aspectRatio = (float)getWidth() / getHeight();
GLU.gluPerspective( gl, 67, aspectRatio, 1, 100 );
}
/**
* Sets the projection to the perspective matrix
*/
public void gluPerspective(GL10 gl, float near, float far){
gl.glMatrixMode( GL10.GL_PROJECTION );
gl.glLoadIdentity();
float aspectRatio = (float)getWidth() / getHeight();
GLU.gluPerspective( gl, 67, aspectRatio, near, far );
}
/**
* Sets the projection to the model view matrix
*/
public void gluLookAt(GL10 gl,
float positionX, float positionY, float positionZ,
float zentrumX, float zentrumY, float zentrumZ,
float upX, float upY, float upZ ){
gl.glMatrixMode( GL10.GL_MODELVIEW );
gl.glLoadIdentity();
GLU.gluLookAt( gl,positionX, positionY, positionZ, zentrumX, zentrumY, zentrumZ, upX, upY, upZ );
}
}
java opengl es_Java-Android-使用openGL ES绘制3D然后绘制2D相关推荐
- android opengl图片,Android平台openGL ES实现全景图片
全景又被称为3D实景,是一种新兴的富媒体技术,其与视频,声音,图片等传统的流媒体最大的区别是"可操作,可交互". 全景分为虚拟现实和3D实景两种.虚拟现实是利用maya等软件,制作 ...
- python代码示例图形-Python使用matplotlib绘制3D图形(代码示例)
本篇文章给大家带来的内容是关于Python使用matplotlib绘制3D图形(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 3D图形在数据分析.数据建模.图形和图像处理 ...
- ogre绘制3d图形_R语言统计与绘图:绘制饼图
饼图也是最常见的图形之一,饼图在商业世界中无所不在,然而多数统计学家,包括相应R文档的编写者却都对它持否定态度. 相对于饼图,更推荐使用条形图或点图,因为相对于面积,人们对长度的判断更精确. 今天来学 ...
- python matplotlib绘制 3D图像专题 (三维柱状图、曲面图、散点图、曲线图合集)
python matplotlib 绘制3D图表 文章目录 1. 绘制3D柱状图 2. 绘制3D曲面图 ① 示例1 ② 示例2 3.绘制3D散点图 4. 绘制3D曲线图 ʚʕ̯•͡˔•̯᷅ ...
- python画3d圆形图,Python绘制3D图形
3d图形在数据分析.数据建模.图形和图像处理等领域中都有着广泛的应用,下面将给大家介绍一下如何使用python进行3d图形的绘制,包括3d散点.3d表面.3d轮廓.3d直线(曲线)以及3d文字等的绘制 ...
- python 绘制3D散点图
绘制3D散点图 """绘制三维散点图 """ import numpy as np import matplotlib.pyplot as ...
- python制作3d相册代码_Python使用matplotlib绘制3D图形(代码示例)
本篇文章给大家带来的内容是关于Python使用matplotlib绘制3D图形(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 3D图形在数据分析.数据建模.图形和图像处理 ...
- 【Qt for Android】OpenGL ES 绘制彩色立方体
Qt 内置对OpenGL ES的支持.选用Qt进行OpenGL ES的开发是很方便的,很多辅助类都已经具备.从Qt 5.0開始添加了一个QWindow类,该类既能够使用OpenGL绘制3D图形,也能够 ...
- OpenGl文章
Android OpenGL ES 简明开发教程
Android OpenGL ES 简明开发教程 分类:android学习笔记2011-12-14 15:04375人阅读评论(0)收藏举报 ApiDemos 的Graphics示例中含有OpenGL ...
最新文章
- c语言图像浏览器,单片机采用浏览器进行监控将给软件的编程带来极大的便利...
- xshell 设置屏幕字体
- 使用 Visual Studio Code SQLite 扩展来浏览 SAP Cloud Application Programming 数据库
- Android—APK、JVM-Dalvik-ART
- ant接口用什么天线_手机听收音机时,为什么必须用耳机作为天线?
- 谈谈头条创作者最近几个月的一些改变吧
- 地理坐标系转换工具,支持WGS84/GCJ02/BD09等常用坐标系互转
- curry化 js_Javascript函数柯里化(curry)
- 微信小程序之weui的引用及使用说明
- 开发者的多媒体梦工厂: AV Pipeline Kit究竟是什么?
- java 分布式缓存 开源_Java开源分布式键-值缓存系统Voldemort
- Halcon示例程序Circle 解析
- java集合框架学习笔记
- 第2次作业:软件案例分析
- Google hack语法
- vs编译错误:在查找预编译头时遇到意外的文件结尾。是否忘记了向源中添加“#include stdafx.h”?
- linux下su的demos编译,SU Demos-02Filtering-05Suk1k2filter
- Oracle OCM之路
- 一阶电路误差分析_RC有源低通滤波器的一阶二阶原理分析及其推导!
- 达人评测 锐龙r7 5800x3D相当于i几 r75800x3d参数
热门文章
- Stream流与Lambda表达式(一) 杂谈
- Android Pie提供了自适应供电、神经网络API 1.1等新特性
- laravel-admin集成ueditor编辑器的图片列表显示问题解决方法
- 云计算正在告别DIY时代 阿里云专有云挑起企业级市场大梁
- java面试常问问题(中级及以下工程师)
- redis必杀高级:性能测试
- 哈佛大学 NLP 组开源神经机器翻译系统 OpenNMT
- mysql基础语句整理
- Java基础—ClassLoader的理解
- 【iOS-Cocos2d游戏开发之五】【1】多触点与触屏事件详解(单一监听、事件分发)...