【PyOpenGL】3.绘制图片
在上一节【绘制三角形】的基础上执行如下操作
1.准备数据
加载绘制图片使用的Shader
使用图形库从硬盘中加载并解析图片数据到内存中:CPU
创建Actor,作为绘制图片的主体对象
添加Mesh组件:渲染使用的三角形数据。
添加Material组件:Shader以及渲染使用的数值参数、Texture参数。
添加MeshRenderer组件:用来使用Material渲染Mesh。
注意组件的更新顺序,Mesh > Material > MeshRenderer
Shader
texture.vert.glsl
glsl
#version 330
layout (location = 0) in vec3 aPos;
layout (location = 1) in vec3 aColor;
layout (location = 2) in vec2 aTexCoord;
out vec3 ourColor;
out vec2 TexCoord;
void main()
{
gl_Position = vec4(aPos, 1.0);
ourColor = aColor;
TexCoord = aTexCoord;
}
textrue.frag.glsl
glsl
#version 330
out vec4 FragColor;
in vec3 ourColor;
in vec2 TexCoord;
uniform sampler2D icon_tex;
void main()
{
FragColor = texture(icon_tex, TexCoord);
}
2.执行渲染
创建VAO、VBO、EBO等顶点数据资源,配置顶点数据格式:GPU
设置Shader,创建Texture,并将Texture与Shader中的sampler绑定:GPU
pythonlocation = GL.glGetUniformLocation(mat_shader.get_program(), mat_tex_name) GL.glUniform1i(location, gl_texture_index)
调用绘制命令
DrawElements()
:GPU清理GPU资源:GPU