#opengl

OpenGL/FreeGlut:基础篇 第一章 初始化

 #include<GL/freeglut.h>////////////////////////////////////////////////////////渲染场景voidrenderScene(void){glClear(GL_COLOR_BUFFER_BIT);glBegin(GL_TRIANGLE...

OpenGLES使用glReadPixels保存并旋转处理一张Bitmap图片,记录一下

1. 必须GLThread线程里调用funsaveFrame(filename:String,width:Int,height:Int){valstartTime=System.currentTimeMillis()//1.glReadPixels返回的是大端的RGBAByte组数,我们使用小端Buffer接收得到AB...

OpenGLES以及shader开发调试工具

1.shader开发编辑器kodelife,地址:https://hexler.net/products/kodelife2.shader调试工具GAPID,google开源的一个项目,地址:https://github.com/google/gapid3.shader调试工具RenderDoc,地址:https://...

mac上使用Xcode编译调试LearnOpenGL源代码的方法

1.下载LearnOpenGL源代码,地址:https://github.com/JoeyDeVries/LearnOpenGL2.打开Terminal窗口,输入以下命令  brewinstallcmakeassimpglmglfw  //使用Homebrew安装cmake、assimp、glm、glfw,注意:需要翻...

OpenGL里的坐标系统以及其变换

局部坐标是对象相对于局部原点的坐标,也是物体起始的坐标。下一步是将局部坐标变换为世界空间坐标,世界空间坐标是处于一个更大的空间范围的。这些坐标相对于世界的全局原点,它们会和其它物体一起相对于世界的原点进行摆放。接下来我们将世界坐标变换为观察空间坐标,使得每个坐标都是从摄像机或者说观察者的角度进行观察的。坐标到达观察空间...

OpenGL里的VBO,VAO,EBO的理解

顶点缓冲对象(VertexBufferObjects,VBO)管理这个内存,它会在GPU内存(通常被称为显存)中储存大量顶点。使用VBO的好处是我们可以一次性的发送一大批数据到显卡上,而不是每个顶点发送一次。顶点数组对象(VertexArrayObject,VAO)可以像顶点缓冲对象那样被绑定,任何随后的顶点属性调用都...
代码星球 代码星球·2021-02-20

OpenGLES2.0可编程管道示意图

PrimitiveProcessing:原始处理VertexShader:顶点着色器PrimitiveAssembly:原始组装Rasterizer:光栅化FragmentShader:片段着色器DepthStencil:深度模板ColorBufferBlend:色彩缓冲区混合Dither:抖动FrameBuffer:...

OpenGL第十四节:绘制重复纹理

FromLTexture.cpp  #include"LTexture.h"  #include<IL/il.h>  #include<IL/ilu.h>  GLenumDEFAULT_TEXTURE_WRAP=GL_REPEAT;boolLTexture::loadTextureFromPix...

OpenGL第十三节:矩阵变换

LTexture.cppvoidLTexture::render(GLfloatx,GLfloaty,LFRect*clip){  if(mTextureID!=0)  {    GLfloattexTop=0.f;    GLfloattexBottom=(GLfloat)mImageHeight/(GLfloat)...

OpenGL第十二节:旋转

LTexture.cppvoidLTexture::render(GLfloatx,GLfloaty,LFRect*clip,LFRect*stretch,GLfloatdegrees){  if(mTextureID!=0)  {    glLoadIdentity();    GLfloattexTop=0.f; ...
代码星球 代码星球·2021-02-20

OpenGL第十一节:拉伸和过滤

LTexture.hvoidrender(GLfloatx,GLfloaty,LFRect*clip=NULL,LFRect*stretch=NULL); LTexture.cppvoidLTexture::render(GLfloatx,GLfloaty,LFRect*clip,LFRect*stretch...

OpenGL第十节:彩色键控与混合

LTexture.hboolloadPixelsFromFile(std::stringpath);boolloadTextureFromFileWithColorKey(std::stringpath,GLubyter,GLubyteg,GLubyteb,GLubytea=000);boolloadTextureFr...

OpenGL第九节:操作像素点去更新纹理

LTexture.hboollock();boolunlock();GLuint*getPixelData32();//获取像素GLuintgetPixel32(GLuintx,GLuinty);//获取x,y位置对应的像素点voidsetPixel32(GLuintx,GLuinty,GLuintpixel);//设...

OpenGL第八节:非二次幂的纹理渲染处理

纹理渲染的图片的宽度和高度需要是二次幂的,如果不是二次幂的,需要通过填充的方式(就是添加边距),填充到二次幂。LTexture.hboolloadTextureFromPixels32(GLuint*pixels,GLuintimgWidth,GLuintimgHeight,GLuinttexWidth,GLuintt...
首页上一页12345下一页尾页