- Une liste de sommets
- Une liste d'attributs (couleurs, normales...)
- Des relations d'adjacence
- + autres... (caméras, lumières, textures...)
Une grille 2D de pixels
Plus d'information sur la carte de réference rapide OpenGL
Gluint mvpLoc = glGetUniformLocation(program,"MVP");
modelViewProj = vp->uniforms()->getGPUmat4("MVP");
mat4 M = o->frame()->getTransformMatrix(); modelViewProj->Set(M); m_ProgramPipeline->bind(); o->drawGeometry(GL_TRIANGLES); m_ProgramPipeline->release();
#version 420
layout(std140) uniform CPU
{
mat4 MVP;
};
layout (location = 0) in vec3 Position;
out gl_PerVertex {
vec4 gl_Position;
};
out vec3 v_Color;
void main()
{
gl_Position = MVP * vec4(Position,1.0);
v_Color = vec3(0.2,0.3,0.7);
}
#version 420
in vec3 v_Color;
out vec4 Color;
void main()
{
Color = vec4(v_Color,1.0);
}
glUniform3fv(glGetUniformLocation(fp->getProgram(),"CPUColor"),vec3(0.5,0.4,0.6)));
GPUvec3* couleur = fp->uniforms()->getGPUvec3("CPUColor");
couleur->Set(vec3(0.5,0.4,0.6);
#version 420
layout(std140) uniform CPU
{
vec3 CPUColor;
};
out vec4 Color;
void main()
{
Color = vec4(CPUColor,1.0);
}
#version 420
layout(std140) uniform CPU
{
mat4 MVP;
};
layout (location = 0) in vec3 Position;
layout (location = 2) in vec3 Normal;
out gl_PerVertex {
vec4 gl_Position;};
out vec3 v_Color;
void main()
{
gl_Position = MVP * vec4(Position,1.0);
v_Color = abs(Normal);
}