I’ve looked through the internet and the forums on cubemaps. Didn’t find anything that helped. I am getting no output. All black I guess. When I switch the frag_color output to vec4(1.0f), nothing happens still. So that leads me to believe that the vertices are not working proper, wrong order maybe… what am I doing wrong? Trying to use my initial mesh class which works fine. I used this as a reference: Cube Maps: Skyboxes and Environment Mapping - Anton's OpenGL 4 Tutorials
CubeMap.h
#ifndef CUBEMAP_H
#define CUBEMAP_H
#include <iostream>
#include "Helper.h"
//Forward Declarations
class Mesh;
class Texture;
class CubeMap
{
private:
float size;
GLuint cube;
Mesh* mesh;
void Generator();
void loadCubeFace(GLenum face, char* filename);
public:
CubeMap();
CubeMap(char* front, char* back, char* right, char* left, char* top, char* bottom);
void Render();
};
#endif
...
CubeMap.cpp
#include "CubeMap.h"
#include "Mesh.h"
#include "Texture.h"
void CubeMap::Generator()
{
glActiveTexture(GL_TEXTURE0);
glGenTextures(1, &cube);
}
CubeMap::CubeMap() :
size(0),
cube(0),
mesh(NULL)
{
}
CubeMap::CubeMap(char* front, char* back, char* right, char* left, char* top, char* bottom) :
cube(0),
size(1.0f),
mesh(new Mesh())
{
//. Generate Main Texture
Generator();
//. Generate Mesh
generateCubeMap(1.0f, mesh);
//.
cube = SOIL_load_OGL_cubemap(right, left, top, bottom, back, front, SOIL_LOAD_RGB, SOIL_CREATE_NEW_ID, SOIL_FLAG_INVERT_Y);
//. Texture Faces
glBindTexture(GL_TEXTURE_CUBE_MAP, cube);
//. Format Cube
glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_WRAP_R, GL_CLAMP_TO_EDGE);
glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
//. Unbind Texture
glBindTexture(GL_TEXTURE_CUBE_MAP, 0);
}
void CubeMap::Render()
{
glActiveTexture(GL_TEXTURE0);
glBindTexture(GL_TEXTURE_CUBE_MAP, cube);
mesh->Render();
glBindTexture(GL_TEXTURE_CUBE_MAP, 0);
}
Shader compiles with no errors.
#version 440
layout (location = 0) in vec3 position;
//.
uniform mat4 projection;
//.
out vec3 vPosition;
//.
void main()
{
vPosition = position;
gl_Position = (projection * vec4(position, 1.0f));
}
#version 440
in vec3 vPosition;
//.
uniform samplerCube sampler;
//.
out vec4 frag_color;
//.
void main()
{
vec4 result = texture(sampler, vPosition);
//.
frag_color = result;
}