I just started learning OpenGL, bought a copy of OpenGL Red Book 8,
The first example has been studied for a while and is finally ready to run. I wonder if there are any children’s shoes that have the same problem as me.
Here’s how I configured it:
First go to http://www.opengl-redbook.com/ and download the source code of the Little Red Book. Unzip it to get this
Then open VS2013 and create an empty Win32 console project.
Then right-click on the project properties and click on the VC ++ directory
Include directory – Edit and add the include folder in the Red Book source directory
Library directory – Edit and add the lib folder
in the Red Book source directory
Add and source files to the project, and paste the code from the first example of the Little Red Book
The first example has been studied for a while and is finally ready to run. I wonder if there are any children’s shoes that have the same problem as me.
Here’s how I configured it:
First go to http://www.opengl-redbook.com/ and download the source code of the Little Red Book. Unzip it to get this
Then open VS2013 and create an empty Win32 console project.
Then right-click on the project properties and click on the VC ++ directory
Include directory – Edit and add the include folder in the Red Book source directory
Library directory – Edit and add the lib folder
in the Red Book source directory
Add and source files to the project, and paste the code from the first example of the Little Red Book
///
//
// triangles.cpp
//
///
#include <iostream>
using namespace std;
#include "vgl.h"
#include "LoadShaders.h"
enum VAO_IDs { Triangles, NumVAOs };
enum Buffer_IDs { ArrayBuffer, NumBuffers };
enum Attrib_IDs { vPosition = 0 };
GLuint VAOs[NumVAOs];
GLuint Buffers[NumBuffers];
const GLuint NumVertices = 6;
//---------------------------------------------------------------------
//
// init
//
void init(void)
{
glGenVertexArrays(NumVAOs, VAOs);
glBindVertexArray(VAOs[Triangles]);
GLfloat vertices[NumVertices][2] = {
{ -0.90, -0.90 }, // Triangle 1
{ 0.85, -0.90 },
{ -0.90, 0.85 },
{ 0.90, -0.85 }, // Triangle 2
{ 0.90, 0.90 },
{ -0.85, 0.90 }
};
glGenBuffers(NumBuffers, Buffers);
glBindBuffer(GL_ARRAY_BUFFER, Buffers[ArrayBuffer]);
glBufferData(GL_ARRAY_BUFFER, sizeof(vertices),
vertices, GL_STATIC_DRAW);
ShaderInfo shaders[] = {
{ GL_VERTEX_SHADER, "triangles.vert" },
{ GL_FRAGMENT_SHADER, "triangles.frag" },
{ GL_NONE, NULL }
};
GLuint program = LoadShaders(shaders);
glUseProgram(program);
glVertexAttribPointer(vPosition, 2, GL_FLOAT,
GL_FALSE, 0, BUFFER_OFFSET(0));
glEnableVertexAttribArray(vPosition);
}
//---------------------------------------------------------------------
//
// display
//
void display(void)
{
glClear(GL_COLOR_BUFFER_BIT);
glBindVertexArray(VAOs[Triangles]);
glDrawArrays(GL_TRIANGLES, 0, NumVertices);
glFlush();
}
//---------------------------------------------------------------------
//
// main
//
int main(int argc, char** argv)
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGBA);
glutInitWindowSize(512, 512);
glutInitContextVersion(4, 3);
glutInitContextProfile(GLUT_CORE_PROFILE);
glutCreateWindow(argv[0]);
if (glewInit()) {
cerr << "Unable to initialize GLEW ... exiting" << endl;
exit(EXIT_FAILURE);
}
init();
glutDisplayFunc(display);
glutMainLoop();
}
compile once found not through, will quote cannot resolve external command error,
This is because loadShaders.cpp could not be found
In the Little Red Book source directory there is a lib folder with LoadShaders
Right-click on the project’s source file to add an existing item
The libcmtd.lib library is in conflict with other libraries, so we can ignore it
Right-click on the project — Properties — Linker — Enter and add it in Ignore the specific default library
Now in the compilation once found can pass out
But it’s a white triangle, not a blue triangle, and you need to create two new texts in the project directory
Renamed Triangles. Vert and Triangles. Frag
The code is as follows:
triangles.vert
#version 430 core
layout(location = 0) in vec4 vPosition;
void
main()
{
gl_Position = vPosition;
}
triangles.frag
#version 430 core
out vec4 fColor;
void
main()
{
fColor = vec4(0.0, 0.0, 1.0, 1.0);
}
>
>
Read More:
- OpenGL Programming Guide 8th Edition 9th Edition vs2015 vs2017 configuration method
- Configuration of OpenGL development environment under Windows environment, win10 + vs2019 + glfw + glad
- Simple configuration of glfw + glad in vs2015 OpenGL development environment
- Problems encountered in vs2015 configuration using OpenGL environment
- Vs2015 OpenGL environment configuration
- Vs2015 + OpenGL environment configuration
- Construction of vs2015 OpenGL configuration environment
- OpenGL environment configuration under VS2010 / vs2012 / vs2015
- Vs configuration of OpenGL development environment: configuration of glfw library and glad Library
- OpenGL class library and environment configuration under win10 and vs2015
- OpenGL + vs2015 environment configuration problem solving
- Vs2015 configuring OpenGL development environment: configuration of glfw library and glad Library
- Download and activate vs2017 professional edition and Enterprise Edition
- Configuration of OpenGL in VS2010
- A series of problems in configuring OpenGL development environment in vs2015
- Some configuration problems of OpenGL in VS2008
- Vs2013 + glfw + glew configure OpenGL development environment
- The reason of OpenGL configuration error in VS
- Configuring OpenGL development environment in win10 + vs2015 (including the method of installing 32-bit and 64 bit libraries)
- Problems encountered in configuring OpenGL development environment in vs2015