mirror of
https://github.com/JoeyDeVries/LearnOpenGL.git
synced 2026-01-30 20:13:22 +08:00
Merge pull request #13 from ibbles/master
Support for out-of-source builds.
This commit is contained in:
@@ -10,7 +10,13 @@ Note that you still have to manually copy the required .DLL files from the /dlls
|
||||
|
||||
## Linux building
|
||||
First make sure you have CMake, Git, and GCC by typing as root (sudo) `apt-get install g++ cmake git` and then get the required packages:
|
||||
Using root (sudo) and type `apt-get install libsoil-dev libglm-dev libassimp-dev libglew-dev libglfw3-dev` . Next, run CMake (preferably CMake-gui). The source directory is LearnOpenGL and specify the build directory as LearnOpenGL/build. Creating the build directory within LearnOpenGL is important for linking to the resource files (it also will be ignored by Git). Hit configure and specify your compiler files (Unix Makefiles are recommended), resolve any missing directories or libraries, and then hit generate. Navigate to the build directory (`cd LearnOpenGL/build`) and type `make` in the terminal. This should generate the executables in the respective chapter folders. Note that using CodeBlocks or an IDE 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.
|
||||
Using root (sudo) and type `apt-get install libsoil-dev libglm-dev libassimp-dev libglew-dev libglfw3-dev` . Next, run CMake (preferably CMake-gui). The source directory is LearnOpenGL and specify the build directory as LearnOpenGL/build. Creating the build directory within LearnOpenGL is important for linking to the resource files (it also will be ignored by Git). Hit configure and specify your compiler files (Unix Makefiles are recommended), resolve any missing directories or libraries, and then hit generate. Navigate to the build directory (`cd LearnOpenGL/build`) and type `make` in the terminal. This should generate the executables in the respective chapter folders.
|
||||
|
||||
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`
|
||||
|
||||
Running `ls $LOGL_ROOT_PATH` should list, among other things, this README file and the resources direcory.
|
||||
|
||||
## 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:
|
||||
|
||||
49
includes/learnopengl/filesystem.h
Normal file
49
includes/learnopengl/filesystem.h
Normal file
@@ -0,0 +1,49 @@
|
||||
#ifndef FILESYSTEM_H
|
||||
#define FILESYSTEM_H
|
||||
|
||||
#include <string>
|
||||
|
||||
class FileSystem
|
||||
{
|
||||
private:
|
||||
typedef std::string (*Builder) (const std::string& path);
|
||||
|
||||
public:
|
||||
static std::string getPath(const std::string& path)
|
||||
{
|
||||
static std::string(*pathBuilder)(std::string const &) = getPathBuilder();
|
||||
return (*pathBuilder)(path);
|
||||
}
|
||||
|
||||
private:
|
||||
static std::string const & getRoot()
|
||||
{
|
||||
static char const * givenRoot {getenv("LOGL_ROOT_PATH")};
|
||||
static std::string root {givenRoot != nullptr ? givenRoot : ""};
|
||||
return root;
|
||||
}
|
||||
|
||||
//static std::string(*foo (std::string const &)) getPathBuilder()
|
||||
static Builder getPathBuilder()
|
||||
{
|
||||
if (getRoot() != "")
|
||||
return &FileSystem::getPathRelativeRoot;
|
||||
else
|
||||
return &FileSystem::getPathRelativeBinary;
|
||||
}
|
||||
|
||||
static std::string getPathRelativeRoot(const std::string& path)
|
||||
{
|
||||
return getRoot() + std::string("/") + path;
|
||||
}
|
||||
|
||||
static std::string getPathRelativeBinary(const std::string& path)
|
||||
{
|
||||
return "../../../" + path;
|
||||
}
|
||||
|
||||
|
||||
};
|
||||
|
||||
// FILESYSTEM_H
|
||||
#endif
|
||||
@@ -31,7 +31,7 @@ public:
|
||||
|
||||
/* Functions */
|
||||
// Constructor, expects a filepath to a 3D model.
|
||||
Model(GLchar* path, bool gamma = false) : gammaCorrection(gamma)
|
||||
Model(string const & path, bool gamma = false) : gammaCorrection(gamma)
|
||||
{
|
||||
this->loadModel(path);
|
||||
}
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
|
||||
// Other includes
|
||||
#include <learnopengl/shader.h>
|
||||
|
||||
#include <learnopengl/filesystem.h>
|
||||
|
||||
// Function prototypes
|
||||
void key_callback(GLFWwindow* window, int key, int scancode, int action, int mode);
|
||||
@@ -105,7 +105,9 @@ int main()
|
||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
|
||||
// Load, create texture and generate mipmaps
|
||||
int width, height;
|
||||
unsigned char* image = SOIL_load_image("../../../resources/textures/container.jpg", &width, &height, 0, SOIL_LOAD_RGB);
|
||||
|
||||
unsigned char* image = SOIL_load_image(FileSystem::getPath("resources/textures/container.jpg").c_str(), &width, &height, 0, SOIL_LOAD_RGB);
|
||||
|
||||
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, width, height, 0, GL_RGB, GL_UNSIGNED_BYTE, image);
|
||||
glGenerateMipmap(GL_TEXTURE_2D);
|
||||
SOIL_free_image_data(image);
|
||||
@@ -122,7 +124,7 @@ int main()
|
||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
|
||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
|
||||
// Load, create texture and generate mipmaps
|
||||
image = SOIL_load_image("../../../resources/textures/awesomeface.png", &width, &height, 0, SOIL_LOAD_RGB);
|
||||
image = SOIL_load_image(FileSystem::getPath("resources/textures/awesomeface.png").c_str(), &width, &height, 0, SOIL_LOAD_RGB);
|
||||
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, width, height, 0, GL_RGB, GL_UNSIGNED_BYTE, image);
|
||||
glGenerateMipmap(GL_TEXTURE_2D);
|
||||
SOIL_free_image_data(image);
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
|
||||
// Other includes
|
||||
#include <learnopengl/shader.h>
|
||||
|
||||
#include <learnopengl/filesystem.h>
|
||||
|
||||
// Function prototypes
|
||||
void key_callback(GLFWwindow* window, int key, int scancode, int action, int mode);
|
||||
@@ -109,7 +109,7 @@ int main()
|
||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
|
||||
// Load, create texture and generate mipmaps
|
||||
int width, height;
|
||||
unsigned char* image = SOIL_load_image("../../../resources/textures/container.jpg", &width, &height, 0, SOIL_LOAD_RGB);
|
||||
unsigned char* image = SOIL_load_image(FileSystem::getPath("resources/textures/container.jpg").c_str(), &width, &height, 0, SOIL_LOAD_RGB);
|
||||
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, width, height, 0, GL_RGB, GL_UNSIGNED_BYTE, image);
|
||||
glGenerateMipmap(GL_TEXTURE_2D);
|
||||
SOIL_free_image_data(image);
|
||||
@@ -126,7 +126,7 @@ int main()
|
||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
|
||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
|
||||
// Load, create texture and generate mipmaps
|
||||
image = SOIL_load_image("../../../resources/textures/awesomeface.png", &width, &height, 0, SOIL_LOAD_RGB);
|
||||
image = SOIL_load_image(FileSystem::getPath("resources/textures/awesomeface.png").c_str(), &width, &height, 0, SOIL_LOAD_RGB);
|
||||
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, width, height, 0, GL_RGB, GL_UNSIGNED_BYTE, image);
|
||||
glGenerateMipmap(GL_TEXTURE_2D);
|
||||
SOIL_free_image_data(image);
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
|
||||
// Other includes
|
||||
#include <learnopengl/shader.h>
|
||||
|
||||
#include <learnopengl/filesystem.h>
|
||||
|
||||
// Function prototypes
|
||||
void key_callback(GLFWwindow* window, int key, int scancode, int action, int mode);
|
||||
@@ -150,7 +150,7 @@ int main()
|
||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
|
||||
// Load, create texture and generate mipmaps
|
||||
int width, height;
|
||||
unsigned char* image = SOIL_load_image("../../../resources/textures/container.jpg", &width, &height, 0, SOIL_LOAD_RGB);
|
||||
unsigned char* image = SOIL_load_image(FileSystem::getPath("resources/textures/container.jpg").c_str(), &width, &height, 0, SOIL_LOAD_RGB);
|
||||
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, width, height, 0, GL_RGB, GL_UNSIGNED_BYTE, image);
|
||||
glGenerateMipmap(GL_TEXTURE_2D);
|
||||
SOIL_free_image_data(image);
|
||||
@@ -167,7 +167,7 @@ int main()
|
||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
|
||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
|
||||
// Load, create texture and generate mipmaps
|
||||
image = SOIL_load_image("../../../resources/textures/awesomeface.png", &width, &height, 0, SOIL_LOAD_RGB);
|
||||
image = SOIL_load_image(FileSystem::getPath("resources/textures/awesomeface.png").c_str(), &width, &height, 0, SOIL_LOAD_RGB);
|
||||
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, width, height, 0, GL_RGB, GL_UNSIGNED_BYTE, image);
|
||||
glGenerateMipmap(GL_TEXTURE_2D);
|
||||
SOIL_free_image_data(image);
|
||||
|
||||
@@ -19,6 +19,7 @@
|
||||
|
||||
// Other Libs
|
||||
#include <SOIL.h>
|
||||
#include <learnopengl/filesystem.h>
|
||||
|
||||
// Properties
|
||||
GLuint screenWidth = 800, screenHeight = 600;
|
||||
@@ -162,7 +163,7 @@ int main()
|
||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
|
||||
// Load, create texture and generate mipmaps
|
||||
int width, height;
|
||||
unsigned char* image = SOIL_load_image("../../../resources/textures/container.jpg", &width, &height, 0, SOIL_LOAD_RGB);
|
||||
unsigned char* image = SOIL_load_image(FileSystem::getPath("resources/textures/container.jpg").c_str(), &width, &height, 0, SOIL_LOAD_RGB);
|
||||
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, width, height, 0, GL_RGB, GL_UNSIGNED_BYTE, image);
|
||||
glGenerateMipmap(GL_TEXTURE_2D);
|
||||
SOIL_free_image_data(image);
|
||||
@@ -177,7 +178,7 @@ int main()
|
||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
|
||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
|
||||
// Load, create texture and generate mipmaps
|
||||
image = SOIL_load_image("../../../resources/textures/awesomeface.png", &width, &height, 0, SOIL_LOAD_RGB);
|
||||
image = SOIL_load_image(FileSystem::getPath("resources/textures/awesomeface.png").c_str(), &width, &height, 0, SOIL_LOAD_RGB);
|
||||
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, width, height, 0, GL_RGB, GL_UNSIGNED_BYTE, image);
|
||||
glGenerateMipmap(GL_TEXTURE_2D);
|
||||
SOIL_free_image_data(image);
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
// Other includes
|
||||
#include <learnopengl/shader.h>
|
||||
#include <learnopengl/camera.h>
|
||||
|
||||
#include <learnopengl/filesystem.h>
|
||||
|
||||
// Function prototypes
|
||||
void key_callback(GLFWwindow* window, int key, int scancode, int action, int mode);
|
||||
@@ -163,7 +163,7 @@ int main()
|
||||
int width, height;
|
||||
unsigned char* image;
|
||||
// Diffuse map
|
||||
image = SOIL_load_image("../../../resources/textures/container2.png", &width, &height, 0, SOIL_LOAD_RGB);
|
||||
image = SOIL_load_image(FileSystem::getPath("resources/textures/container2.png").c_str(), &width, &height, 0, SOIL_LOAD_RGB);
|
||||
glBindTexture(GL_TEXTURE_2D, diffuseMap);
|
||||
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, width, height, 0, GL_RGB, GL_UNSIGNED_BYTE, image);
|
||||
glGenerateMipmap(GL_TEXTURE_2D);
|
||||
@@ -173,7 +173,7 @@ int main()
|
||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR);
|
||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST_MIPMAP_NEAREST);
|
||||
// Specular map
|
||||
image = SOIL_load_image("../../../resources/textures/container2_specular.png", &width, &height, 0, SOIL_LOAD_RGB);
|
||||
image = SOIL_load_image(FileSystem::getPath("resources/textures/container2_specular.png").c_str(), &width, &height, 0, SOIL_LOAD_RGB);
|
||||
glBindTexture(GL_TEXTURE_2D, specularMap);
|
||||
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, width, height, 0, GL_RGB, GL_UNSIGNED_BYTE, image);
|
||||
glGenerateMipmap(GL_TEXTURE_2D);
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
// Other includes
|
||||
#include <learnopengl/shader.h>
|
||||
#include <learnopengl/camera.h>
|
||||
|
||||
#include <learnopengl/filesystem.h>
|
||||
|
||||
// Function prototypes
|
||||
void key_callback(GLFWwindow* window, int key, int scancode, int action, int mode);
|
||||
@@ -176,7 +176,7 @@ int main()
|
||||
int width, height;
|
||||
unsigned char* image;
|
||||
// Diffuse map
|
||||
image = SOIL_load_image("../../../resources/textures/container2.png", &width, &height, 0, SOIL_LOAD_RGB);
|
||||
image = SOIL_load_image(FileSystem::getPath("resources/textures/container2.png").c_str(), &width, &height, 0, SOIL_LOAD_RGB);
|
||||
glBindTexture(GL_TEXTURE_2D, diffuseMap);
|
||||
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, width, height, 0, GL_RGB, GL_UNSIGNED_BYTE, image);
|
||||
glGenerateMipmap(GL_TEXTURE_2D);
|
||||
@@ -186,7 +186,7 @@ int main()
|
||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR);
|
||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST_MIPMAP_NEAREST);
|
||||
// Specular map
|
||||
image = SOIL_load_image("../../../resources/textures/container2_specular.png", &width, &height, 0, SOIL_LOAD_RGB);
|
||||
image = SOIL_load_image(FileSystem::getPath("resources/textures/container2_specular.png").c_str(), &width, &height, 0, SOIL_LOAD_RGB);
|
||||
glBindTexture(GL_TEXTURE_2D, specularMap);
|
||||
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, width, height, 0, GL_RGB, GL_UNSIGNED_BYTE, image);
|
||||
glGenerateMipmap(GL_TEXTURE_2D);
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
// Other includes
|
||||
#include <learnopengl/shader.h>
|
||||
#include <learnopengl/camera.h>
|
||||
|
||||
#include <learnopengl/filesystem.h>
|
||||
|
||||
// Function prototypes
|
||||
void key_callback(GLFWwindow* window, int key, int scancode, int action, int mode);
|
||||
@@ -183,7 +183,7 @@ int main()
|
||||
int width, height;
|
||||
unsigned char* image;
|
||||
// Diffuse map
|
||||
image = SOIL_load_image("../../../resources/textures/container2.png", &width, &height, 0, SOIL_LOAD_RGB);
|
||||
image = SOIL_load_image(FileSystem::getPath("resources/textures/container2.png").c_str(), &width, &height, 0, SOIL_LOAD_RGB);
|
||||
glBindTexture(GL_TEXTURE_2D, diffuseMap);
|
||||
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, width, height, 0, GL_RGB, GL_UNSIGNED_BYTE, image);
|
||||
glGenerateMipmap(GL_TEXTURE_2D);
|
||||
@@ -193,7 +193,7 @@ int main()
|
||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR);
|
||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST_MIPMAP_NEAREST);
|
||||
// Specular map
|
||||
image = SOIL_load_image("../../../resources/textures/container2_specular.png", &width, &height, 0, SOIL_LOAD_RGB);
|
||||
image = SOIL_load_image(FileSystem::getPath("resources/textures/container2_specular.png").c_str(), &width, &height, 0, SOIL_LOAD_RGB);
|
||||
glBindTexture(GL_TEXTURE_2D, specularMap);
|
||||
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, width, height, 0, GL_RGB, GL_UNSIGNED_BYTE, image);
|
||||
glGenerateMipmap(GL_TEXTURE_2D);
|
||||
|
||||
@@ -20,6 +20,7 @@
|
||||
|
||||
// Other Libs
|
||||
#include <SOIL.h>
|
||||
#include <learnopengl/filesystem.h>
|
||||
|
||||
// Properties
|
||||
GLuint screenWidth = 800, screenHeight = 600;
|
||||
@@ -74,7 +75,7 @@ int main()
|
||||
Shader shader("shader.vs", "shader.frag");
|
||||
|
||||
// Load models
|
||||
Model ourModel("../../../resources/objects/nanosuit/nanosuit.obj");
|
||||
Model ourModel(FileSystem::getPath("resources/objects/nanosuit/nanosuit.obj").c_str());
|
||||
|
||||
// Draw in wireframe
|
||||
//glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
|
||||
|
||||
@@ -19,6 +19,7 @@
|
||||
|
||||
// Other Libs
|
||||
#include <SOIL.h>
|
||||
#include <learnopengl/filesystem.h>
|
||||
|
||||
// Properties
|
||||
GLuint screenWidth = 800, screenHeight = 600;
|
||||
@@ -28,7 +29,7 @@ void key_callback(GLFWwindow* window, int key, int scancode, int action, int mod
|
||||
void scroll_callback(GLFWwindow* window, double xoffset, double yoffset);
|
||||
void mouse_callback(GLFWwindow* window, double xpos, double ypos);
|
||||
void Do_Movement();
|
||||
GLuint loadTexture(GLchar* path);
|
||||
GLuint loadTexture(GLchar const * path);
|
||||
|
||||
// Camera
|
||||
Camera camera(glm::vec3(0.0f, 0.0f, 3.0f));
|
||||
@@ -156,8 +157,8 @@ int main()
|
||||
glBindVertexArray(0);
|
||||
|
||||
// Load textures
|
||||
GLuint cubeTexture = loadTexture("../../../resources/textures/marble.jpg");
|
||||
GLuint floorTexture = loadTexture("../../../resources/textures/metal.png");
|
||||
GLuint cubeTexture = loadTexture(FileSystem::getPath("resources/textures/marble.jpg").c_str());
|
||||
GLuint floorTexture = loadTexture(FileSystem::getPath("resources/textures/metal.png").c_str());
|
||||
#pragma endregion
|
||||
|
||||
// Game loop
|
||||
@@ -213,7 +214,7 @@ int main()
|
||||
// This function loads a texture from file. Note: texture loading functions like these are usually
|
||||
// managed by a 'Resource Manager' that manages all resources (like textures, models, audio).
|
||||
// For learning purposes we'll just define it as a utility function.
|
||||
GLuint loadTexture(GLchar* path)
|
||||
GLuint loadTexture(GLchar const * path)
|
||||
{
|
||||
//Generate texture ID and load texture data
|
||||
GLuint textureID;
|
||||
|
||||
@@ -15,6 +15,8 @@
|
||||
#include <glm/gtc/matrix_transform.hpp>
|
||||
#include <glm/gtc/type_ptr.hpp>
|
||||
|
||||
#include <learnopengl/filesystem.h>
|
||||
|
||||
// Properties
|
||||
GLuint screenWidth = 800, screenHeight = 600;
|
||||
|
||||
@@ -67,8 +69,8 @@ int main()
|
||||
Shader instanceShader("instanced_asteroids.vs", "instanced_asteroids.frag");
|
||||
|
||||
// Load models
|
||||
Model rock("../../../resources/objects/rock/rock.obj");
|
||||
Model planet("../../../resources/objects/planet/planet.obj");
|
||||
Model rock(FileSystem::getPath("resources/objects/rock/rock.obj").c_str());
|
||||
Model planet(FileSystem::getPath("resources/objects/planet/planet.obj").c_str());
|
||||
|
||||
// Set projection matrix
|
||||
glm::mat4 projection = glm::perspective(45.0f, (GLfloat)screenWidth/(GLfloat)screenHeight, 1.0f, 10000.0f);
|
||||
|
||||
@@ -19,6 +19,7 @@
|
||||
|
||||
// Other Libs
|
||||
#include <SOIL.h>
|
||||
#include <learnopengl/filesystem.h>
|
||||
|
||||
// Properties
|
||||
GLuint screenWidth = 800, screenHeight = 600;
|
||||
@@ -28,7 +29,7 @@ void key_callback(GLFWwindow* window, int key, int scancode, int action, int mod
|
||||
void scroll_callback(GLFWwindow* window, double xoffset, double yoffset);
|
||||
void mouse_callback(GLFWwindow* window, double xpos, double ypos);
|
||||
void Do_Movement();
|
||||
GLuint loadTexture(GLchar* path);
|
||||
GLuint loadTexture(GLchar const * path);
|
||||
|
||||
// Camera
|
||||
Camera camera(glm::vec3(0.0f, 0.0f, 3.0f));
|
||||
@@ -160,8 +161,8 @@ int main()
|
||||
glBindVertexArray(0);
|
||||
|
||||
// Load textures
|
||||
GLuint cubeTexture = loadTexture("../../../resources/textures/marble.jpg");
|
||||
GLuint floorTexture = loadTexture("../../../resources/textures/metal.png");
|
||||
GLuint cubeTexture = loadTexture(FileSystem::getPath("resources/textures/marble.jpg").c_str());
|
||||
GLuint floorTexture = loadTexture(FileSystem::getPath("resources/textures/metal.png").c_str());
|
||||
#pragma endregion
|
||||
|
||||
// Game loop
|
||||
@@ -260,7 +261,7 @@ void DrawScene()
|
||||
// This function loads a texture from file. Note: texture loading functions like these are usually
|
||||
// managed by a 'Resource Manager' that manages all resources (like textures, models, audio).
|
||||
// For learning purposes we'll just define it as a utility function.
|
||||
GLuint loadTexture(GLchar* path)
|
||||
GLuint loadTexture(GLchar const * path)
|
||||
{
|
||||
//Generate texture ID and load texture data
|
||||
GLuint textureID;
|
||||
|
||||
@@ -19,6 +19,7 @@
|
||||
|
||||
// Other Libs
|
||||
#include <SOIL.h>
|
||||
#include <learnopengl/filesystem.h>
|
||||
|
||||
// Properties
|
||||
GLuint screenWidth = 800, screenHeight = 600;
|
||||
@@ -28,7 +29,7 @@ void key_callback(GLFWwindow* window, int key, int scancode, int action, int mod
|
||||
void scroll_callback(GLFWwindow* window, double xoffset, double yoffset);
|
||||
void mouse_callback(GLFWwindow* window, double xpos, double ypos);
|
||||
void Do_Movement();
|
||||
GLuint loadTexture(GLchar* path, GLboolean alpha = false);
|
||||
GLuint loadTexture(GLchar const * path, GLboolean alpha = false);
|
||||
|
||||
// Camera
|
||||
Camera camera(glm::vec3(0.0f, 0.0f, 3.0f));
|
||||
@@ -177,9 +178,9 @@ int main()
|
||||
glBindVertexArray(0);
|
||||
|
||||
// Load textures
|
||||
GLuint cubeTexture = loadTexture("../../../resources/textures/marble.jpg");
|
||||
GLuint floorTexture = loadTexture("../../../resources/textures/metal.png");
|
||||
GLuint transparentTexture = loadTexture("../../../resources/textures/grass.png", true);
|
||||
GLuint cubeTexture = loadTexture(FileSystem::getPath("resources/textures/marble.jpg").c_str());
|
||||
GLuint floorTexture = loadTexture(FileSystem::getPath("resources/textures/metal.png").c_str());
|
||||
GLuint transparentTexture = loadTexture(FileSystem::getPath("resources/textures/grass.png").c_str(), true);
|
||||
#pragma endregion
|
||||
|
||||
std::vector<glm::vec3> vegetation;
|
||||
@@ -252,7 +253,7 @@ int main()
|
||||
// This function loads a texture from file. Note: texture loading functions like these are usually
|
||||
// managed by a 'Resource Manager' that manages all resources (like textures, models, audio).
|
||||
// For learning purposes we'll just define it as a utility function.
|
||||
GLuint loadTexture(GLchar* path, GLboolean alpha)
|
||||
GLuint loadTexture(GLchar const * path, GLboolean alpha)
|
||||
{
|
||||
//Generate texture ID and load texture data
|
||||
GLuint textureID;
|
||||
|
||||
@@ -20,6 +20,7 @@
|
||||
|
||||
// Other Libs
|
||||
#include <SOIL.h>
|
||||
#include <learnopengl/filesystem.h>
|
||||
|
||||
// Properties
|
||||
GLuint screenWidth = 800, screenHeight = 600;
|
||||
@@ -29,7 +30,7 @@ void key_callback(GLFWwindow* window, int key, int scancode, int action, int mod
|
||||
void scroll_callback(GLFWwindow* window, double xoffset, double yoffset);
|
||||
void mouse_callback(GLFWwindow* window, double xpos, double ypos);
|
||||
void Do_Movement();
|
||||
GLuint loadTexture(GLchar* path, GLboolean alpha = false);
|
||||
GLuint loadTexture(GLchar const * path, GLboolean alpha = false);
|
||||
|
||||
// Camera
|
||||
Camera camera(glm::vec3(0.0f, 0.0f, 3.0f));
|
||||
@@ -180,9 +181,9 @@ int main()
|
||||
glBindVertexArray(0);
|
||||
|
||||
// Load textures
|
||||
GLuint cubeTexture = loadTexture("../../../resources/textures/marble.jpg");
|
||||
GLuint floorTexture = loadTexture("../../../resources/textures/metal.png");
|
||||
GLuint transparentTexture = loadTexture("../../../resources/textures/window.png", true);
|
||||
GLuint cubeTexture = loadTexture(FileSystem::getPath("resources/textures/marble.jpg").c_str());
|
||||
GLuint floorTexture = loadTexture(FileSystem::getPath("resources/textures/metal.png").c_str());
|
||||
GLuint transparentTexture = loadTexture(FileSystem::getPath("resources/textures/window.png").c_str(), true);
|
||||
#pragma endregion
|
||||
|
||||
std::vector<glm::vec3> windows;
|
||||
@@ -263,7 +264,7 @@ int main()
|
||||
// This function loads a texture from file. Note: texture loading functions like these are usually
|
||||
// managed by a 'Resource Manager' that manages all resources (like textures, models, audio).
|
||||
// For learning purposes we'll just define it as a utility function.
|
||||
GLuint loadTexture(GLchar* path, GLboolean alpha)
|
||||
GLuint loadTexture(GLchar const * path, GLboolean alpha)
|
||||
{
|
||||
//Generate texture ID and load texture data
|
||||
GLuint textureID;
|
||||
|
||||
@@ -21,6 +21,7 @@ using namespace std;
|
||||
|
||||
// Other Libs
|
||||
#include <SOIL.h>
|
||||
#include <learnopengl/filesystem.h>
|
||||
|
||||
// Properties
|
||||
GLuint screenWidth = 800, screenHeight = 600;
|
||||
@@ -30,7 +31,7 @@ void key_callback(GLFWwindow* window, int key, int scancode, int action, int mod
|
||||
void scroll_callback(GLFWwindow* window, double xoffset, double yoffset);
|
||||
void mouse_callback(GLFWwindow* window, double xpos, double ypos);
|
||||
void Do_Movement();
|
||||
GLuint loadTexture(GLchar* path, GLboolean alpha = false);
|
||||
GLuint loadTexture(GLchar const * path, GLboolean alpha = false);
|
||||
GLuint generateAttachmentTexture(GLboolean depth, GLboolean stencil);
|
||||
|
||||
// Camera
|
||||
@@ -182,8 +183,8 @@ int main()
|
||||
glBindVertexArray(0);
|
||||
|
||||
// Load textures
|
||||
GLuint cubeTexture = loadTexture("../../../resources/textures/container.jpg");
|
||||
GLuint floorTexture = loadTexture("../../../resources/textures/metal.png");
|
||||
GLuint cubeTexture = loadTexture(FileSystem::getPath("resources/textures/container.jpg").c_str());
|
||||
GLuint floorTexture = loadTexture(FileSystem::getPath("resources/textures/metal.png").c_str());
|
||||
#pragma endregion
|
||||
|
||||
// Framebuffers
|
||||
@@ -291,7 +292,7 @@ int main()
|
||||
// This function loads a texture from file. Note: texture loading functions like these are usually
|
||||
// managed by a 'Resource Manager' that manages all resources (like textures, models, audio).
|
||||
// For learning purposes we'll just define it as a utility function.
|
||||
GLuint loadTexture(GLchar* path, GLboolean alpha)
|
||||
GLuint loadTexture(GLchar const * path, GLboolean alpha)
|
||||
{
|
||||
//Generate texture ID and load texture data
|
||||
GLuint textureID;
|
||||
|
||||
@@ -21,6 +21,7 @@ using namespace std;
|
||||
|
||||
// Other Libs
|
||||
#include <SOIL.h>
|
||||
#include <learnopengl/filesystem.h>
|
||||
|
||||
// Properties
|
||||
GLuint screenWidth = 800, screenHeight = 600;
|
||||
@@ -30,7 +31,7 @@ void key_callback(GLFWwindow* window, int key, int scancode, int action, int mod
|
||||
void scroll_callback(GLFWwindow* window, double xoffset, double yoffset);
|
||||
void mouse_callback(GLFWwindow* window, double xpos, double ypos);
|
||||
void Do_Movement();
|
||||
GLuint loadTexture(GLchar* path);
|
||||
GLuint loadTexture(GLchar const * path);
|
||||
GLuint loadCubemap(std::vector<const GLchar*> faces);
|
||||
|
||||
// Camera
|
||||
@@ -198,12 +199,12 @@ int main()
|
||||
|
||||
// Cubemap (Skybox)
|
||||
std::vector<const GLchar*> faces;
|
||||
faces.push_back("../../../resources/textures/skybox/right.jpg");
|
||||
faces.push_back("../../../resources/textures/skybox/left.jpg");
|
||||
faces.push_back("../../../resources/textures/skybox/top.jpg");
|
||||
faces.push_back("../../../resources/textures/skybox/bottom.jpg");
|
||||
faces.push_back("../../../resources/textures/skybox/back.jpg");
|
||||
faces.push_back("../../../resources/textures/skybox/front.jpg");
|
||||
faces.push_back(FileSystem::getPath("resources/textures/skybox/right.jpg").c_str());
|
||||
faces.push_back(FileSystem::getPath("resources/textures/skybox/left.jpg").c_str());
|
||||
faces.push_back(FileSystem::getPath("resources/textures/skybox/top.jpg").c_str());
|
||||
faces.push_back(FileSystem::getPath("resources/textures/skybox/bottom.jpg").c_str());
|
||||
faces.push_back(FileSystem::getPath("resources/textures/skybox/back.jpg").c_str());
|
||||
faces.push_back(FileSystem::getPath("resources/textures/skybox/front.jpg").c_str());
|
||||
GLuint skyboxTexture = loadCubemap(faces);
|
||||
|
||||
// Draw as wireframe
|
||||
@@ -300,7 +301,7 @@ GLuint loadCubemap(std::vector<const GLchar*> faces)
|
||||
// This function loads a texture from file. Note: texture loading functions like these are usually
|
||||
// managed by a 'Resource Manager' that manages all resources (like textures, models, audio).
|
||||
// For learning purposes we'll just define it as a utility function.
|
||||
GLuint loadTexture(GLchar* path)
|
||||
GLuint loadTexture(GLchar const * path)
|
||||
{
|
||||
//Generate texture ID and load texture data
|
||||
GLuint textureID;
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
|
||||
// Other Libs
|
||||
#include <SOIL.h>
|
||||
#include <learnopengl/filesystem.h>
|
||||
|
||||
// Properties
|
||||
const GLuint SCR_WIDTH = 800, SCR_HEIGHT = 600;
|
||||
@@ -25,7 +26,7 @@ void key_callback(GLFWwindow* window, int key, int scancode, int action, int mod
|
||||
void scroll_callback(GLFWwindow* window, double xoffset, double yoffset);
|
||||
void mouse_callback(GLFWwindow* window, double xpos, double ypos);
|
||||
void Do_Movement();
|
||||
GLuint loadTexture(GLchar* path);
|
||||
GLuint loadTexture(GLchar const * path);
|
||||
|
||||
// Camera
|
||||
Camera camera(glm::vec3(0.0f, 0.0f, 3.0f));
|
||||
@@ -100,7 +101,7 @@ int main()
|
||||
glm::vec3 lightPos(0.0f, 0.0f, 0.0f);
|
||||
|
||||
// Load textures
|
||||
GLuint floorTexture = loadTexture("../../../resources/textures/wood.png");
|
||||
GLuint floorTexture = loadTexture(FileSystem::getPath("resources/textures/wood.png").c_str());
|
||||
|
||||
// Game loop
|
||||
while(!glfwWindowShouldClose(window))
|
||||
@@ -147,7 +148,7 @@ int main()
|
||||
// This function loads a texture from file. Note: texture loading functions like these are usually
|
||||
// managed by a 'Resource Manager' that manages all resources (like textures, models, audio).
|
||||
// For learning purposes we'll just define it as a utility function.
|
||||
GLuint loadTexture(GLchar* path)
|
||||
GLuint loadTexture(GLchar const * path)
|
||||
{
|
||||
// Generate texture ID and load texture data
|
||||
GLuint textureID;
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
|
||||
// Other Libs
|
||||
#include <SOIL.h>
|
||||
#include <learnopengl/filesystem.h>
|
||||
|
||||
// Properties
|
||||
const GLuint SCR_WIDTH = 800, SCR_HEIGHT = 600;
|
||||
@@ -25,7 +26,7 @@ void key_callback(GLFWwindow* window, int key, int scancode, int action, int mod
|
||||
void scroll_callback(GLFWwindow* window, double xoffset, double yoffset);
|
||||
void mouse_callback(GLFWwindow* window, double xpos, double ypos);
|
||||
void Do_Movement();
|
||||
GLuint loadTexture(GLchar* path, bool gammaCorrection);
|
||||
GLuint loadTexture(GLchar const * path, bool gammaCorrection);
|
||||
|
||||
// Camera
|
||||
Camera camera(glm::vec3(0.0f, 0.0f, 3.0f));
|
||||
@@ -112,8 +113,8 @@ int main()
|
||||
};
|
||||
|
||||
// Load textures
|
||||
GLuint floorTexture = loadTexture("../../../resources/textures/wood.png", false);
|
||||
GLuint floorTextureGammaCorrected = loadTexture("../../../resources/textures/wood.png", true);
|
||||
GLuint floorTexture = loadTexture(FileSystem::getPath("resources/textures/wood.png").c_str(), false);
|
||||
GLuint floorTextureGammaCorrected = loadTexture(FileSystem::getPath("resources/textures/wood.png").c_str(), true);
|
||||
|
||||
// Game loop
|
||||
while (!glfwWindowShouldClose(window))
|
||||
@@ -161,7 +162,7 @@ int main()
|
||||
// This function loads a texture from file. Note: texture loading functions like these are usually
|
||||
// managed by a 'Resource Manager' that manages all resources (like textures, models, audio).
|
||||
// For learning purposes we'll just define it as a utility function.
|
||||
GLuint loadTexture(GLchar* path, bool gammaCorrection)
|
||||
GLuint loadTexture(GLchar const * path, bool gammaCorrection)
|
||||
{
|
||||
// Generate texture ID and load texture data
|
||||
GLuint textureID;
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
|
||||
// Other Libs
|
||||
#include <SOIL.h>
|
||||
#include <learnopengl/filesystem.h>
|
||||
|
||||
// Properties
|
||||
const GLuint SCR_WIDTH = 800, SCR_HEIGHT = 600;
|
||||
@@ -25,7 +26,7 @@ void key_callback(GLFWwindow* window, int key, int scancode, int action, int mod
|
||||
void scroll_callback(GLFWwindow* window, double xoffset, double yoffset);
|
||||
void mouse_callback(GLFWwindow* window, double xpos, double ypos);
|
||||
void Do_Movement();
|
||||
GLuint loadTexture(GLchar* path);
|
||||
GLuint loadTexture(GLchar const * path);
|
||||
void RenderScene(Shader &shader);
|
||||
void RenderCube();
|
||||
void RenderQuad();
|
||||
@@ -114,7 +115,7 @@ int main()
|
||||
glm::vec3 lightPos(-2.0f, 4.0f, -1.0f);
|
||||
|
||||
// Load textures
|
||||
woodTexture = loadTexture("../../../resources/textures/wood.png");
|
||||
woodTexture = loadTexture(FileSystem::getPath("resources/textures/wood.png").c_str());
|
||||
|
||||
// Configure depth map FBO
|
||||
const GLuint SHADOW_WIDTH = 1024, SHADOW_HEIGHT = 1024;
|
||||
@@ -345,7 +346,7 @@ void RenderCube()
|
||||
// This function loads a texture from file. Note: texture loading functions like these are usually
|
||||
// managed by a 'Resource Manager' that manages all resources (like textures, models, audio).
|
||||
// For learning purposes we'll just define it as a utility function.
|
||||
GLuint loadTexture(GLchar* path)
|
||||
GLuint loadTexture(GLchar const * path)
|
||||
{
|
||||
// Generate texture ID and load texture data
|
||||
GLuint textureID;
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
|
||||
// Other Libs
|
||||
#include <SOIL.h>
|
||||
#include <learnopengl/filesystem.h>
|
||||
|
||||
// Properties
|
||||
const GLuint SCR_WIDTH = 800, SCR_HEIGHT = 600;
|
||||
@@ -25,7 +26,7 @@ void key_callback(GLFWwindow* window, int key, int scancode, int action, int mod
|
||||
void scroll_callback(GLFWwindow* window, double xoffset, double yoffset);
|
||||
void mouse_callback(GLFWwindow* window, double xpos, double ypos);
|
||||
void Do_Movement();
|
||||
GLuint loadTexture(GLchar* path);
|
||||
GLuint loadTexture(GLchar const * path);
|
||||
void RenderScene(Shader &shader);
|
||||
void RenderCube();
|
||||
void RenderQuad();
|
||||
@@ -89,7 +90,7 @@ int main()
|
||||
glm::vec3 lightPos(0.0f, 0.0f, 0.0f);
|
||||
|
||||
// Load textures
|
||||
woodTexture = loadTexture("../../../resources/textures/wood.png");
|
||||
woodTexture = loadTexture(FileSystem::getPath("resources/textures/wood.png").c_str());
|
||||
|
||||
// Configure depth map FBO
|
||||
const GLuint SHADOW_WIDTH = 1024, SHADOW_HEIGHT = 1024;
|
||||
@@ -300,7 +301,7 @@ void RenderCube()
|
||||
// This function loads a texture from file. Note: texture loading functions like these are usually
|
||||
// managed by a 'Resource Manager' that manages all resources (like textures, models, audio).
|
||||
// For learning purposes we'll just define it as a utility function.
|
||||
GLuint loadTexture(GLchar* path)
|
||||
GLuint loadTexture(GLchar const * path)
|
||||
{
|
||||
// Generate texture ID and load texture data
|
||||
GLuint textureID;
|
||||
|
||||
@@ -28,7 +28,7 @@ void key_callback(GLFWwindow* window, int key, int scancode, int action, int mod
|
||||
void scroll_callback(GLFWwindow* window, double xoffset, double yoffset);
|
||||
void mouse_callback(GLFWwindow* window, double xpos, double ypos);
|
||||
void Do_Movement();
|
||||
GLuint loadTexture(GLchar* path);
|
||||
GLuint loadTexture(GLchar const * path);
|
||||
|
||||
// Camera
|
||||
Camera camera(glm::vec3(0.0f, 0.0f, 3.0f));
|
||||
@@ -156,8 +156,8 @@ int main()
|
||||
glBindVertexArray(0);
|
||||
|
||||
// Load textures
|
||||
GLuint cubeTexture = loadTexture("../../../resources/textures/marble.jpg");
|
||||
GLuint floorTexture = loadTexture("../../../resources/textures/metal.png");
|
||||
GLuint cubeTexture = loadTexture(FileSystem::getPath("resources/textures/marble.jpg").c_str());
|
||||
GLuint floorTexture = loadTexture(FileSystem::getPath("resources/textures/metal.png").c_str());
|
||||
#pragma endregion
|
||||
|
||||
// Game loop
|
||||
@@ -213,7 +213,7 @@ int main()
|
||||
// This function loads a texture from file. Note: texture loading functions like these are usually
|
||||
// managed by a 'Resource Manager' that manages all resources (like textures, models, audio).
|
||||
// For learning purposes we'll just define it as a utility function.
|
||||
GLuint loadTexture(GLchar* path)
|
||||
GLuint loadTexture(GLchar const * path)
|
||||
{
|
||||
//Generate texture ID and load texture data
|
||||
GLuint textureID;
|
||||
|
||||
@@ -20,6 +20,7 @@
|
||||
|
||||
// Other Libs
|
||||
#include <SOIL.h>
|
||||
#include <learnopengl/filesystem.h>
|
||||
|
||||
// Properties
|
||||
const GLuint SCR_WIDTH = 800, SCR_HEIGHT = 600;
|
||||
@@ -29,7 +30,7 @@ void key_callback(GLFWwindow* window, int key, int scancode, int action, int mod
|
||||
void scroll_callback(GLFWwindow* window, double xoffset, double yoffset);
|
||||
void mouse_callback(GLFWwindow* window, double xpos, double ypos);
|
||||
void Do_Movement();
|
||||
GLuint loadTexture(GLchar* path);
|
||||
GLuint loadTexture(GLchar const * path);
|
||||
void RenderQuad();
|
||||
|
||||
// Camera
|
||||
@@ -73,8 +74,8 @@ int main()
|
||||
Shader shader("normal_mapping.vs", "normal_mapping.frag");
|
||||
|
||||
// Load textures
|
||||
GLuint diffuseMap = loadTexture("../../../resources/textures/brickwall.jpg");
|
||||
GLuint normalMap = loadTexture("../../../resources/textures/brickwall_normal.jpg");
|
||||
GLuint diffuseMap = loadTexture(FileSystem::getPath("resources/textures/brickwall.jpg").c_str());
|
||||
GLuint normalMap = loadTexture(FileSystem::getPath("resources/textures/brickwall_normal.jpg").c_str());
|
||||
|
||||
// Set texture units
|
||||
shader.Use();
|
||||
@@ -229,7 +230,7 @@ void RenderQuad()
|
||||
// This function loads a texture from file. Note: texture loading functions like these are usually
|
||||
// managed by a 'Resource Manager' that manages all resources (like textures, models, audio).
|
||||
// For learning purposes we'll just define it as a utility function.
|
||||
GLuint loadTexture(GLchar* path)
|
||||
GLuint loadTexture(GLchar const * path)
|
||||
{
|
||||
//Generate texture ID and load texture data
|
||||
GLuint textureID;
|
||||
|
||||
@@ -20,6 +20,7 @@
|
||||
|
||||
// Other Libs
|
||||
#include <SOIL.h>
|
||||
#include <learnopengl/filesystem.h>
|
||||
|
||||
// Properties
|
||||
const GLuint SCR_WIDTH = 800, SCR_HEIGHT = 600;
|
||||
@@ -29,7 +30,7 @@ void key_callback(GLFWwindow* window, int key, int scancode, int action, int mod
|
||||
void scroll_callback(GLFWwindow* window, double xoffset, double yoffset);
|
||||
void mouse_callback(GLFWwindow* window, double xpos, double ypos);
|
||||
void Do_Movement();
|
||||
GLuint loadTexture(GLchar* path);
|
||||
GLuint loadTexture(GLchar const * path);
|
||||
void RenderQuad();
|
||||
|
||||
// Camera
|
||||
@@ -76,12 +77,12 @@ int main()
|
||||
Shader shader("parallax_mapping.vs", "parallax_mapping.frag");
|
||||
|
||||
// Load textures
|
||||
GLuint diffuseMap = loadTexture("../../../resources/textures/bricks2.jpg");
|
||||
GLuint normalMap = loadTexture("../../../resources/textures/bricks2_normal.jpg");
|
||||
GLuint heightMap = loadTexture("../../../resources/textures/bricks2_disp.jpg");
|
||||
//GLuint diffuseMap = loadTexture("../../../resources/textures/wood.png");
|
||||
//GLuint normalMap = loadTexture("../../../resources/textures/toy_box_normal.png");
|
||||
//GLuint heightMap = loadTexture("../../../resources/textures/toy_box_disp.png");
|
||||
GLuint diffuseMap = loadTexture(FileSystem::getPath("resources/textures/bricks2.jpg").c_str());
|
||||
GLuint normalMap = loadTexture(FileSystem::getPath("resources/textures/bricks2_normal.jpg").c_str());
|
||||
GLuint heightMap = loadTexture(FileSystem::getPath("resources/textures/bricks2_disp.jpg").c_str());
|
||||
//GLuint diffuseMap = loadTexture(FileSystem::getPath("resources/textures/wood.png").c_str();
|
||||
//GLuint normalMap = loadTexture(FileSystem::getPath("resources/textures/toy_box_normal.png").c_str());
|
||||
//GLuint heightMap = loadTexture(FileSystem::getPath("resources/textures/toy_box_disp.png").c_str());
|
||||
|
||||
// Set texture units
|
||||
shader.Use();
|
||||
@@ -241,7 +242,7 @@ void RenderQuad()
|
||||
// This function loads a texture from file. Note: texture loading functions like these are usually
|
||||
// managed by a 'Resource Manager' that manages all resources (like textures, models, audio).
|
||||
// For learning purposes we'll just define it as a utility function.
|
||||
GLuint loadTexture(GLchar* path)
|
||||
GLuint loadTexture(GLchar const * path)
|
||||
{
|
||||
//Generate texture ID and load texture data
|
||||
GLuint textureID;
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
|
||||
// Other Libs
|
||||
#include <SOIL.h>
|
||||
#include <learnopengl/filesystem.h>
|
||||
|
||||
// Properties
|
||||
const GLuint SCR_WIDTH = 800, SCR_HEIGHT = 600;
|
||||
@@ -25,7 +26,7 @@ void key_callback(GLFWwindow* window, int key, int scancode, int action, int mod
|
||||
void scroll_callback(GLFWwindow* window, double xoffset, double yoffset);
|
||||
void mouse_callback(GLFWwindow* window, double xpos, double ypos);
|
||||
void Do_Movement();
|
||||
GLuint loadTexture(GLchar* path);
|
||||
GLuint loadTexture(GLchar const * path);
|
||||
void RenderScene(Shader &shader);
|
||||
void RenderCube();
|
||||
void RenderQuad();
|
||||
@@ -94,7 +95,7 @@ int main()
|
||||
lightColors.push_back(glm::vec3(0.0f, 0.1f, 0.0f));
|
||||
|
||||
// Load textures
|
||||
woodTexture = loadTexture("../../../resources/textures/wood.png");
|
||||
woodTexture = loadTexture(FileSystem::getPath("resources/textures/wood.png").c_str());
|
||||
|
||||
// Set up floating point framebuffer to render scene to
|
||||
GLuint hdrFBO;
|
||||
@@ -288,7 +289,7 @@ void RenderCube()
|
||||
// This function loads a texture from file. Note: texture loading functions like these are usually
|
||||
// managed by a 'Resource Manager' that manages all resources (like textures, models, audio).
|
||||
// For learning purposes we'll just define it as a utility function.
|
||||
GLuint loadTexture(GLchar* path)
|
||||
GLuint loadTexture(GLchar const * path)
|
||||
{
|
||||
// Generate texture ID and load texture data
|
||||
GLuint textureID;
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
|
||||
// Other Libs
|
||||
#include <SOIL.h>
|
||||
#include <learnopengl/filesystem.h>
|
||||
|
||||
// Properties
|
||||
const GLuint SCR_WIDTH = 800, SCR_HEIGHT = 600;
|
||||
@@ -25,7 +26,7 @@ void key_callback(GLFWwindow* window, int key, int scancode, int action, int mod
|
||||
void scroll_callback(GLFWwindow* window, double xoffset, double yoffset);
|
||||
void mouse_callback(GLFWwindow* window, double xpos, double ypos);
|
||||
void Do_Movement();
|
||||
GLuint loadTexture(GLchar* path);
|
||||
GLuint loadTexture(GLchar const * path);
|
||||
void RenderScene(Shader &shader);
|
||||
void RenderCube();
|
||||
void RenderQuad();
|
||||
@@ -98,8 +99,8 @@ int main()
|
||||
lightColors.push_back(glm::vec3(0.0f, 1.5f, 0.0f));
|
||||
|
||||
// Load textures
|
||||
GLuint woodTexture = loadTexture("../../../resources/textures/wood.png");
|
||||
GLuint containerTexture = loadTexture("../../../resources/textures/container2.png");
|
||||
GLuint woodTexture = loadTexture(FileSystem::getPath("resources/textures/wood.png").c_str());
|
||||
GLuint containerTexture = loadTexture(FileSystem::getPath("resources/textures/container2.png").c_str());
|
||||
|
||||
// Set up floating point framebuffer to render scene to
|
||||
GLuint hdrFBO;
|
||||
@@ -386,7 +387,7 @@ void RenderCube()
|
||||
// This function loads a texture from file. Note: texture loading functions like these are usually
|
||||
// managed by a 'Resource Manager' that manages all resources (like textures, models, audio).
|
||||
// For learning purposes we'll just define it as a utility function.
|
||||
GLuint loadTexture(GLchar* path)
|
||||
GLuint loadTexture(GLchar const * path)
|
||||
{
|
||||
// Generate texture ID and load texture data
|
||||
GLuint textureID;
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
|
||||
// Other Libs
|
||||
#include <SOIL.h>
|
||||
#include <learnopengl/filesystem.h>
|
||||
|
||||
// Properties
|
||||
const GLuint SCR_WIDTH = 800, SCR_HEIGHT = 600;
|
||||
@@ -26,7 +27,7 @@ void key_callback(GLFWwindow* window, int key, int scancode, int action, int mod
|
||||
void scroll_callback(GLFWwindow* window, double xoffset, double yoffset);
|
||||
void mouse_callback(GLFWwindow* window, double xpos, double ypos);
|
||||
void Do_Movement();
|
||||
GLuint loadTexture(GLchar* path);
|
||||
GLuint loadTexture(GLchar const * path);
|
||||
void RenderCube();
|
||||
void RenderQuad();
|
||||
|
||||
@@ -84,7 +85,7 @@ int main()
|
||||
glUniform1i(glGetUniformLocation(shaderLightingPass.Program, "gAlbedoSpec"), 2);
|
||||
|
||||
// Models
|
||||
Model cyborg("../../../resources/objects/nanosuit/nanosuit.obj");
|
||||
Model cyborg(FileSystem::getPath("resources/objects/nanosuit/nanosuit.obj").c_str());
|
||||
std::vector<glm::vec3> objectPositions;
|
||||
objectPositions.push_back(glm::vec3(-3.0, -3.0, -3.0));
|
||||
objectPositions.push_back(glm::vec3(0.0, -3.0, -3.0));
|
||||
|
||||
@@ -19,6 +19,7 @@
|
||||
#include <SOIL.h>
|
||||
|
||||
#include <random> // necessary for generation of random floats (for sample kernel and noise texture)
|
||||
#include <learnopengl/filesystem.h>
|
||||
|
||||
// Properties
|
||||
const GLuint SCR_WIDTH = 800, SCR_HEIGHT = 600;
|
||||
@@ -96,7 +97,7 @@ int main()
|
||||
glUniform1i(glGetUniformLocation(shaderSSAO.Program, "texNoise"), 2);
|
||||
|
||||
// Objects
|
||||
Model nanosuit("../../../resources/objects/nanosuit/nanosuit.obj");
|
||||
Model nanosuit(FileSystem::getPath("resources/objects/nanosuit/nanosuit.obj").c_str());
|
||||
|
||||
// Lights
|
||||
glm::vec3 lightPos = glm::vec3(2.0, 4.0, -2.0);
|
||||
|
||||
Reference in New Issue
Block a user