tekstury #6
@ -15,14 +15,45 @@
|
||||
#include <string>
|
||||
|
||||
|
||||
namespace texture {
|
||||
namespace texturePlanets {
|
||||
GLuint earth;
|
||||
GLuint clouds;
|
||||
GLuint moon;
|
||||
GLuint planet;
|
||||
GLuint mercury;
|
||||
GLuint venus;
|
||||
GLuint mars;
|
||||
GLuint sun;
|
||||
GLuint alpine;
|
||||
GLuint ceres;
|
||||
GLuint eris;
|
||||
GLuint haumea;
|
||||
GLuint icy;
|
||||
GLuint jupiter;
|
||||
GLuint makemake;
|
||||
GLuint martian;
|
||||
GLuint neptune;
|
||||
GLuint saturn;
|
||||
GLuint savannah;
|
||||
GLuint swamp;
|
||||
GLuint tropical;
|
||||
GLuint uranus;
|
||||
GLuint venusian;
|
||||
GLuint volcanic;
|
||||
}
|
||||
|
||||
namespace textureSuns {
|
||||
GLuint sun1;
|
||||
GLuint sun2;
|
||||
GLuint sun3;
|
||||
GLuint sun4;
|
||||
}
|
||||
|
||||
namespace textureMoons {
|
||||
GLuint moon1;
|
||||
GLuint moon2;
|
||||
GLuint moon3;
|
||||
}
|
||||
|
||||
namespace textureMaterials {
|
||||
GLuint clouds;
|
||||
}
|
||||
|
||||
GLuint program;
|
||||
@ -53,8 +84,7 @@ int HDR_HEIGHT = 1024;
|
||||
|
||||
glm::vec3 lightColor = glm::vec3(50, 50, 50);
|
||||
|
||||
glm::mat4 createCameraMatrix()
|
||||
{
|
||||
glm::mat4 createCameraMatrix() {
|
||||
glm::vec3 cameraSide = glm::normalize(glm::cross(cameraDir, glm::vec3(0.f, 1.f, 0.f)));
|
||||
glm::vec3 cameraUp = glm::normalize(glm::cross(cameraSide, cameraDir));
|
||||
|
||||
@ -72,9 +102,7 @@ glm::mat4 createCameraMatrix()
|
||||
return cameraMatrix;
|
||||
}
|
||||
|
||||
glm::mat4 createPerspectiveMatrix()
|
||||
{
|
||||
|
||||
glm::mat4 createPerspectiveMatrix() {
|
||||
glm::mat4 perspectiveMatrix;
|
||||
float n = 0.05f;
|
||||
float f = 20.f;
|
||||
@ -89,7 +117,6 @@ glm::mat4 createPerspectiveMatrix()
|
||||
0.,0.,-1.,0.,
|
||||
});
|
||||
|
||||
|
||||
perspectiveMatrix = glm::transpose(perspectiveMatrix);
|
||||
|
||||
return perspectiveMatrix;
|
||||
@ -191,8 +218,7 @@ void drawObjectPBR(Core::RenderContext& context, glm::mat4 modelMatrix, glm::vec
|
||||
|
||||
}
|
||||
*/
|
||||
void renderScene(GLFWwindow* window)
|
||||
{
|
||||
void renderScene(GLFWwindow* window) {
|
||||
glClearColor(0.0f, 0.0f, 0.15f, 1.0f);
|
||||
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
|
||||
glm::mat4 transformation;
|
||||
@ -201,25 +227,23 @@ void renderScene(GLFWwindow* window)
|
||||
glm::mat4 sunScale = glm::scale(glm::vec3(0.04f));
|
||||
glm::mat4 sunTranslate = glm::translate(sunPosition);
|
||||
|
||||
drawSun(sphereContext, sunTranslate * sunScale, texture::sun);
|
||||
drawSun(sphereContext, sunTranslate * sunScale, textureSuns::sun1);
|
||||
|
||||
glm::mat4 planetScale = glm::scale(glm::vec3(0.005f)); // model jest bardzo duży, dlatego taka niska skala
|
||||
glm::mat4 planetRotate = glm::rotate(time * 0.0416f, glm::vec3(0, 1, 0)); // 1 godzina mija w 1 sekundę, obrót z zachodu na wschód
|
||||
glm::mat4 planetTranslate = glm::translate(glm::vec3(0, 0, 0)); // zostaje na domyślnej pozycji
|
||||
|
||||
drawObjectTexture(sphereContext, planetTranslate * planetRotate * planetScale, texture::earth);
|
||||
drawObjectTexture(sphereContext, planetTranslate * planetRotate * planetScale, texturePlanets::earth);
|
||||
|
||||
glfwSwapBuffers(window);
|
||||
}
|
||||
|
||||
void framebuffer_size_callback(GLFWwindow* window, int width, int height)
|
||||
{
|
||||
void framebuffer_size_callback(GLFWwindow* window, int width, int height) {
|
||||
aspectRatio = float(width) / float(height);
|
||||
glViewport(0, 0, width, height);
|
||||
}
|
||||
|
||||
void loadModelToContext(std::string path, Core::RenderContext& context)
|
||||
{
|
||||
void loadModelToContext(std::string path, Core::RenderContext& context) {
|
||||
Assimp::Importer import;
|
||||
const aiScene* scene = import.ReadFile(path, aiProcess_Triangulate | aiProcess_CalcTangentSpace);
|
||||
|
||||
@ -231,8 +255,7 @@ void loadModelToContext(std::string path, Core::RenderContext& context)
|
||||
context.initFromAssimpMesh(scene->mMeshes[0]);
|
||||
}
|
||||
|
||||
void init(GLFWwindow* window)
|
||||
{
|
||||
void init(GLFWwindow* window) {
|
||||
glfwSetFramebufferSizeCallback(window, framebuffer_size_callback);
|
||||
|
||||
glEnable(GL_DEPTH_TEST);
|
||||
@ -246,21 +269,44 @@ void init(GLFWwindow* window)
|
||||
|
||||
loadModelToContext("./models/sphere.obj", sphereContext);
|
||||
|
||||
texture::earth = Core::LoadTexture("./textures/earth2.png");
|
||||
texture::clouds = Core::LoadTexture("./textures/clouds.jpg");
|
||||
texture::sun = Core::LoadTexture("./textures/sun.jpg");
|
||||
texturePlanets::earth = Core::LoadTexture("./textures/planets/earth2.png");
|
||||
/*texturePlanets::planet = Core::LoadTexture("./textures/planets/planet.png");
|
||||
texturePlanets::mercury = Core::LoadTexture("./textures/planets/mercury1.jpg");
|
||||
texturePlanets::venus = Core::LoadTexture("./textures/planets/earth2.png");
|
||||
texturePlanets::mars = Core::LoadTexture("./textures/planets/mars.jpg");
|
||||
texturePlanets::alpine = Core::LoadTexture("./textures/planets/Alpine.png");
|
||||
texturePlanets::ceres = Core::LoadTexture("./textures/planets/ceres_fictional.jpg");
|
||||
texturePlanets::eris = Core::LoadTexture("./textures/planets/eris_fictional.jpg");
|
||||
texturePlanets::haumea = Core::LoadTexture("./textures/planets/haumea_fictional.jpg");
|
||||
texturePlanets::icy = Core::LoadTexture("./textures/planets/Icy.png");
|
||||
texturePlanets::jupiter = Core::LoadTexture("./textures/planets/jupiter.jpg");
|
||||
texturePlanets::makemake = Core::LoadTexture("./textures/planets/makemake_fictional.jpg");
|
||||
texturePlanets::martian = Core::LoadTexture("./textures/planets/Martian.png");
|
||||
texturePlanets::neptune = Core::LoadTexture("./textures/planets/neptune.jpg");
|
||||
texturePlanets::saturn = Core::LoadTexture("./textures/planets/saturn.jpg");
|
||||
texturePlanets::savannah = Core::LoadTexture("./textures/planets/Savannah.png");
|
||||
texturePlanets::swamp = Core::LoadTexture("./textures/planets/Swamp.png");
|
||||
texturePlanets::tropical = Core::LoadTexture("./textures/planets/Tropical.png");
|
||||
texturePlanets::uranus = Core::LoadTexture("./textures/planets/uranus.jpg");
|
||||
texturePlanets::venusian = Core::LoadTexture("./textures/planets/Venusian.png");
|
||||
texturePlanets::volcanic = Core::LoadTexture("./textures/planets/Volcanic.png");*/
|
||||
|
||||
textureSuns::sun1 = Core::LoadTexture("./textures/suns/sun1.jpg");
|
||||
/*textureSuns::sun2 = Core::LoadTexture("./textures/suns/sun2.jpg");
|
||||
textureSuns::sun3 = Core::LoadTexture("./textures/suns/sun3.jpg");
|
||||
textureSuns::sun4 = Core::LoadTexture("./textures/suns/sun4.jpg");*/
|
||||
|
||||
textureMaterials::clouds = Core::LoadTexture("./textures/planets/clouds.jpg");
|
||||
}
|
||||
|
||||
void shutdown(GLFWwindow* window)
|
||||
{
|
||||
void shutdown(GLFWwindow* window) {
|
||||
shaderLoader.DeleteProgram(programDepth);
|
||||
shaderLoader.DeleteProgram(programTex);
|
||||
shaderLoader.DeleteProgram(programSun);
|
||||
}
|
||||
|
||||
//obsluga wejscia
|
||||
void processInput(GLFWwindow* window)
|
||||
{
|
||||
void processInput(GLFWwindow* window) {
|
||||
glm::vec3 cameraSide = glm::normalize(glm::cross(cameraDir, glm::vec3(0.f, 1.f, 0.f)));
|
||||
|
||||
float angleSpeed = 0.002f;
|
||||
|
Before Width: | Height: | Size: 8.0 MiB |
Before Width: | Height: | Size: 3.3 MiB After Width: | Height: | Size: 3.3 MiB |
Before Width: | Height: | Size: 3.3 MiB After Width: | Height: | Size: 3.3 MiB |
Before Width: | Height: | Size: 6.5 MiB After Width: | Height: | Size: 6.5 MiB |
Before Width: | Height: | Size: 1.5 MiB After Width: | Height: | Size: 1.5 MiB |
Before Width: | Height: | Size: 1.1 MiB After Width: | Height: | Size: 1.1 MiB |
BIN
grk/cw 6/textures/moons/moon1.jpg
Normal file
After Width: | Height: | Size: 1.0 MiB |
Before Width: | Height: | Size: 94 KiB After Width: | Height: | Size: 94 KiB |
Before Width: | Height: | Size: 598 KiB After Width: | Height: | Size: 598 KiB |
Before Width: | Height: | Size: 424 KiB After Width: | Height: | Size: 424 KiB |
BIN
grk/cw 6/textures/planets/Alpine.png
Normal file
After Width: | Height: | Size: 2.3 MiB |
BIN
grk/cw 6/textures/planets/Icy.png
Normal file
After Width: | Height: | Size: 2.0 MiB |
BIN
grk/cw 6/textures/planets/Martian.png
Normal file
After Width: | Height: | Size: 2.1 MiB |
BIN
grk/cw 6/textures/planets/Savannah.png
Normal file
After Width: | Height: | Size: 2.3 MiB |
BIN
grk/cw 6/textures/planets/Swamp.png
Normal file
After Width: | Height: | Size: 2.5 MiB |
BIN
grk/cw 6/textures/planets/Tropical.png
Normal file
After Width: | Height: | Size: 2.2 MiB |
BIN
grk/cw 6/textures/planets/Venusian.png
Normal file
After Width: | Height: | Size: 1.6 MiB |
BIN
grk/cw 6/textures/planets/Volcanic.png
Normal file
After Width: | Height: | Size: 2.7 MiB |
BIN
grk/cw 6/textures/planets/ceres_fictional.jpg
Normal file
After Width: | Height: | Size: 1.1 MiB |
Before Width: | Height: | Size: 9.2 MiB After Width: | Height: | Size: 9.2 MiB |
Before Width: | Height: | Size: 148 KiB After Width: | Height: | Size: 148 KiB |
Before Width: | Height: | Size: 4.4 MiB After Width: | Height: | Size: 4.4 MiB |
BIN
grk/cw 6/textures/planets/earth_nightmap.jpg
Normal file
After Width: | Height: | Size: 249 KiB |
BIN
grk/cw 6/textures/planets/eris_fictional.jpg
Normal file
After Width: | Height: | Size: 1.0 MiB |
BIN
grk/cw 6/textures/planets/haumea_fictional.jpg
Normal file
After Width: | Height: | Size: 879 KiB |
BIN
grk/cw 6/textures/planets/jupiter.jpg
Normal file
After Width: | Height: | Size: 487 KiB |
BIN
grk/cw 6/textures/planets/makemake_fictional.jpg
Normal file
After Width: | Height: | Size: 1.1 MiB |
BIN
grk/cw 6/textures/planets/mars.jpg
Normal file
After Width: | Height: | Size: 733 KiB |
BIN
grk/cw 6/textures/planets/mercury1.jpg
Normal file
After Width: | Height: | Size: 852 KiB |
Before Width: | Height: | Size: 279 KiB After Width: | Height: | Size: 279 KiB |
BIN
grk/cw 6/textures/planets/neptune.jpg
Normal file
After Width: | Height: | Size: 236 KiB |
Before Width: | Height: | Size: 3.0 MiB After Width: | Height: | Size: 3.0 MiB |
Before Width: | Height: | Size: 163 KiB After Width: | Height: | Size: 163 KiB |
BIN
grk/cw 6/textures/planets/planet.png
Normal file
After Width: | Height: | Size: 32 MiB |
BIN
grk/cw 6/textures/planets/saturn.jpg
Normal file
After Width: | Height: | Size: 195 KiB |
BIN
grk/cw 6/textures/planets/saturn_ring_alpha.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
grk/cw 6/textures/planets/uranus.jpg
Normal file
After Width: | Height: | Size: 76 KiB |
BIN
grk/cw 6/textures/planets/venus.jpg
Normal file
After Width: | Height: | Size: 864 KiB |
Before Width: | Height: | Size: 803 KiB After Width: | Height: | Size: 803 KiB |
BIN
grk/cw 6/textures/suns/sun2.jpg
Normal file
After Width: | Height: | Size: 465 KiB |
BIN
grk/cw 6/textures/suns/sun3.jpg
Normal file
After Width: | Height: | Size: 183 KiB |
BIN
grk/cw 6/textures/suns/sun4.png
Normal file
After Width: | Height: | Size: 2.4 MiB |
BIN
grk/cw 6/textures/suns/sun5.png
Normal file
After Width: | Height: | Size: 1.2 MiB |
Before Width: | Height: | Size: 29 KiB |