render one planet with moon
This commit is contained in:
parent
60a5c80adc
commit
f9c93f9d5b
1
grk/project/GameObject.cpp
Normal file
1
grk/project/GameObject.cpp
Normal file
@ -0,0 +1 @@
|
|||||||
|
#include "GameObject.h"
|
9
grk/project/GameObject.h
Normal file
9
grk/project/GameObject.h
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
#include "glm.hpp"
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
class GameObject
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
|
||||||
|
virtual glm::mat4 getPositionMatrix() = 0;
|
||||||
|
};
|
1
grk/project/Planet.cpp
Normal file
1
grk/project/Planet.cpp
Normal file
@ -0,0 +1 @@
|
|||||||
|
#include "Planet.h"
|
42
grk/project/Planet.h
Normal file
42
grk/project/Planet.h
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
#include "./GameObject.h"
|
||||||
|
#include "glm.hpp"
|
||||||
|
#include "ext.hpp"
|
||||||
|
#include "src/Render_Utils.h"
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
class Planet : public GameObject
|
||||||
|
{
|
||||||
|
private:
|
||||||
|
GameObject* center;
|
||||||
|
float distanceFromCenter;
|
||||||
|
float rotationSpeed;
|
||||||
|
Core::RenderContext sphereContext;
|
||||||
|
float scale;
|
||||||
|
glm::vec3 position;
|
||||||
|
glm::mat4 positionMatrix;
|
||||||
|
|
||||||
|
public:
|
||||||
|
Planet(GameObject* center, float distanceFromCenter, float rotationSpeed, float scale, Core::RenderContext sphereContext) {
|
||||||
|
this->center = center;
|
||||||
|
this->distanceFromCenter = distanceFromCenter;
|
||||||
|
this->rotationSpeed = rotationSpeed;
|
||||||
|
this->sphereContext = sphereContext;
|
||||||
|
this->scale = scale;
|
||||||
|
this->position = glm::vec3(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
glm::mat4 getPositionMatrix() override {
|
||||||
|
return positionMatrix;
|
||||||
|
}
|
||||||
|
|
||||||
|
void draw(float time, GLuint program) {
|
||||||
|
if (center == nullptr) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
float rotationAngle = glm::radians(time * rotationSpeed);
|
||||||
|
positionMatrix = center->getPositionMatrix() * glm::eulerAngleY(time * rotationSpeed) * glm::translate(glm::vec3(distanceFromCenter, 0, 0));
|
||||||
|
glm::mat4 modelMatrix = positionMatrix * glm::scale(glm::vec3(scale));
|
||||||
|
Core::drawObjectPBR(sphereContext, modelMatrix, glm::vec3(0.2, 0.7, 0.3), 0.3, 0.0, program);
|
||||||
|
}
|
||||||
|
};
|
@ -1,5 +1,6 @@
|
|||||||
#include "glm.hpp"
|
#include "glm.hpp"
|
||||||
#include "ext.hpp"
|
#include "ext.hpp"
|
||||||
|
#include <GLFW/glfw3.h>
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
class Spaceship
|
class Spaceship
|
||||||
|
@ -1,9 +1,10 @@
|
|||||||
#include "glm.hpp"
|
#include "glm.hpp"
|
||||||
#include "ext.hpp"
|
#include "ext.hpp"
|
||||||
#include "./Spaceship.h"
|
#include "./Spaceship.h"
|
||||||
|
#include "./GameObject.h"
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
class Sun
|
class Sun : public GameObject
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
glm::vec3 sunPos;
|
glm::vec3 sunPos;
|
||||||
@ -12,6 +13,7 @@ public:
|
|||||||
double scale;
|
double scale;
|
||||||
GLuint program;
|
GLuint program;
|
||||||
Core::RenderContext sphereContext;
|
Core::RenderContext sphereContext;
|
||||||
|
glm::mat4 positionMatrix;
|
||||||
|
|
||||||
Sun(GLuint program, Core::RenderContext sphereContext, glm::vec3 pos, glm::vec3 dir, glm::vec3 color, double scale) {
|
Sun(GLuint program, Core::RenderContext sphereContext, glm::vec3 pos, glm::vec3 dir, glm::vec3 color, double scale) {
|
||||||
this->program = program;
|
this->program = program;
|
||||||
@ -27,10 +29,15 @@ public:
|
|||||||
void draw() {
|
void draw() {
|
||||||
glUseProgram(program);
|
glUseProgram(program);
|
||||||
glm::mat4 viewProjectionMatrix = Core::createPerspectiveMatrix() * Spaceship::getInstance().createCameraMatrix();
|
glm::mat4 viewProjectionMatrix = Core::createPerspectiveMatrix() * Spaceship::getInstance().createCameraMatrix();
|
||||||
glm::mat4 transformation = viewProjectionMatrix * glm::translate(sunPos) * glm::scale(glm::vec3(scale));
|
positionMatrix = glm::translate(sunPos);
|
||||||
|
glm::mat4 transformation = viewProjectionMatrix * positionMatrix * glm::scale(glm::vec3(scale));
|
||||||
glUniformMatrix4fv(glGetUniformLocation(program, "transformation"), 1, GL_FALSE, (float*)&transformation);
|
glUniformMatrix4fv(glGetUniformLocation(program, "transformation"), 1, GL_FALSE, (float*)&transformation);
|
||||||
glUniform3f(glGetUniformLocation(program, "color"), sunColor.x / 2, sunColor.y / 2, sunColor.z / 2);
|
glUniform3f(glGetUniformLocation(program, "color"), sunColor.x / 2, sunColor.y / 2, sunColor.z / 2);
|
||||||
glUniform1f(glGetUniformLocation(program, "exposition"), 1.f);
|
glUniform1f(glGetUniformLocation(program, "exposition"), 1.f);
|
||||||
Core::DrawContext(sphereContext);
|
Core::DrawContext(sphereContext);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
glm::mat4 getPositionMatrix() override {
|
||||||
|
return positionMatrix;
|
||||||
|
}
|
||||||
};
|
};
|
@ -11,6 +11,8 @@
|
|||||||
</ProjectConfiguration>
|
</ProjectConfiguration>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
<ClCompile Include="GameObject.cpp" />
|
||||||
|
<ClCompile Include="Planet.cpp" />
|
||||||
<ClCompile Include="src\Box.cpp" />
|
<ClCompile Include="src\Box.cpp" />
|
||||||
<ClCompile Include="src\Camera.cpp" />
|
<ClCompile Include="src\Camera.cpp" />
|
||||||
<ClCompile Include="src\main.cpp" />
|
<ClCompile Include="src\main.cpp" />
|
||||||
@ -23,7 +25,9 @@
|
|||||||
<ClCompile Include="src\Texture.cpp" />
|
<ClCompile Include="src\Texture.cpp" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
<ClInclude Include="GameObject.h" />
|
||||||
<ClInclude Include="GameUtils.h" />
|
<ClInclude Include="GameUtils.h" />
|
||||||
|
<ClInclude Include="Planet.h" />
|
||||||
<ClInclude Include="Spaceship.h" />
|
<ClInclude Include="Spaceship.h" />
|
||||||
<ClInclude Include="src\Camera.h" />
|
<ClInclude Include="src\Camera.h" />
|
||||||
<ClInclude Include="src\ex_9_1.hpp" />
|
<ClInclude Include="src\ex_9_1.hpp" />
|
||||||
|
@ -51,6 +51,12 @@
|
|||||||
<ClCompile Include="src\SOIL\image_helper.c">
|
<ClCompile Include="src\SOIL\image_helper.c">
|
||||||
<Filter>Source Files\SOIL</Filter>
|
<Filter>Source Files\SOIL</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
<ClCompile Include="GameObject.cpp">
|
||||||
|
<Filter>Source Files</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="Planet.cpp">
|
||||||
|
<Filter>Source Files</Filter>
|
||||||
|
</ClCompile>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClInclude Include="src\objload.h">
|
<ClInclude Include="src\objload.h">
|
||||||
@ -98,6 +104,12 @@
|
|||||||
<ClInclude Include="GameUtils.h">
|
<ClInclude Include="GameUtils.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
|
<ClInclude Include="GameObject.h">
|
||||||
|
<Filter>Header Files</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="Planet.h">
|
||||||
|
<Filter>Header Files</Filter>
|
||||||
|
</ClInclude>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<None Include="shaders\shader_8_sun.vert">
|
<None Include="shaders\shader_8_sun.vert">
|
||||||
|
@ -8,6 +8,7 @@
|
|||||||
#include <assimp/scene.h>
|
#include <assimp/scene.h>
|
||||||
#include <assimp/postprocess.h>
|
#include <assimp/postprocess.h>
|
||||||
#include "../GameUtils.h"
|
#include "../GameUtils.h"
|
||||||
|
#include "../Spaceship.h"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -147,4 +148,40 @@ glm::mat4 Core::createPerspectiveMatrix()
|
|||||||
perspectiveMatrix = glm::transpose(perspectiveMatrix);
|
perspectiveMatrix = glm::transpose(perspectiveMatrix);
|
||||||
|
|
||||||
return perspectiveMatrix;
|
return perspectiveMatrix;
|
||||||
|
}
|
||||||
|
|
||||||
|
void Core::drawObjectPBR(Core::RenderContext& context, glm::mat4 modelMatrix, glm::vec3 color, float roughness, float metallic, GLuint program) {
|
||||||
|
|
||||||
|
glm::mat4 viewProjectionMatrix = Core::createPerspectiveMatrix() * Spaceship::getInstance().createCameraMatrix();
|
||||||
|
glm::mat4 transformation = viewProjectionMatrix * modelMatrix;
|
||||||
|
glUniformMatrix4fv(glGetUniformLocation(program, "transformation"), 1, GL_FALSE, (float*)&transformation);
|
||||||
|
glUniformMatrix4fv(glGetUniformLocation(program, "modelMatrix"), 1, GL_FALSE, (float*)&modelMatrix);
|
||||||
|
|
||||||
|
glUniform1f(glGetUniformLocation(program, "exposition"), 1.f);
|
||||||
|
|
||||||
|
glUniform1f(glGetUniformLocation(program, "roughness"), roughness);
|
||||||
|
glUniform1f(glGetUniformLocation(program, "metallic"), metallic);
|
||||||
|
|
||||||
|
glUniform3f(glGetUniformLocation(program, "color"), color.x, color.y, color.z);
|
||||||
|
|
||||||
|
glUniform3f(glGetUniformLocation(program, "cameraPos"), Spaceship::getInstance().cameraPos.x, Spaceship::getInstance().cameraPos.y, Spaceship::getInstance().cameraPos.z);
|
||||||
|
|
||||||
|
|
||||||
|
const int NUM_LIGHTS = 23;
|
||||||
|
|
||||||
|
glm::vec3 lightsPositions[NUM_LIGHTS];
|
||||||
|
glm::vec3 lightsColors[NUM_LIGHTS];
|
||||||
|
glm::vec3 lightsDirections[NUM_LIGHTS];
|
||||||
|
|
||||||
|
/*glUniform3f(glGetUniformLocation(program, "sunDir"), sun.sunDir.x, sun.sunDir.y, sun.sunDir.z);
|
||||||
|
glUniform3f(glGetUniformLocation(program, "sunColor"), sun.sunColor.x, sun.sunColor.y, sun.sunColor.z);*/
|
||||||
|
|
||||||
|
/* glUniform3f(glGetUniformLocation(program, "lightPos"), sun.sunPos.x, sun.sunPos.y, sun.sunPos.z);
|
||||||
|
glUniform3f(glGetUniformLocation(program, "lightColor"), sun.sunColor.x, sun.sunColor.y, sun.sunColor.z);*/
|
||||||
|
|
||||||
|
glUniform3f(glGetUniformLocation(program, "spotlightConeDir"), Spaceship::getInstance().spotlightConeDir.x, Spaceship::getInstance().spotlightConeDir.y, Spaceship::getInstance().spotlightConeDir.z);
|
||||||
|
glUniform3f(glGetUniformLocation(program, "spotlightPos"), Spaceship::getInstance().spotlightPos.x, Spaceship::getInstance().spotlightPos.y, Spaceship::getInstance().spotlightPos.z);
|
||||||
|
glUniform3f(glGetUniformLocation(program, "spotlightColor"), Spaceship::getInstance().spotlightColor.x, Spaceship::getInstance().spotlightColor.y, Spaceship::getInstance().spotlightColor.z);
|
||||||
|
glUniform1f(glGetUniformLocation(program, "spotlightPhi"), Spaceship::getInstance().spotlightPhi);
|
||||||
|
Core::DrawContext(context);
|
||||||
}
|
}
|
@ -71,4 +71,5 @@ namespace Core
|
|||||||
void DrawContext(RenderContext& context);
|
void DrawContext(RenderContext& context);
|
||||||
|
|
||||||
glm::mat4 createPerspectiveMatrix();
|
glm::mat4 createPerspectiveMatrix();
|
||||||
|
void drawObjectPBR(Core::RenderContext& context, glm::mat4 modelMatrix, glm::vec3 color, float roughness, float metallic, GLuint program);
|
||||||
}
|
}
|
@ -17,6 +17,8 @@
|
|||||||
#include <string>
|
#include <string>
|
||||||
#include "../Sun.h"
|
#include "../Sun.h"
|
||||||
#include "../Spaceship.h"
|
#include "../Spaceship.h"
|
||||||
|
#include "../Planet.h"
|
||||||
|
#include "../GameObject.h"
|
||||||
#include "../GameUtils.h"
|
#include "../GameUtils.h"
|
||||||
|
|
||||||
const unsigned int SHADOW_WIDTH = 1024, SHADOW_HEIGHT = 1024;
|
const unsigned int SHADOW_WIDTH = 1024, SHADOW_HEIGHT = 1024;
|
||||||
@ -42,8 +44,9 @@ Core::Shader_Loader shaderLoader;
|
|||||||
Core::RenderContext shipContext;
|
Core::RenderContext shipContext;
|
||||||
Core::RenderContext sphereContext;
|
Core::RenderContext sphereContext;
|
||||||
|
|
||||||
std::list<Sun> suns;
|
std::list<Sun*> suns;
|
||||||
Sun sun;
|
std::list<Planet*> planets;
|
||||||
|
Sun* sun;
|
||||||
GLuint VAO,VBO;
|
GLuint VAO,VBO;
|
||||||
|
|
||||||
float exposition = 1.f;
|
float exposition = 1.f;
|
||||||
@ -65,53 +68,11 @@ void updateDeltaTime(float time) {
|
|||||||
lastTime = time;
|
lastTime = time;
|
||||||
}
|
}
|
||||||
|
|
||||||
void drawObjectPBR(Core::RenderContext& context, glm::mat4 modelMatrix, glm::vec3 color, float roughness, float metallic) {
|
|
||||||
|
|
||||||
glm::mat4 viewProjectionMatrix = Core::createPerspectiveMatrix() * Spaceship::getInstance().createCameraMatrix();
|
|
||||||
glm::mat4 transformation = viewProjectionMatrix * modelMatrix;
|
|
||||||
glUniformMatrix4fv(glGetUniformLocation(program, "transformation"), 1, GL_FALSE, (float*)&transformation);
|
|
||||||
glUniformMatrix4fv(glGetUniformLocation(program, "modelMatrix"), 1, GL_FALSE, (float*)&modelMatrix);
|
|
||||||
|
|
||||||
glUniform1f(glGetUniformLocation(program, "exposition"), exposition);
|
|
||||||
|
|
||||||
glUniform1f(glGetUniformLocation(program, "roughness"), roughness);
|
|
||||||
glUniform1f(glGetUniformLocation(program, "metallic"), metallic);
|
|
||||||
|
|
||||||
glUniform3f(glGetUniformLocation(program, "color"), color.x, color.y, color.z);
|
|
||||||
|
|
||||||
glUniform3f(glGetUniformLocation(program, "cameraPos"), Spaceship::getInstance().cameraPos.x, Spaceship::getInstance().cameraPos.y, Spaceship::getInstance().cameraPos.z);
|
|
||||||
|
|
||||||
|
|
||||||
const int NUM_LIGHTS = 23;
|
|
||||||
|
|
||||||
glm::vec3 lightsPositions[NUM_LIGHTS];
|
|
||||||
glm::vec3 lightsColors[NUM_LIGHTS];
|
|
||||||
glm::vec3 lightsDirections[NUM_LIGHTS];
|
|
||||||
|
|
||||||
/*glUniform3f(glGetUniformLocation(program, "sunDir"), sun.sunDir.x, sun.sunDir.y, sun.sunDir.z);
|
|
||||||
glUniform3f(glGetUniformLocation(program, "sunColor"), sun.sunColor.x, sun.sunColor.y, sun.sunColor.z);*/
|
|
||||||
|
|
||||||
glUniform3f(glGetUniformLocation(program, "lightPos"), sun.sunPos.x, sun.sunPos.y, sun.sunPos.z);
|
|
||||||
glUniform3f(glGetUniformLocation(program, "lightColor"), sun.sunColor.x, sun.sunColor.y, sun.sunColor.z);
|
|
||||||
|
|
||||||
glUniform3f(glGetUniformLocation(program, "spotlightConeDir"), Spaceship::getInstance().spotlightConeDir.x, Spaceship::getInstance().spotlightConeDir.y, Spaceship::getInstance().spotlightConeDir.z);
|
|
||||||
glUniform3f(glGetUniformLocation(program, "spotlightPos"), Spaceship::getInstance().spotlightPos.x, Spaceship::getInstance().spotlightPos.y, Spaceship::getInstance().spotlightPos.z);
|
|
||||||
glUniform3f(glGetUniformLocation(program, "spotlightColor"), Spaceship::getInstance().spotlightColor.x, Spaceship::getInstance().spotlightColor.y, Spaceship::getInstance().spotlightColor.z);
|
|
||||||
glUniform1f(glGetUniformLocation(program, "spotlightPhi"), Spaceship::getInstance().spotlightPhi);
|
|
||||||
Core::DrawContext(context);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
void renderShadowapSun() {
|
void renderShadowapSun() {
|
||||||
float time = glfwGetTime();
|
float time = glfwGetTime();
|
||||||
glViewport(0, 0, SHADOW_WIDTH, SHADOW_HEIGHT);
|
glViewport(0, 0, SHADOW_WIDTH, SHADOW_HEIGHT);
|
||||||
//uzupelnij o renderowanie glebokosci do tekstury
|
//uzupelnij o renderowanie glebokosci do tekstury
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
glBindFramebuffer(GL_FRAMEBUFFER, 0);
|
glBindFramebuffer(GL_FRAMEBUFFER, 0);
|
||||||
glViewport(0, 0, WIDTH, HEIGHT);
|
glViewport(0, 0, WIDTH, HEIGHT);
|
||||||
}
|
}
|
||||||
@ -126,24 +87,28 @@ void renderScene(GLFWwindow* window)
|
|||||||
|
|
||||||
//space lamp
|
//space lamp
|
||||||
glUseProgram(programSun);
|
glUseProgram(programSun);
|
||||||
for (Sun& s : suns) {
|
for (Sun* s : suns) {
|
||||||
s.draw();
|
s->draw();
|
||||||
}
|
}
|
||||||
|
|
||||||
glUseProgram(program);
|
glUseProgram(program);
|
||||||
|
|
||||||
drawObjectPBR(sphereContext, glm::translate(pointlightPos) * glm::scale(glm::vec3(0.1)) * glm::eulerAngleY(time / 3) * glm::translate(glm::vec3(4.f, 0, 0)) * glm::scale(glm::vec3(0.3f)), glm::vec3(0.2, 0.7, 0.3), 0.3, 0.0);
|
for (Planet* p : planets) {
|
||||||
|
p->draw(time, program);
|
||||||
|
}
|
||||||
|
|
||||||
|
//drawObjectPBR(sphereContext, glm::translate(pointlightPos) * glm::scale(glm::vec3(1)) * glm::eulerAngleY(time / 3) * glm::translate(glm::vec3(10.f, 0, 0)) * glm::scale(glm::vec3(0.3f)), glm::vec3(0.2, 0.7, 0.3), 0.3, 0.0, program);
|
||||||
|
|
||||||
drawObjectPBR(sphereContext,
|
drawObjectPBR(sphereContext,
|
||||||
glm::translate(pointlightPos) * glm::scale(glm::vec3(0.1)) * glm::eulerAngleY(time / 3) * glm::translate(glm::vec3(4.f, 0, 0)) * glm::eulerAngleY(time) * glm::translate(glm::vec3(1.f, 0, 0)) * glm::scale(glm::vec3(0.1f)),
|
glm::translate(pointlightPos) * glm::scale(glm::vec3(0.1)) * glm::eulerAngleY(time / 3) * glm::translate(glm::vec3(4.f, 0, 0)) * glm::eulerAngleY(time) * glm::translate(glm::vec3(1.f, 0, 0)) * glm::scale(glm::vec3(0.1f)),
|
||||||
glm::vec3(0.5, 0.5, 0.5), 0.7, 0.0);
|
glm::vec3(0.5, 0.5, 0.5), 0.7, 0.0, program);
|
||||||
|
|
||||||
drawObjectPBR(models::marbleBustContext, glm::mat4(), glm::vec3(1.f, 1.f, 1.f), 0.5f, 1.0f);
|
drawObjectPBR(models::marbleBustContext, glm::mat4(), glm::vec3(1.f, 1.f, 1.f), 0.5f, 1.0f, program);
|
||||||
|
|
||||||
drawObjectPBR(shipContext,
|
drawObjectPBR(shipContext,
|
||||||
Spaceship::getInstance().calculateModelMatrix(),
|
Spaceship::getInstance().calculateModelMatrix(),
|
||||||
glm::vec3(0.3, 0.3, 0.5),
|
glm::vec3(0.3, 0.3, 0.5),
|
||||||
0.2,1.0
|
0.2,1.0, program
|
||||||
);
|
);
|
||||||
|
|
||||||
glUseProgram(0);
|
glUseProgram(0);
|
||||||
@ -170,27 +135,31 @@ void loadModelToContext(std::string path, Core::RenderContext& context)
|
|||||||
}
|
}
|
||||||
|
|
||||||
void createSuns() {
|
void createSuns() {
|
||||||
sun = Sun(programSun, models::sphereContext, glm::vec3(0, 2, 0), glm::vec3(-0.93633f, 0.351106, 0.003226f), glm::vec3(0.9f, 0.9f, 0.7f) * 5, 1);
|
sun = new Sun(programSun, models::sphereContext, glm::vec3(0, 2, 0), glm::vec3(-0.93633f, 0.351106, 0.003226f), glm::vec3(0.9f, 0.9f, 0.7f) * 5, 1);
|
||||||
|
Planet* planet = new Planet(sun, 20.f, 0.25f, 1.f, sphereContext);
|
||||||
|
planets.push_back(planet);
|
||||||
|
Planet* moon = new Planet(planet, 5.f, 1.f, 0.2f, sphereContext);
|
||||||
|
planets.push_back(moon);
|
||||||
suns.push_back(sun);
|
suns.push_back(sun);
|
||||||
suns.push_back(Sun(programSun, models::sphereContext, glm::vec3(-80, 20, 50), glm::vec3(-0.93633f, 0.351106, 0.003226f), glm::vec3(1.0f, 0.8f, 0.2f), 4.0));
|
/*suns.push_back(&Sun(programSun, models::sphereContext, glm::vec3(-80, 20, 50), glm::vec3(-0.93633f, 0.351106, 0.003226f), glm::vec3(1.0f, 0.8f, 0.2f), 4.0));
|
||||||
suns.push_back(Sun(programSun, models::sphereContext, glm::vec3(50, 40, -30), glm::vec3(-0.73633f, 0.451106, 0.023226f), glm::vec3(0.9f, 0.5f, 0.1f), 3.5));
|
suns.push_back(&Sun(programSun, models::sphereContext, glm::vec3(50, 40, -30), glm::vec3(-0.73633f, 0.451106, 0.023226f), glm::vec3(0.9f, 0.5f, 0.1f), 3.5));
|
||||||
suns.push_back(Sun(programSun, models::sphereContext, glm::vec3(0, -60, 100), glm::vec3(-0.53633f, 0.551106, 0.043226f), glm::vec3(0.8f, 0.2f, 0.2f), 4.5));
|
suns.push_back(&Sun(programSun, models::sphereContext, glm::vec3(0, -60, 100), glm::vec3(-0.53633f, 0.551106, 0.043226f), glm::vec3(0.8f, 0.2f, 0.2f), 4.5));
|
||||||
suns.push_back(Sun(programSun, models::sphereContext, glm::vec3(20, 80, -70), glm::vec3(0.33633f, 0.651106, 0.063226f), glm::vec3(0.5f, 0.7f, 0.9f), 3.8));
|
suns.push_back(&Sun(programSun, models::sphereContext, glm::vec3(20, 80, -70), glm::vec3(0.33633f, 0.651106, 0.063226f), glm::vec3(0.5f, 0.7f, 0.9f), 3.8));
|
||||||
suns.push_back(Sun(programSun, models::sphereContext, glm::vec3(-60, -20, 30), glm::vec3(-0.23633f, 0.751106, 0.083226f), glm::vec3(0.7f, 0.2f, 0.7f), 4.2));
|
suns.push_back(&Sun(programSun, models::sphereContext, glm::vec3(-60, -20, 30), glm::vec3(-0.23633f, 0.751106, 0.083226f), glm::vec3(0.7f, 0.2f, 0.7f), 4.2));
|
||||||
suns.push_back(Sun(programSun, models::sphereContext, glm::vec3(70, -50, -80), glm::vec3(-0.03633f, 0.851106, 0.103226f), glm::vec3(0.1f, 0.3f, 0.9f), 3.9));
|
suns.push_back(&Sun(programSun, models::sphereContext, glm::vec3(70, -50, -80), glm::vec3(-0.03633f, 0.851106, 0.103226f), glm::vec3(0.1f, 0.3f, 0.9f), 3.9));
|
||||||
suns.push_back(Sun(programSun, models::sphereContext, glm::vec3(10, 30, 60), glm::vec3(0.13633f, -0.951106, -0.123226f), glm::vec3(0.6f, 0.9f, 0.4f), 4.3));
|
suns.push_back(&Sun(programSun, models::sphereContext, glm::vec3(10, 30, 60), glm::vec3(0.13633f, -0.951106, -0.123226f), glm::vec3(0.6f, 0.9f, 0.4f), 4.3));
|
||||||
suns.push_back(Sun(programSun, models::sphereContext, glm::vec3(-40, -80, -50), glm::vec3(0.33633f, -0.851106, -0.143226f), glm::vec3(0.7f, 0.5f, 0.2f), 3.7));
|
suns.push_back(&Sun(programSun, models::sphereContext, glm::vec3(-40, -80, -50), glm::vec3(0.33633f, -0.851106, -0.143226f), glm::vec3(0.7f, 0.5f, 0.2f), 3.7));
|
||||||
suns.push_back(Sun(programSun, models::sphereContext, glm::vec3(90, 70, 20), glm::vec3(0.53633f, -0.751106, -0.163226f), glm::vec3(0.4f, 0.1f, 0.9f), 4.1));
|
suns.push_back(&Sun(programSun, models::sphereContext, glm::vec3(90, 70, 20), glm::vec3(0.53633f, -0.751106, -0.163226f), glm::vec3(0.4f, 0.1f, 0.9f), 4.1));
|
||||||
suns.push_back(Sun(programSun, models::sphereContext, glm::vec3(-30, 10, -40), glm::vec3(0.73633f, -0.651106, -0.183226f), glm::vec3(0.8f, 0.4f, 0.1f), 4.4));
|
suns.push_back(&Sun(programSun, models::sphereContext, glm::vec3(-30, 10, -40), glm::vec3(0.73633f, -0.651106, -0.183226f), glm::vec3(0.8f, 0.4f, 0.1f), 4.4));
|
||||||
suns.push_back(Sun(programSun, models::sphereContext, glm::vec3(150, -100, 80), glm::vec3(0.33633f, -0.951106, -0.143226f), glm::vec3(0.2f, 0.8f, 0.5f), 3.9));
|
suns.push_back(&Sun(programSun, models::sphereContext, glm::vec3(150, -100, 80), glm::vec3(0.33633f, -0.951106, -0.143226f), glm::vec3(0.2f, 0.8f, 0.5f), 3.9));
|
||||||
suns.push_back(Sun(programSun, models::sphereContext, glm::vec3(-120, 50, -60), glm::vec3(0.73633f, 0.551106, 0.103226f), glm::vec3(0.9f, 0.2f, 0.7f), 3.6));
|
suns.push_back(&Sun(programSun, models::sphereContext, glm::vec3(-120, 50, -60), glm::vec3(0.73633f, 0.551106, 0.103226f), glm::vec3(0.9f, 0.2f, 0.7f), 3.6));
|
||||||
suns.push_back(Sun(programSun, models::sphereContext, glm::vec3(0, 120, -150), glm::vec3(-0.23633f, -0.751106, 0.083226f), glm::vec3(0.5f, 0.6f, 0.9f), 3.4));
|
suns.push_back(&Sun(programSun, models::sphereContext, glm::vec3(0, 120, -150), glm::vec3(-0.23633f, -0.751106, 0.083226f), glm::vec3(0.5f, 0.6f, 0.9f), 3.4));
|
||||||
suns.push_back(Sun(programSun, models::sphereContext, glm::vec3(-180, -50, 120), glm::vec3(0.13633f, 0.351106, -0.003226f), glm::vec3(0.7f, 0.9f, 0.2f), 4.2));
|
suns.push_back(&Sun(programSun, models::sphereContext, glm::vec3(-180, -50, 120), glm::vec3(0.13633f, 0.351106, -0.003226f), glm::vec3(0.7f, 0.9f, 0.2f), 4.2));
|
||||||
suns.push_back(Sun(programSun, models::sphereContext, glm::vec3(60, -150, 180), glm::vec3(-0.93633f, -0.451106, -0.023226f), glm::vec3(0.3f, 0.7f, 0.8f), 3.8));
|
suns.push_back(&Sun(programSun, models::sphereContext, glm::vec3(60, -150, 180), glm::vec3(-0.93633f, -0.451106, -0.023226f), glm::vec3(0.3f, 0.7f, 0.8f), 3.8));
|
||||||
suns.push_back(Sun(programSun, models::sphereContext, glm::vec3(100, 80, -120), glm::vec3(0.53633f, -0.651106, 0.163226f), glm::vec3(0.8f, 0.1f, 0.4f), 4.5));
|
suns.push_back(&Sun(programSun, models::sphereContext, glm::vec3(100, 80, -120), glm::vec3(0.53633f, -0.651106, 0.163226f), glm::vec3(0.8f, 0.1f, 0.4f), 4.5));
|
||||||
suns.push_back(Sun(programSun, models::sphereContext, glm::vec3(-50, -180, 150), glm::vec3(-0.33633f, 0.951106, -0.083226f), glm::vec3(0.4f, 0.8f, 0.6f), 3.5));
|
suns.push_back(&Sun(programSun, models::sphereContext, glm::vec3(-50, -180, 150), glm::vec3(-0.33633f, 0.951106, -0.083226f), glm::vec3(0.4f, 0.8f, 0.6f), 3.5));
|
||||||
suns.push_back(Sun(programSun, models::sphereContext, glm::vec3(200, 150, -100), glm::vec3(0.03633f, 0.151106, 0.103226f), glm::vec3(0.6f, 0.2f, 0.9f), 3.9));
|
suns.push_back(&Sun(programSun, models::sphereContext, glm::vec3(200, 150, -100), glm::vec3(0.03633f, 0.151106, 0.103226f), glm::vec3(0.6f, 0.2f, 0.9f), 3.9));
|
||||||
suns.push_back(Sun(programSun, models::sphereContext, glm::vec3(-150, -100, -50), glm::vec3(0.83633f, -0.251106, -0.123226f), glm::vec3(0.7f, 0.5f, 0.8f), 4.1));
|
suns.push_back(&Sun(programSun, models::sphereContext, glm::vec3(-150, -100, -50), glm::vec3(0.83633f, -0.251106, -0.123226f), glm::vec3(0.7f, 0.5f, 0.8f), 4.1));*/
|
||||||
}
|
}
|
||||||
|
|
||||||
void init(GLFWwindow* window)
|
void init(GLFWwindow* window)
|
||||||
|
Loading…
Reference in New Issue
Block a user