android ndk调用OpenGL 实现纹理贴图Texture

本文介绍如何在Android NDK中使用OpenGL进行纹理贴图。作者指出国内相关资源稀缺,主要通过研究书籍、网络资料和解决实际问题。文章详细讲述了调整NDK示例项目GL2JNIActivity的过程,包括图片尺寸要求、纹理配置、C++代码修改等,并提供了项目下载链接。
摘要由CSDN通过智能技术生成

首先必须说,国内在OpenGL这方面特别是ndk上的分享太太太少


这中间遇到很多问题,而这些问题需要在书上,在网上,在各种资料上找,而且书上是java层调用,网上的缺少各种文件案例,只有在java层研究,在各种案例中找需要的知识点,遇到问题最终只有google搜外国网站才能解决。

顺便说下,虽然现在google被墙,除了翻墙还有个很简单的办法上google。

http://www.gfsoso.com/

谷粉搜搜


接下来正文

——————————————————————————————

学习ndk应该都是从google配有的案例开始的吧:GL2JNIActivity

这个案例就是一个会变颜色的背景加一个绿色三角形

因为我开始学习纹理贴图,所以打算将三角形换成贴图


首先需要配置纹理

在GL2JNIView.java中修改Renderer类

 private static class Renderer implements GLSurfaceView.Renderer {
        public void onDrawFrame(GL10 gl) {
            GL2JNILib.step();
        }

        public void onSurfaceChanged(GL10 gl, int width, int height) {
            GL2JNILib.init(width, height);
        }
        
        
        private Context mContext;
        int textureId;
        private int[] TextureString = new int[1];
        public void onSurfaceCreated(GL10 gl, EGLConfig config) {
        	mContext = GL2JNIActivity.getContext();
        	
            //Bitmap bitmap = getBitmap(mContext,R.drawable.bac);
            Bitmap bitmap = getBitmap(mContext,R.drawable.wall);
            if(bitmap != null)
            {
            	Log.e("step", "bing the texture succeed!");
            	gl.glEnable(GLES20.GL_TEXTURE_2D);
	            gl.glGenTextures(1, TextureString,0);
	            textureId= TextureString[0];
	            Log.e("textureId", String.valueOf(textureId));
	            gl.glBindTexture(GLES20.GL_TEXTURE_2D, textureId);
	            gl.glTexParameterf(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_MIN_FILTER, GLES20.GL_NEAREST);
	  
  • 6
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值