为什么代码中的GLES20会显示错误

package com.bn.Sample9_1;
import android.opengl.GLSurfaceView;
import android.opengl.GLES20;
import android.view.MotionEvent;
import javax.microedition.khronos.egl.EGLConfig;
import javax.microedition.khronos.opengles.GL10;
import android.content.Context;

class MySurfaceView extends GLSurfaceView
{
private final float TOUCH_SCALE_FACTOR = 180.0f/320;//角度缩放比例
private SceneRenderer mRenderer;//场景渲染器

private float mPreviousY;//上次的触控位置Y坐标
private float mPreviousX;//上次的触控位置X坐标

public MySurfaceView(Context context) {
    super(context);
    this.setEGLContextClientVersion(2); //设置使用OPENGL ES2.0
    mRenderer = new SceneRenderer();    //创建场景渲染器
    setRenderer(mRenderer);             //设置渲染器               
    setRenderMode(GLSurfaceView.RENDERMODE_CONTINUOUSLY);//设置渲染模式为主动渲染   
}

//触摸事件回调方法
@Override 
public boolean onTouchEvent(MotionEvent e) 
{
    float y = e.getY();
    float x = e.getX();
    switch (e.getAction()) {
    case MotionEvent.ACTION_MOVE:
        float dy = y - mPreviousY;//计算触控笔Y位移
        float dx = x - mPreviousX;//计算触控笔X位移
        mRenderer.yAngle += dx * TOUCH_SCALE_FACTOR;//设置绕y轴旋转角度
        mRenderer.xAngle+= dy * TOUCH_SCALE_FACTOR;//设置绕x轴旋转角度
        requestRender();//重绘画面
    }
    mPreviousY = y;//记录触控笔位置
    mPreviousX = x;//记录触控笔位置
    return true;
}

private class SceneRenderer implements GLSurfaceView.Renderer 
{  
    float yAngle;//绕Y轴旋转的角度
    float xAngle; //绕X轴旋转的角度
    //从指定的obj文件中加载对象
    LoadedObjectVertexOnly lovo;

    public void onDrawFrame(GL10 gl) 
    { 
        //清除深度缓冲与颜色缓冲
        GLES20.glClear( GLES20.GL_DEPTH_BUFFER_BIT | GLES20.GL_COLOR_BUFFER_BIT);

        //坐标系推远
        MatrixState.pushMatrix();
        MatrixState.translate(0, -2f, -25f);   //ch.obj
        //绕Y轴、Z轴旋转
        MatrixState.rotate(yAngle, 0, 1, 0);
        MatrixState.rotate(xAngle, 1, 0, 0);

        //若加载的物体不为空则绘制物体
        if(lovo!=null)
        {
            lovo.drawSelf();
        }   
        MatrixState.popMatrix();                  
    }  

    public void onSurfaceChanged(GL10 gl, int width, int height) {
        //设置视窗大小及位置 
        GLES20.glViewport(0, 0, width, height); 
        //计算GLSurfaceView的宽高比
        float ratio = (float) width / height;
        //调用此方法计算产生透视投影矩阵
        MatrixState.setProjectFrustum(-ratio, ratio, -1, 1, 2, 100);
        //调用此方法产生摄像机9参数位置矩阵
        MatrixState.setCamera(0,0,0,0f,0f,-1f,0f,1.0f,0.0f);
    }

    public void onSurfaceCreated(GL10 gl, EGLConfig config) {
        //设置屏幕背景色RGBA
        GLES20.glClearColor(0.0f,0.0f,0.0f,1.0f);    
        //打开深度检测
        GLES20.glEnable(GLES20.GL_DEPTH_TEST);
        //打开背面剪裁   
        GLES20.glEnable(GLES20.GL_CULL_FACE);
        //初始化变换矩阵
        MatrixState.setInitStack();
        //加载要绘制的物体
        lovo=LoadUtil.loadFromFile("ch.obj", MySurfaceView.this.getResources(),MySurfaceView.this);
    }
}

}

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Android OpenGLES2.0(八)——纹理贴图之显示图片
前面几篇博客,我们将了Android中利用OpenGL ES 2.0绘制各种形体,并在上一篇博客中专门讲了GLSL语言。但是我们看到的基于OpenGL开发的应用和游戏,可不仅仅是那些规则形体和一些简单的色彩构成,而是各种不规则的形体构成了现实世界或者卡通世界的人和事物,他们都是外面穿着漂亮“衣服”的。本篇博客就是来讲解这些“衣服”的基础的。这些衣服就是纹理贴图。什么是纹理贴图 一般说来,纹理是表
一些c++代码运行时会出现的错误(准备整理起来)
1.error:’classname’ does not aname a type 不贴源代码了,犯了一个比较低级的错误。 解决方案如下: (1)包含该类头文件 (2)看命名空间是否一致 未完待续。。。...
Android OpenGLES2.0(四)——正方形和圆形
上篇博客中我们已经使用到了相机和投影,利用变换矩阵,绘制出了等腰直角三角形。在本篇博客中,我们绘制正方形和圆形同样少不了变换矩阵。构建正方形和圆形前面提到过,在OpenGLES的世界里面是没有正方形和圆形的,只有点、线、三角形。三角形就是OpenGLES提供的最复杂的图元单位。所以我们要绘制填充的正方形和圆形就需要利用三角形来实现。正方形正方形的构建比较简单,可以用两个三角形组成。当然,你也可以用很
今天写if_else代码出现错误,发现了一个问题
import java.util.Scanner; public class If_1 { /** * 使用if_else结构计算用户的成绩 */ public static void main(String[] args) { Scanner input = new Scanner(System.in); //提示用户输入分数 System.out.p...
OpenGL ES (12): 答疑解惑 -- GLES20的绘图相关方法解释
1.介绍 之前的文章中已经写到在Render中的onDrawFrame()调用了 mTriangle.draw(),进行了三角形的绘制。 我们这里是要分析draw()里面的东西 关于GLES20的绘图方法,解释参数。   2.先看之前代码中的内容具体是怎样 public Triangle() { ByteBuffer bb = ByteBuffer.allocateDi...
关于eclipse为什么能够自动提示代码错误
这是靠eclipse自带的插件实现的,这个插件所有版本的Eclipse都自己集成了。 如果你去看eclipse文件夹下的plugins文件夹,你能找到类似org.eclipse.jdt.XXX.XXX的若干jar文件,那些包就是eclipse专门用以处理java代码分析工作的jdt插件工具包。而jdt中也包含检测,处理语法错误的包,可以发现并纠正语法错误。 这不是java编译
BN赛艇(OpenGL ES Android完整版)
BN赛艇 完整代码 OpenGL OpenGLES ES20 GLES20
eclipse代码中有错误,项目中却不显示红叉解决办法
eclipse代码中有错误,项目中却不显示红叉解决办法 先看图: 解决办法: 修改eclipse代码提示级别 1.单个项目修改 项目上右键-->properties-->javacompiler-->building-->enable project specific setting-->build pathproblems-->...
OpenglES遇到的坑
1、纹理无法显示,信息窗口没有明显错误解决方法:shader内部命名写错。2、在编译C++端文件时,提示cannot find -lGLESv3解决方法:在default.properties,将目标版本设的高一些,原先是9。目标版面如果不支持该opengl版本会出现这种情3.opengles读入大尺寸纹理出错。解决方法,将大尺寸纹理的剪切为长或高,不要超过2048(opengles3.0支持最大...
Myeclipse文件没出错,但是项目上显示有错的解决办法
因工作原因,同事将他的java项目交接给了我。和平时的交接一样。他把他最新的源代码,打成压缩包,发给我。我解压后,使用myeclipse开发工具,通过导入,将项目导入到我的开发工具中,这个时候有一个问题出现了,在项目上有个红色的叉号。而源代码也没有任何错误。因为代码在同事那里,一切正常。如下图所示:     我找了很长时间的原因,还真不好找,今天早上来,我又在找,终于在csdn论坛上,看到一
eclipse里面创建servlet出现错误的解决方法
当我创建servlet后,出现了很多错误,目测是没有引进各种包 如图所示: 解决办法是:打开Properties->Java Bulid path->Libraries->Add Libraries->Server Runtime,选择tomcat服务器,如果server Runtime里面是空的,是因为还没有添加服务器,添加运行时环境: Window->Prefere
Android OpenGLES2.0(十一)——利用OpenGLES做Camera预览
学习FFMpeg,推荐雷神的博客。天妒英才,为雷神叹息。第一步 下载FFmpeg(F F m peg)。 第二步 解压FFmpeg。 第三步 windows安装MinGW和Msys。也许还要yasm,名字改为yasm.exe放到C:\WINDOWS\system32中。Linux下就不用这么麻烦了。 第四步 建立如下目录结构,ffmpeg为解压出来的FFmpeg。configure为ff
为什么在VC6.0的编译器 编译后 总是出现这样一个错误Error spawning cl.exe .
方法1: 启动VC时不要用图形界面,通过在命令提示符下输入:Msdev /useenv运行(注意啦/前面有个空格).它会强制使系统环境变量全高设置成正确值.而且,只需要使用一次这样的方式运行VC,以后再次通过双击图标的方式启动也不会有问题。 方法2: 使用你的V
eclipse中导入工程时会出现很多错误的解决办法
出现这样的错误是因为没有为项目指定sdk的原因 为项目指定sdk的方法右键点击工程名称,弹出菜单中点击“Properties->Android”,在Project build target 中指定你要使用的SDK版本即可
使用OpenGLES 在 android 上显示摄像头滤镜效果
这是一份 使用opengles 绘制摄像头数据的代码,并使用滤镜处理了摄像头的效果,使用GPU绘制,减少cpu的占用
android 硬解码用opengles3.0渲染视频
想着以后可能会遇到用opengles3.0来处理视频就想了解一下,结果发现网上没有多少这方面的东西,然后就自己摸索了 先来说说java端的写法,我这篇就是用java端opengles2.0写的android 简单的exoplayer全景播放器,然后我想改成3.0的,很简单,直接把GLES20改成GLES30,比如 GLES30.glGenTextures(1, textures, 0); ...
Android OpenGLES2.0(十八)——轻松搞定Blend颜色混合
Blend是OpenGL中的一个非常重要的部分,它可以让每个输出的源和目的颜色以多种方式组合在一起,以呈现出不同的效果,满足不同的需求。
android opengles 坐标系 旋转改变 视角位置
OpenGL中的6种坐标系 OpenGL中存在6种坐标系, 1. Object or model coordinates 2. World coordinates 3. Eye (or Camera) coordinates 4. Clip coordinates 5. Normalized device coordinates 6. Window (or screen) c
关于Eclipse中项目提示错误而文件不显示错误问题的解决
本人刚自学Android不久,今天在调试一个App Widget时,有一个异常的现象,就是项目文件出现错误,即项目文件出现红叉,但是并没有提示哪个目录文件出现错误,如图: 然后我上网搜了很久,尝试了很多方法,还是不行。网上有下面几种解决方法: 1. Project->Clean 2.确认导入所需要的包(我反复查看了很多次了,确实都导入了) 3.在工程项目上右键->android
解决markdown编辑器代码显示难看的问题
很简单,只要在三个引号的右边加上你所用的语言就行。 原来的编写是: ``` def GAN(): max_seq_len = 4096 score_template = 'TPR %(TPR)f\tFPR %(FPR)f\tAccuracy %(Accuracy)f\tAUC %(AUC)f' dir_path = '../tensorflow_res...
python中为什么加上中文注释就会报错
在python代码执行时,若有中文注释就会报错,你若遇到此类问题,可以参考这篇博客
opengles绘制纹理(一)
矩阵变换类 package test.com.opengles7_1; import android.opengl.Matrix; /** * Created by hbin on 2016/8/15. */ public class MatrixState { private static float[] mProjMatrix = new float[16];//4x4矩阵
eclipse中关于创建servlet类出现代码错误的原因
今天在学习Javaweb的时候,遇到了一个很意外的问题,就是在创建servlet类的时候,程序出现错误,原因就是没找到javax.servlet包,如图 于是在网上看了半天资料,发现就是缺少tomcat包。 解决办法为:右键单击你的项目,选择bulid path(构建路径),然后选择,进入如下界面 选中server Runtime,单击下一步,进入如下界面 选中apache t...
Android上使用OpenGLES2.0显示YUV数据
楼主收到这样的任务,在Android上用OpenGLES来显示YUV图像,之所以这样做,是因为: 1.Android本身也不能直接显示YUV图像,YUV转成RGB还是必要的; 2.YUV手动转RGB会占用大量的CPU资源,如果以这样的形式播放视频,手机会很热,所以我们尽量让GPU来做这件事; 3.OpenGLES是Android集成到自身框架里的第三方库,它有很多的可取之处。 博主
Eclipse_Project错红X但没错误
Eclipse中某一个项目报红X,但展开又发现项目没错;出现这样的状况可以尝试以下方式解决; 1: F5刷新, 2: Project--》clean; 3: 右鍵點選project ,選取properties    選取Project Facets    將Java版本改成您的项目所用的jdk版本;...
OpenGLES环境下绘制虚线的一种方法
            将OpenGl代码移植到OpenGL ES。移植时遇到了很多问题,绘制虚线是其中的一个。             OpenGl环境下,使用glLineStipple设置画线模式,使用glEnable(GL_LINE_STIPPLE)打开该选项即可实现虚线的绘制。             但在OpenGL ES环境下,无法使用上述方法。             对于曲线...
Android Camera2 Opengles2.0 图像实时滤镜 显示 视频编码
demo: http://download.csdn.net/download/keen_zuxwang/10043183 在博文"Android Camera2 Opengles2.0 预览图像实时滤镜 视频编码" http://blog.csdn.net/keen_zuxwang/article/details/78366598 的基础上添加FBO实时滤镜、回调显示---其中用到glReadPixels
Eclipse 编译java文件后出错 左树无红叉
[b]问题描述:[/b] 今天遇见让人郁闷的问题,在项目工程中java文件编译通不过,eclipse在java文件中标示错误,但是却不不能在navigator的视图中像平常一样出现小红叉。通过clean project等一系列操作都不能够解决问题,很是郁闷 [b]解决方法:[/b] 查看eclipse 知道 Problems 工具,在错误提示中发现了一个关于异常的jar包没有引入,结果通...
eclipse的显示我的代码报错(即工程有红叉),其实我的代码并没有报错,怎么办?
 eclipse的显示我的代码报错(即工程有红叉),其实我的代码并没有报错,怎么办?  Eclipse多项目编译假性报错的解决,即eclipse的编译器出错了,其实我的代码并没有报错,怎么办? ...
java出现莫名其妙的错误(jar包冲突)
编译打包工程-->查看编译完成的lib文件夹下,同样的包是否有两个,如果有则是jar冲突
eclipse,代码中有错误,项目或者java类中却不显示红叉
从网上找了很多,基本就是一下集中方法:***修改eclipse 代码提示级别1.单个项目修改项目上右键-->properties-->java compiler-->building-->enable project specific setting-->build path problems-->选中abort   Incomplete build path/...
如何在Android上使用OpenGL ES 2.0绘制点。
如何在Android使用OpenGL ES 2.0绘制点,看上去并不是一个复杂的问题,但是上网一搜,满眼都是绘制点的代码。 如果你看到类似如下代码,基本上你已经掉坑里了。   glBeging();  ...  glDrawPoint(...);  ...  glEnd(); 如上是使用OpenGL ES 1.0绘制点的代码。因为架构不同,在OPENGL ES 2.0的世界里
OpenGLES2.0绘制2D图片详解(附完整demo)
前段时间项目中有用到OpenGLES进行开发的部分,因此花了2周的时间研究了下OpenGLES,写了个绘制2D图片的Demo,OpenGLES提供了android访问OpenGL的接口,也就是我们熟知的GLSurfaceView的使用,他实际上也是封装了JNI规范进行调用OpenGL的代码. 下面附完整Demo的代码MainActivity.javapackage com.example.draw
Android上的OpenGL ES 使用错误 解决
Android上的OpenGL ES 使用错误 解决
Eclipse 导入项目出现错误
【Eclipse Import Project】 eclipse>>import>>project 时项目源代码可能会出现一些错误提示,因为有一些项目在不同的开发环境,所有导入进来首先配置开发环境和依赖库,如果是jre的version不一样还需要将项目重新编译一次。【第一步】检查项目依赖的jar包  JavaResource下面会有Libraries,如果是web项目的需要...
python中文注释报错的解决方法
此方法适用于linux环境下,在文件开头添加以下两条语句: #!/usr/bin/env python #_*_coding:utf-8_*_
C和C++里面常见错误和异常出现怎么解决总结(不断更新)
1、cannot open Debug/first.exe for writing 如下图: 原因:控制台没有关闭,不能写,因为编译的exe文件正在运行,而再次编译是要修改这个exe文件的,因为不让写,所以就抱着这个错。 解决办法:是看有没有运行编译后文件,如果正运行着,就将其关掉。
零基础开发OpenGL ES 2.0学习笔记-Android篇(一)
一直想在Android上做点什么,现在终于有
代码正常,分号报错
以下纯属娱乐: Date date=new Date() 上面这句代码没有问题,除了缺个分号 Date now=new Date(); 加上分号了,但是报错了。。。。 这是为什么呢? 因为,这个分号不是英文分号,是希腊字母的问号。。。。 意不意外?惊不惊喜?刺不刺激? 如果你给你的程序员朋友替换了,被打残的时候不要找我哦。。。 ...
在Eclipse中添加struts.xml为什么会出现错误?
No1:你struts2的jar包导入齐全没有 ,在仓库里面找/在libraries找 No2:好像是struts2上面的配置有问题,应该是 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC     "-//Apache Software Foundation//DTD Struts Configura...
文章热词 设计制作学习 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 区块链价格为什么会上涨 为什么学python