opengl 立方体纹理
来给立方体贴个图。
// glfwTest.cpp : 定义控制台应用程序的入口点。
//
#include "glew.h"
#include <glfw3.h>
#include "common/loadShader.h"
#include "glm.hpp"
#include "ext.hpp"
int main(void)
{
GLFWwindow* window;
/* Initialize the library */
if (!glfwInit())
return -1;
/* Create a windowed mode window and its OpenGL context */
window = glfwCreateWindow(480, 320, "Hello World", NULL, NULL);
if (!window)
{
glfwTerminate();
return -1;
}
/* Make the window's context current */
glfwMakeContextCurrent(window);
// Needed in core profile
if( glewInit() != GLEW_OK)
{
glfwTerminate();
return -1;
}
// Our vertices. Tree consecutive floats give a 3D vertex; Three consecutive vertices give a triangle.
// A cube has 6 faces with 2 triangles each, so this makes 6*2=12 triangles, and 12*3 vertices
static const GLfloat g_vertex_buffer_data[] = {
-1.f, 1.f, 1.f,
-1.f,-1.f, 1.f,
1.f,-1.f, 1.f,
1.f,-1.f, 1.f,
1.f, 1.f, 1.f,
-1.f, 1.f, 1.f,
1.f, 1.f, 1.f,
1.f,-1.f, 1.f,
1.f,-1.f,-1.f,
1.f,-1.f,-1.f,
1.f, 1.f,-1.f,
1.f, 1.f, 1.f,
-1.f, 1.f,-1.f,
-1.f, 1.f, 1.f,
1.f, 1.f, 1.f,
1.f, 1.f, 1.f,
1.f, 1.f,-1.f,
-1.f, 1.f,-1.f,
-1.f,-1.f,-1.f,
-1.f,-1.f, 1.f,
1.f,-1.f, 1.f,
1.f,-1.f, 1.f,
1.f,-1.f,-1.f,
-1.f,-1.f,-1.f,
-1.f, 1.f,-1.f,
-1.f,-1.f,-1.f,
1.f,-1.f,-1.f,
1.f,-1.f,-1.f,
1.f, 1.f,-1.f,
-1.f, 1.f,-1.f,
-1.f, 1.f, 1.f,
-1.f, 1.f,-1.f,
-1.f,-1.f,-1.f,
-1.f,-1.f,-1.f,
-1.f,-1.f, 1.f,
-1.f, 1.f, 1.f,
};
//This will identify our vertex buffer
GLuint vertexbuffer;
//Generate 1 buffer,put the resulting identifier in vertexbuffer
glGenBuffers(1,&vertexbuffer);
//The following commands will talk about our 'vertexbuffer' buffer
glBindBuffer(GL_ARRAY_BUFFER,vertexbuffer);
//Give our vertices to OpenGL.
glBufferData(GL_ARRAY_BUFFER,sizeof(g_vertex_buffer_data),g_vertex_buffer_data,GL_STATIC_DRAW);
GLuint Texture = loadBMP_custom("./resource/uvtemplate.bmp");
// One color for each vertex. They were generated randomly.
static const GLfloat g_uv_buffer_data[] = {
0.0f, 1.0f,
0.0f, 0.0f,
1.0f, 0.0f,
1.0f, 0.0f,
1.0f, 1.0f,
0.0f, 1.0f,
0.0f, 1.0f,
0.0f, 0.0f,
1.0f, 0.0f,
1.0f, 0.0f,
1.0f, 1.0f,
0.0f, 1.0f,
0.0f, 1.0f,
0.0f, 0.0f,
1.0f, 0.0f,
1.0f, 0.0f,
1.0f, 1.0f,
0.0f, 1.0f,
0.0f, 1.0f,
0.0f, 0.0f,
1.0f, 0.0f,
1.0f, 0.0f,
1.0f, 1.0f,
0.0f, 1.0f,
0.0f, 1.0f,
0.0f, 0.0f,
1.0f, 0.0f,
1.0f, 0.0f,
1.0f, 1.0f,
0.0f, 1.0f,
0.0f, 1.0f,
1.0f, 1.0f,
1.0