mirror of
https://github.com/JoeyDeVries/LearnOpenGL.git
synced 2026-01-30 20:13:22 +08:00
Merge branch 'master' of https://github.com/JoeyDeVries/LearnOpenGL
This commit is contained in:
@@ -16,14 +16,14 @@ Using root (sudo) and type `apt-get install libsoil-dev libglm-dev libassimp-dev
|
|||||||
|
|
||||||
Note that CodeBlocks or other IDEs may have issues running the programs due to problems finding the shader and resource files, however it should still be able to generate the exectuables. To work around this problem it is possible to set an environment variable to tell the tutorials where the resource files can be found. The environment variable is named LOGL_ROOT_PATH and may be set to the path to the root of the LearnOpenGL directory tree. For example:
|
Note that CodeBlocks or other IDEs may have issues running the programs due to problems finding the shader and resource files, however it should still be able to generate the exectuables. To work around this problem it is possible to set an environment variable to tell the tutorials where the resource files can be found. The environment variable is named LOGL_ROOT_PATH and may be set to the path to the root of the LearnOpenGL directory tree. For example:
|
||||||
|
|
||||||
`export LOGL_ROOT_PATH=/home/user/tutorials/LearmOpenGL`
|
`export LOGL_ROOT_PATH=/home/user/tutorials/LearnOpenGL`
|
||||||
|
|
||||||
Running `ls $LOGL_ROOT_PATH` should list, among other things, this README file and the resources direcory.
|
Running `ls $LOGL_ROOT_PATH` should list, among other things, this README file and the resources direcory.
|
||||||
|
|
||||||
## Mac OS X building
|
## Mac OS X building
|
||||||
Thanks to Stéphane le Boeuf, a Github fork was set up that successfully compiles on Mac OSX (and Linux as well); current CMake hasn't been adapted for Mac OSX yet. The following command lines build the projects on Mac OSX:
|
Thanks to Stéphane le Boeuf, a Github fork was set up that successfully compiles on Mac OSX (and Linux as well); current CMake hasn't been adapted for Mac OSX yet. The following command lines build the projects on Mac OSX:
|
||||||
```
|
```
|
||||||
git clone --recursive [https://github.com/stephane-lb/LearnOpenGL.git
|
git clone --recursive https://github.com/stephane-lb/LearnOpenGL.git
|
||||||
cd LearnOpenGL
|
cd LearnOpenGL
|
||||||
mkdir build
|
mkdir build
|
||||||
cd build
|
cd build
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ void scroll_callback(GLFWwindow* window, double xoffset, double yoffset);
|
|||||||
void mouse_callback(GLFWwindow* window, double xpos, double ypos);
|
void mouse_callback(GLFWwindow* window, double xpos, double ypos);
|
||||||
void Do_Movement();
|
void Do_Movement();
|
||||||
GLuint loadTexture(GLchar const * path);
|
GLuint loadTexture(GLchar const * path);
|
||||||
GLuint loadCubemap(std::vector<const GLchar*> faces);
|
GLuint loadCubemap(std::vector<std::string> faces);
|
||||||
|
|
||||||
// Camera
|
// Camera
|
||||||
Camera camera(glm::vec3(0.0f, 0.0f, 3.0f));
|
Camera camera(glm::vec3(0.0f, 0.0f, 3.0f));
|
||||||
@@ -198,13 +198,13 @@ int main()
|
|||||||
#pragma endregion
|
#pragma endregion
|
||||||
|
|
||||||
// Cubemap (Skybox)
|
// Cubemap (Skybox)
|
||||||
std::vector<const GLchar*> faces;
|
std::vector<std::string> faces;
|
||||||
faces.push_back(FileSystem::getPath("resources/textures/skybox/right.jpg").c_str());
|
faces.push_back(FileSystem::getPath("resources/textures/skybox/right.jpg"));
|
||||||
faces.push_back(FileSystem::getPath("resources/textures/skybox/left.jpg").c_str());
|
faces.push_back(FileSystem::getPath("resources/textures/skybox/left.jpg"));
|
||||||
faces.push_back(FileSystem::getPath("resources/textures/skybox/top.jpg").c_str());
|
faces.push_back(FileSystem::getPath("resources/textures/skybox/top.jpg"));
|
||||||
faces.push_back(FileSystem::getPath("resources/textures/skybox/bottom.jpg").c_str());
|
faces.push_back(FileSystem::getPath("resources/textures/skybox/bottom.jpg"));
|
||||||
faces.push_back(FileSystem::getPath("resources/textures/skybox/back.jpg").c_str());
|
faces.push_back(FileSystem::getPath("resources/textures/skybox/back.jpg"));
|
||||||
faces.push_back(FileSystem::getPath("resources/textures/skybox/front.jpg").c_str());
|
faces.push_back(FileSystem::getPath("resources/textures/skybox/front.jpg"));
|
||||||
GLuint skyboxTexture = loadCubemap(faces);
|
GLuint skyboxTexture = loadCubemap(faces);
|
||||||
|
|
||||||
// Draw as wireframe
|
// Draw as wireframe
|
||||||
@@ -272,7 +272,7 @@ int main()
|
|||||||
// -Y (bottom)
|
// -Y (bottom)
|
||||||
// +Z (front)? (CHECK THIS)
|
// +Z (front)? (CHECK THIS)
|
||||||
// -Z (back)?
|
// -Z (back)?
|
||||||
GLuint loadCubemap(std::vector<const GLchar*> faces)
|
GLuint loadCubemap(std::vector<std::string> faces)
|
||||||
{
|
{
|
||||||
GLuint textureID;
|
GLuint textureID;
|
||||||
glGenTextures(1, &textureID);
|
glGenTextures(1, &textureID);
|
||||||
@@ -284,7 +284,7 @@ GLuint loadCubemap(std::vector<const GLchar*> faces)
|
|||||||
glBindTexture(GL_TEXTURE_CUBE_MAP, textureID);
|
glBindTexture(GL_TEXTURE_CUBE_MAP, textureID);
|
||||||
for (GLuint i = 0; i < faces.size(); i++)
|
for (GLuint i = 0; i < faces.size(); i++)
|
||||||
{
|
{
|
||||||
image = SOIL_load_image(faces[i], &width, &height, 0, SOIL_LOAD_RGB);
|
image = SOIL_load_image(faces[i].c_str(), &width, &height, 0, SOIL_LOAD_RGB);
|
||||||
glTexImage2D(GL_TEXTURE_CUBE_MAP_POSITIVE_X + i, 0, GL_RGB, width, height, 0, GL_RGB, GL_UNSIGNED_BYTE, image);
|
glTexImage2D(GL_TEXTURE_CUBE_MAP_POSITIVE_X + i, 0, GL_RGB, width, height, 0, GL_RGB, GL_UNSIGNED_BYTE, image);
|
||||||
}
|
}
|
||||||
glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
|
glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
|
||||||
|
|||||||
@@ -52,8 +52,8 @@ void main()
|
|||||||
FragColor = vec4(vec3(Depth / 50.0), 1.0);
|
FragColor = vec4(vec3(Depth / 50.0), 1.0);
|
||||||
else if(draw_mode == 3)
|
else if(draw_mode == 3)
|
||||||
FragColor = vec4(FragPos, 1.0);
|
FragColor = vec4(FragPos, 1.0);
|
||||||
else if(draw_mode == 3)
|
else if(draw_mode == 4)
|
||||||
FragColor = vec4(Normal, 1.0);
|
FragColor = vec4(Normal, 1.0);
|
||||||
else if(draw_mode == 4)
|
else if(draw_mode == 5)
|
||||||
FragColor = vec4(vec3(AmbientOcclusion), 1.0);
|
FragColor = vec4(vec3(AmbientOcclusion), 1.0);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user