glew/glut/glfw3/gltools它们都是OpenGL的扩展或工具,其中glut是mac自带的,这里就不用讲了,直接就可以用。...执行命令: brew install glew brew install glfw3 安装成功后,可以在/usr/local/Cellar目录下找到glew/glfw3的.a文件和头文件 四、下载编译gltools...下载链接:https://github.com/HazimGazov/GLTools 编译: ?...注意:如果你在项目中用到了gltools和glut,你还是要导入.a或framework文件,如下图: ?...配置好了以后,关于OpenGL的glew/glut/glfw3/gltools就都可以用了 七、运行第一个OpenGL工程 创建一个Mac App,glfw的官网可以下载演示demo,下载glfw将文件中
/ # GLTools工具包 | | | | |...| | | | | | | +---- GLTools.h...# GLTools头文件 | | | | | | | +---...| | | | | +---- GLTools.cpp...# GLTools头文件 | | | | | +---- math3d.cpp
filePath = "glsl/camera_fs.glsl" ) mProgramHandle = GLTools.createAndLinkProgram...GLES20.GL_TEXTURE_WRAP_T, GLES20.GL_CLAMP_TO_EDGE ) return textures[0] } GLTools...设置顶点坐标、纹理坐标、索引数据 设置顶点坐标,代码如下: var vertexBuffer = GLTools.array2Buffer( floatArrayOf(...1.0f, 1.0f, 0.0f // top right ) ) 设置纹理坐标,代码如下: var texBuffer = GLTools.array2Buffer...0.0f ) ) 设置索引数据,代码如下: var index = shortArrayOf(3, 2, 0, 0, 1, 2) val indexBuffer = GLTools.array2Buffer
filePath = "glsl/video_fs.glsl" ) mProgramHandle = GLTools.createAndLinkProgram...textureId = GLTools.createOESTextureId() var surfaceTexture = SurfaceTexture(textureId)...textureId = GLTools.createOESTextureId() var surfaceTexture = SurfaceTexture(textureId)...创建顶点坐标、纹理坐标、顶点索引数据 顶点坐标初始化如下: var vertexBuffer = GLTools.array2Buffer( floatArrayOf(...0.0f ) ) 顶点索引初始化如下: var index = shortArrayOf(3, 2, 0, 0, 1, 2) val indexBuffer = GLTools.array2Buffer
, filePath = "glsl/cube_fs.glsl" ) mProgramHandle = GLTools.createAndLinkProgram...mProgramHandle, "a_color") 初始化顶点数据 private val r: Float = 0.5f //顶点坐标 var vertexBuffer = GLTools.array2Buffer...7, 1, 0, 7, 0, 3, 7, 3, 5, 6, 1, 2, 6, 2, 4 ) val mIndicesBuffer = GLTools.array2Buffer...(mIndices) 初始化颜色数据 var colorBuffer = GLTools.array2Buffer( floatArrayOf(
filePath = "glsl/triangle_fragment.glsl" ) mProgramHandle = GLTools.createAndLinkProgram...vPositionLoc = GLES20.glGetAttribLocation(mProgramHandle, "vPosition") 初始化顶点数据,代码如下: var vertexBuffer = GLTools.array2Buffer...0.0f ) ) 初始化索引数据,代码如下: var index = shortArrayOf(3,2,0,0, 1, 2) val indexBuffer = GLTools.array2Buffer...glViewport(0, 0, width, height) var ratio = width / height.toFloat() vertexBuffer = GLTools.array2Buffer
"Error create program") } return programHandle } 最终返回program的句柄,这2步是固定的,因为我们将其封装为工具类GLTools...三角形的顶点坐标设置如下: var vertexBuffer = GLTools.array2Buffer( floatArrayOf( 0.0f...0.0f, // bottom left 0.5f, -0.5f, 0.0f // bottom right ) ) 工具类GLTools...{ GLES20.glUseProgram(mProgramHandle) GLTools.setAttributePointer(vPositionLoc, vertexBuffer...GLTools.setAttributePointer(vPositionLoc, vertexBuffer, 3)表示将顶点数据设置给program,参数说明情况如下: Location:vPosition
s++ } r++ } vertexBuffer = GLTools.array2Buffer...(vertexs) texBuffer = GLTools.array2Buffer(texcoords) mIndicesBuffer = GLTools.array2Buffer...filePath = "glsl/sphere_fs.glsl" ) mProgramHandle = GLTools.createAndLinkProgram...BitmapFactory.decodeResource(context.resources, R.drawable.earth) textureId = GLTools.loadTexture...(bitmap) } GLTools.loadTexture为封装的工具类方法,在OpenGL ES 绘制纹理文章中已经详细介绍,图片纹理的相关内容也可以参考此文章。
filePath = "glsl/point_fs.glsl" ) mProgramHandle = GLTools.createAndLinkProgram...uColorLoc = GLES20.glGetUniformLocation(mProgramHandle, "u_color") 初始化顶点数据,代码如下: val vertexBuffer = GLTools.array2Buffer...floatArrayOf( 0F, 0F, 0F ) ) 初始化颜色数据,代码如下: val colorBuffer = GLTools.array2Buffer
, filePath = "glsl/line_fs.glsl" ) mProgramHandle = GLTools.createAndLinkProgram...uColorLoc = GLES20.glGetUniformLocation(mProgramHandle, "u_color") 初始化线的顶点数据,代码如下: val vertexBuffer = GLTools.array2Buffer...0.5F, 0F, -0.5F, -0.5F, 0F ) ) 初始化线的颜色数据,代码如下: val colorBuffer = GLTools.array2Buffer
filePath = "glsl/triangle_fragment.glsl" ) mProgramHandle = GLTools.createAndLinkProgram...vPositionLoc = GLES20.glGetAttribLocation(mProgramHandle, "vPosition") 初始化线的顶点数据,代码如下: var vertexBuffer = GLTools.array2Buffer
filePath = "glsl/bitmap_fs.glsl" ) mProgramHandle = GLTools.createAndLinkProgram...定义顶点数据 创建全屏的顶点数据代码如下: var vertexBuffer = GLTools.array2Buffer( floatArrayOf(...buffer.put(array) buffer.position(0) return buffer } 调用方式代码如下: val indexBuffer = GLTools.array2Buffer...(index) 定义纹理顶点 纹理坐标系统如下图: 纹理坐标的原点是左上角,右下角是(1,1),将整张图片绘制的纹理顶点数据代码如下: var texBuffer = GLTools.array2Buffer...) ) 纹理坐标的顶点顺序不是随便定义的,要与定义的顶点数据一一对应,否则可能出现纹理错乱,对应顺序如下图: 如果将纹理顶点设置如下: var texBuffer = GLTools.array2Buffer
需要的库 glew freeglut 及作者自己写的GLTools库 着三个库在源码光盘里面都有了,需要编译生成相应的库,或者从网络下载 出错提示及解决办法 1....Linker -> Input->附加依赖项中 增加如下配置 D:\vswork\lib\freeglut.lib D:\vswork\lib\glew32sd.lib D:\vswork\lib\GLTools.lib...参考链接 OpenGL超级宝典visual studio 2013开发环境配置 GLTools VS2015中跑OpenGL红宝书第八版的示例代码 ---- 备注 按照这个配置就能运行成功了 Change
◆注意事项 ●效果展示 ●个人感受 ●搬砖及转载说明 ︺ ●前言 1.刺激战场在5.31日进行了大更新,现有的代码修改和伪装机型方式的优化几乎全部失效(至少我已知的全废了) 2.本方案基于3D神油(GLTools
将纹理的坐标值设置超出界限,纹理坐标如下: var texBuffer = GLTools.array2Buffer( floatArrayOf(
. // #include //用作掩盖不同平台的差异,建立窗体等工作 #include #ifdef __APPLE__ #include
创建完成 提供一个实例 #include "GLShaderManager.h" #include "GLTools.h" #include GLBatch triangleBatch
多神花花在华为P10上,用XPosed模块及GLTools修改了手机机型及GPU型号,分别改成了小米MIX 3及Adreno 630伪装高通处理器。
没有获得朝向和旋转 #include #include #include #include
领取专属 10元无门槛券
手把手带您无忧上云