Bugs fix
This commit is contained in:
parent
51cd9cfebb
commit
98e27408c4
@ -40,7 +40,6 @@ static int showCaustics = 1, causticMotion = 1;
|
|||||||
static int useMipmaps = 1;
|
static int useMipmaps = 1;
|
||||||
static int currentCaustic = 0;
|
static int currentCaustic = 0;
|
||||||
static int causticIncrement = 1;
|
static int causticIncrement = 1;
|
||||||
static int NUMBER_OF_BUBBLES = 500;
|
|
||||||
|
|
||||||
static float lightAngle = 0.0, lightHeight = 20;
|
static float lightAngle = 0.0, lightHeight = 20;
|
||||||
static GLfloat angle = -150; /* in degrees */
|
static GLfloat angle = -150; /* in degrees */
|
||||||
@ -48,11 +47,11 @@ static GLfloat angle2 = 30; /* in degrees */
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
CONST int fish1Number = 100;
|
CONST int fish1Number = 150;
|
||||||
float fishRotation1[fish1Number];
|
float fishRotation1[fish1Number];
|
||||||
glm::vec3 fishLocation[fish1Number];
|
glm::vec3 fishLocation[fish1Number];
|
||||||
|
|
||||||
CONST int fish2Number = 100;
|
CONST int fish2Number = 150;
|
||||||
float fishRotation2[fish2Number];
|
float fishRotation2[fish2Number];
|
||||||
glm::vec3 fishLocation2[fish2Number];
|
glm::vec3 fishLocation2[fish2Number];
|
||||||
|
|
||||||
@ -112,14 +111,16 @@ int WIN_WIDTH = 1280;
|
|||||||
int WIN_HEIGHT = 720;
|
int WIN_HEIGHT = 720;
|
||||||
|
|
||||||
float sea_bottom_y_pos = -3.f;
|
float sea_bottom_y_pos = -3.f;
|
||||||
const int amount_of_marine_plants = 150;
|
const int amount_of_marine_plants = 300;
|
||||||
|
|
||||||
glm::vec3 marinePlantsLocation[amount_of_marine_plants];
|
glm::vec3 marinePlantsLocation[amount_of_marine_plants];
|
||||||
glm::vec3 planetLocation[100];
|
glm::vec3 planetLocation[amount_of_marine_plants];
|
||||||
glm::vec3 bubbleLocation[500];
|
|
||||||
glm::vec3 bubbleOriginalLocation[500];
|
CONST int bubbleQuantity = 150;
|
||||||
bool bubbleZdir[500] ;
|
glm::vec3 bubbleLocation[bubbleQuantity];
|
||||||
bool bubbleXdir[500] ;
|
glm::vec3 bubbleOriginalLocation[bubbleQuantity];
|
||||||
|
bool bubbleZdir[bubbleQuantity];
|
||||||
|
bool bubbleXdir[bubbleQuantity];
|
||||||
|
|
||||||
float mouseXPosition;
|
float mouseXPosition;
|
||||||
float mouseYPosition;
|
float mouseYPosition;
|
||||||
@ -144,6 +145,8 @@ float vehicleAngleSpeed = 0.0f;
|
|||||||
float vehicleVerticalSpeed = 0.0f;
|
float vehicleVerticalSpeed = 0.0f;
|
||||||
bool directionChanged = false;
|
bool directionChanged = false;
|
||||||
|
|
||||||
|
bool freecam = false;
|
||||||
|
|
||||||
glm::vec3 starLocation;
|
glm::vec3 starLocation;
|
||||||
|
|
||||||
bool starIsPlaced = false;
|
bool starIsPlaced = false;
|
||||||
@ -173,7 +176,8 @@ void keyboard(unsigned char key, int x, int y)
|
|||||||
//case 'h': rotation_y = glm::quat(1, 0, 0, 0); rotation_x = glm::quat(1, 0, 0, 0); rotationCamera = glm::quat(1, 0, 0, 0); break;
|
//case 'h': rotation_y = glm::quat(1, 0, 0, 0); rotation_x = glm::quat(1, 0, 0, 0); rotationCamera = glm::quat(1, 0, 0, 0); break;
|
||||||
//case 'h': rotation_y = glm::quat(1, 0, 0, 0); rotation_x = glm::quat(1, 0, 0, 0); rotationCamera = glm::quat(1, 0, 0, 0); break;
|
//case 'h': rotation_y = glm::quat(1, 0, 0, 0); rotation_x = glm::quat(1, 0, 0, 0); rotationCamera = glm::quat(1, 0, 0, 0); break;
|
||||||
|
|
||||||
case 'h': rotation_y = glm::quat(1, 0, 0, 0); rotation_x = glm::quat(vehicleAngle, 0, 0, 0); rotationCamera = glm::quat(1, 0, 0, 0); break;
|
case 'h': if (freecam == true) { freecam = false; }
|
||||||
|
else { freecam = true; }; break;
|
||||||
|
|
||||||
//delta_x = 0; delta_y = 0; cameraPos = glm::vec3(0, 0, 5); rotation = glm::quat(1, 0, 0, 0); dy = 0; dx = 0; mouseXPositionLast = mouseXPosition; mouseYPositionLast = mouseYPosition;
|
//delta_x = 0; delta_y = 0; cameraPos = glm::vec3(0, 0, 5); rotation = glm::quat(1, 0, 0, 0); dy = 0; dx = 0; mouseXPositionLast = mouseXPosition; mouseYPositionLast = mouseYPosition;
|
||||||
//glutWarpPointer(WIN_WIDTH / 2, WIN_HEIGHT/ 2);
|
//glutWarpPointer(WIN_WIDTH / 2, WIN_HEIGHT/ 2);
|
||||||
@ -232,32 +236,47 @@ void changeVehicleSpeed() {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//glutWarpPointer(WIN_WIDTH / 2, WIN_HEIGHT/ 2);
|
||||||
|
|
||||||
|
float Xrotation = 0;
|
||||||
|
float Yrotation = 0;
|
||||||
|
|
||||||
void mouse(int x, int y)
|
void mouse(int x, int y)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
mouseXPosition = x - WIN_WIDTH / 2;
|
||||||
|
mouseYPosition = y - WIN_HEIGHT / 2;
|
||||||
|
|
||||||
|
Xrotation += mouseXPosition;
|
||||||
|
Yrotation += mouseYPosition;
|
||||||
|
|
||||||
if (mouseXPositionLast >= 0) {
|
if (mouseXPositionLast >= 0) {
|
||||||
delta_x = x - mouseXPositionLast;
|
delta_x = x - mouseXPositionLast;
|
||||||
delta_y = y - mouseYPositionLast;
|
delta_y = y - mouseYPositionLast;
|
||||||
}
|
}
|
||||||
mouseXPositionLast = x;
|
mouseXPositionLast = x;
|
||||||
mouseYPositionLast = y;
|
mouseYPositionLast = y;
|
||||||
|
|
||||||
|
glutWarpPointer(WIN_WIDTH / 2, WIN_HEIGHT / 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool freecam = false;
|
|
||||||
|
|
||||||
glm::mat4 createCameraMatrix()
|
glm::mat4 createCameraMatrix()
|
||||||
{
|
{
|
||||||
//trzymanie freecama do usuni<6E>cia
|
//trzymanie freecama do usuni<6E>cia
|
||||||
freecam = false;
|
freecam = false;
|
||||||
//delta_x = delta_x + vehicleAngle;
|
//delta_x = delta_x + vehicleAngle;
|
||||||
glm::quat rot_x = glm::angleAxis(delta_y, glm::vec3(1, 0, 0));
|
glm::quat rot_x = glm::angleAxis(Yrotation, glm::vec3(1, 0, 0));
|
||||||
glm::quat rot_y = glm::angleAxis(delta_x, glm::vec3(0, 1, 0));
|
glm::quat rot_y = glm::angleAxis(Xrotation, glm::vec3(0, 1, 0));
|
||||||
|
|
||||||
dy += delta_y;
|
dy += delta_y;
|
||||||
dx += delta_x;
|
dx += delta_x;
|
||||||
delta_x = 0;
|
delta_x = 0;
|
||||||
delta_y = 0;
|
delta_y = 0;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
rotation_x = glm::normalize(rot_x * rotation_x);
|
rotation_x = glm::normalize(rot_x * rotation_x);
|
||||||
rotation_y = glm::normalize(rot_y * rotation_y);
|
rotation_y = glm::normalize(rot_y * rotation_y);
|
||||||
|
|
||||||
@ -495,6 +514,8 @@ void checkIfStarIsNearby() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
float coinRotation = 0.0f;
|
||||||
|
|
||||||
void gameManager() {
|
void gameManager() {
|
||||||
|
|
||||||
checkIfStarIsNearby();
|
checkIfStarIsNearby();
|
||||||
@ -502,22 +523,25 @@ void gameManager() {
|
|||||||
if (!starIsPlaced)
|
if (!starIsPlaced)
|
||||||
{
|
{
|
||||||
starLocation.x = (((float)rand() / (float)(RAND_MAX)) * 10) - 6;
|
starLocation.x = (((float)rand() / (float)(RAND_MAX)) * 10) - 6;
|
||||||
starLocation.y = (((float)rand() / (float)(RAND_MAX)) * 10) - 6;
|
starLocation.y = (((float)rand() / (float)(RAND_MAX)) * 10);
|
||||||
starLocation.z = (((float)rand() / (float)(RAND_MAX)) * 10) - 6;
|
starLocation.z = (((float)rand() / (float)(RAND_MAX)) * 10) - 6;
|
||||||
starIsPlaced = true;
|
starIsPlaced = true;
|
||||||
printf("starplaced");
|
printf("starplaced");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
glm::mat4 shipInitialTransformation = glm::translate(glm::vec3(0, -0.2, -0.05));
|
glm::mat4 shipInitialTransformation = glm::translate(glm::vec3(0, 0, 0.0));
|
||||||
glm::vec3 shipScale = glm::vec3(1., 1., 1.);
|
glm::vec3 shipScale = glm::vec3(1., 1., 1.);
|
||||||
shipInitialTransformation = glm::scale(shipInitialTransformation, shipScale);
|
shipInitialTransformation = glm::scale(shipInitialTransformation, shipScale);
|
||||||
|
|
||||||
shipInitialTransformation = shipInitialTransformation * glm::translate(glm::vec3(0, 0, 0)) * glm::scale(glm::vec3(0.1f));
|
shipInitialTransformation = shipInitialTransformation * glm::translate(glm::vec3(0, 0, 0)) * glm::scale(glm::vec3(0.1f));
|
||||||
glm::mat4 shipModelMatrix = glm::translate(starLocation /* + vehicleDir */) * glm::rotate(-vehicleAngle + 30, glm::vec3(0, 1, 0)) * shipInitialTransformation;
|
glm::mat4 shipModelMatrix = glm::translate(starLocation /* + vehicleDir */) * glm::rotate(coinRotation, glm::vec3(0, 1, 0)) * shipInitialTransformation;
|
||||||
|
coinRotation += 0.02;
|
||||||
drawObjectTexture(coinContext, shipModelMatrix, coinTexture);
|
drawObjectTexture(coinContext, shipModelMatrix, coinTexture);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
float fishXTranslation = 0.0f;
|
||||||
|
|
||||||
void drawScene()
|
void drawScene()
|
||||||
{
|
{
|
||||||
glm::mat4 shipInitialTransformation = glm::translate(glm::vec3(0, -0.2, -0.05));
|
glm::mat4 shipInitialTransformation = glm::translate(glm::vec3(0, -0.2, -0.05));
|
||||||
@ -543,7 +567,7 @@ void drawScene()
|
|||||||
for (int i = 0; i < fish1Number; i++)
|
for (int i = 0; i < fish1Number; i++)
|
||||||
{
|
{
|
||||||
float time = glutGet(GLUT_ELAPSED_TIME) / 1000.f;
|
float time = glutGet(GLUT_ELAPSED_TIME) / 1000.f;
|
||||||
glm::mat4 modelMatrix = glm::translate(fishLocation[i]) * glm::rotate(glm::radians(fishRotation1[i]), glm::vec3(0.f, 1.f, 0.f)) * glm::translate(glm::vec3(time, 0, 0));
|
glm::mat4 modelMatrix = glm::translate(fishLocation[i]) * glm::rotate(glm::radians(fishRotation1[i]), glm::vec3(0.f, 1.f, 0.f)) * glm::translate(glm::vec3(fishXTranslation, 0, 0));
|
||||||
// Scaling models
|
// Scaling models
|
||||||
glm::vec3 scale = glm::vec3(0.002, 0.002, 0.002);
|
glm::vec3 scale = glm::vec3(0.002, 0.002, 0.002);
|
||||||
modelMatrix = glm::scale(modelMatrix, scale);
|
modelMatrix = glm::scale(modelMatrix, scale);
|
||||||
@ -554,7 +578,7 @@ void drawScene()
|
|||||||
for (int i = 0; i < fish2Number; i++)
|
for (int i = 0; i < fish2Number; i++)
|
||||||
{
|
{
|
||||||
float time = glutGet(GLUT_ELAPSED_TIME) / 2000.f;
|
float time = glutGet(GLUT_ELAPSED_TIME) / 2000.f;
|
||||||
glm::mat4 modelMatrix = glm::translate(fishLocation2[i]) * glm::rotate(glm::radians(fishRotation2[i]), glm::vec3(0.f, 1.f, 0.f)) * glm::translate(glm::vec3(time, 0, 0)) * glm::rotate(glm::radians(90.f), glm::vec3(0.f, 1.f, 0.f));
|
glm::mat4 modelMatrix = glm::translate(fishLocation2[i]) * glm::rotate(glm::radians(fishRotation2[i]), glm::vec3(0.f, 1.f, 0.f)) * glm::translate(glm::vec3(fishXTranslation, 0, 0)) * glm::rotate(glm::radians(90.f), glm::vec3(0.f, 1.f, 0.f));
|
||||||
// Scaling models
|
// Scaling models
|
||||||
glm::vec3 scale = glm::vec3(0.1, 0.1, 0.1);
|
glm::vec3 scale = glm::vec3(0.1, 0.1, 0.1);
|
||||||
modelMatrix = glm::scale(modelMatrix, scale);
|
modelMatrix = glm::scale(modelMatrix, scale);
|
||||||
@ -562,6 +586,12 @@ void drawScene()
|
|||||||
drawObjectTexture(fish2Context, modelMatrix, textureFish02);
|
drawObjectTexture(fish2Context, modelMatrix, textureFish02);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fishXTranslation += 0.03;
|
||||||
|
|
||||||
|
if (fishXTranslation > 40) {
|
||||||
|
fishXTranslation = -40;
|
||||||
|
}
|
||||||
|
|
||||||
int i = 0;
|
int i = 0;
|
||||||
while (i < amount_of_marine_plants)
|
while (i < amount_of_marine_plants)
|
||||||
{
|
{
|
||||||
@ -681,7 +711,8 @@ void bubbleMovement(int i) {
|
|||||||
|
|
||||||
if (bubbleXdir[i]) {
|
if (bubbleXdir[i]) {
|
||||||
bubbleLocation[i].x += bubbleWobbling;
|
bubbleLocation[i].x += bubbleWobbling;
|
||||||
} else {
|
}
|
||||||
|
else {
|
||||||
bubbleLocation[i].x -= bubbleWobbling;
|
bubbleLocation[i].x -= bubbleWobbling;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -702,7 +733,7 @@ void bubbleMovement(int i) {
|
|||||||
|
|
||||||
void bubbleManager() {
|
void bubbleManager() {
|
||||||
|
|
||||||
for (int i = 0; i < NUMBER_OF_BUBBLES; i++)
|
for (int i = 0; i < bubbleQuantity; i++)
|
||||||
{
|
{
|
||||||
bubbleMovement(i);
|
bubbleMovement(i);
|
||||||
|
|
||||||
@ -812,74 +843,7 @@ void renderScene()
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
/**
|
|
||||||
void renderScene()
|
|
||||||
{
|
|
||||||
// Aktualizacja macierzy widoku i rzutowania
|
|
||||||
cameraMatrix = createCameraMatrix();
|
|
||||||
perspectiveMatrix = Core::createPerspectiveMatrix();
|
|
||||||
|
|
||||||
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
|
|
||||||
glClearColor(0.0f, 0.1f, 0.3f, 1.0f);
|
|
||||||
|
|
||||||
glm::mat4 shipInitialTransformation = glm::translate(glm::vec3(0, 0, 0));
|
|
||||||
// Scaling models
|
|
||||||
glm::vec3 shipScale = glm::vec3(0.01, 0.01, 0.01);
|
|
||||||
shipInitialTransformation = glm::scale(shipInitialTransformation, shipScale);
|
|
||||||
|
|
||||||
shipInitialTransformation = shipInitialTransformation * glm::translate(glm::vec3(0, 0, 0)) * glm::rotate(glm::radians(180.0f), glm::vec3(0, 1, 0)) * glm::scale(glm::vec3(0.5f));
|
|
||||||
glm::mat4 shipModelMatrix = glm::translate(vehiclePos + vehicleDir) * glm::rotate(-vehicleAngle, glm::vec3(0, 1, 0)) * shipInitialTransformation;
|
|
||||||
drawObjectColor(shipContext, shipModelMatrix, glm::vec3(0.6f));
|
|
||||||
|
|
||||||
|
|
||||||
glm::mat4 modelMatrix = glm::translate(glm::vec3(0, 0, 0));
|
|
||||||
// Scaling models
|
|
||||||
glm::vec3 scale = glm::vec3(0.001, 0.001, 0.001);
|
|
||||||
modelMatrix = glm::scale(modelMatrix, scale);
|
|
||||||
|
|
||||||
drawObjectTexture(fishContext, modelMatrix, textureFish01);
|
|
||||||
|
|
||||||
for (int i = 0; i < 10; i++)
|
|
||||||
{
|
|
||||||
|
|
||||||
glm::mat4 modelMatrix = glm::translate(planetLocation[i]);
|
|
||||||
// Scaling models
|
|
||||||
glm::vec3 scale = glm::vec3(0.001, 0.001, 0.001);
|
|
||||||
modelMatrix = glm::scale(modelMatrix, scale);
|
|
||||||
|
|
||||||
drawObjectTexture(fishContext, modelMatrix, textureFish01);
|
|
||||||
}
|
|
||||||
|
|
||||||
drawPlaneTexture(planeContext, glm::rotate(glm::radians(90.f), glm::vec3(0.f, 0.f, 1.f)), groundTexture);
|
|
||||||
|
|
||||||
glUseProgram(skyboxTexture);
|
|
||||||
glUniform1i(glGetUniformLocation(skyboxTexture, "skybox"), 0);
|
|
||||||
glm::mat4 transformation = perspectiveMatrix * glm::mat4(glm::mat3(cameraMatrix));
|
|
||||||
glUniformMatrix4fv(glGetUniformLocation(skyboxTexture, "projectionView"), 1, GL_FALSE, (float*)&transformation);
|
|
||||||
//Przypisanie VAO i rysowanie skyboxa
|
|
||||||
glBindVertexArray(skyboxVAO);
|
|
||||||
glActiveTexture(GL_TEXTURE0);
|
|
||||||
glBindTexture(GL_TEXTURE_CUBE_MAP, cubemapTexture);
|
|
||||||
glDrawArrays(GL_TRIANGLES, 0, 36);
|
|
||||||
glBindVertexArray(0);
|
|
||||||
|
|
||||||
//Pr<50>ba mg<6D>y
|
|
||||||
glClearColor(0.5f, 0.5f, 0.5f, 1.0f); // We'll Clear To The Color Of The Fog ( Modified )
|
|
||||||
float color[] = { 0.5f, 0.5f, 0.5f, 1.0f };
|
|
||||||
glFogi(GL_FOG_MODE, GL_EXP2); // Fog Mode
|
|
||||||
glFogfv(GL_FOG_COLOR, color); // Set Fog Color
|
|
||||||
glFogf(GL_FOG_DENSITY, 0.35f); // How Dense Will The Fog Be
|
|
||||||
glHint(GL_FOG_HINT, GL_DONT_CARE); // Fog Hint Value
|
|
||||||
glFogf(GL_FOG_START, 1.0f); // Fog Start Depth
|
|
||||||
glFogf(GL_FOG_END, 5.0f); // Fog End Depth
|
|
||||||
glEnable(GL_FOG);
|
|
||||||
|
|
||||||
glDepthFunc(GL_LESS);
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
glutSwapBuffers();
|
|
||||||
}**/
|
|
||||||
|
|
||||||
void loadModelToContext(std::string path, Core::RenderContext& context)
|
void loadModelToContext(std::string path, Core::RenderContext& context)
|
||||||
{
|
{
|
||||||
@ -906,13 +870,13 @@ void init()
|
|||||||
|
|
||||||
for (int i = 0; i < amount_of_marine_plants; i++)
|
for (int i = 0; i < amount_of_marine_plants; i++)
|
||||||
{
|
{
|
||||||
marinePlantsLocation[i] = glm::ballRand(35.0);
|
marinePlantsLocation[i] = glm::ballRand(20.0);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (int i = 0; i < NUMBER_OF_BUBBLES; i++)
|
for (int i = 0; i < bubbleQuantity; i++)
|
||||||
{
|
{
|
||||||
// srand(time(NULL));
|
// srand(time(NULL));
|
||||||
float MAX_NUM = 100.0;
|
float MAX_NUM = 20.0;
|
||||||
|
|
||||||
bubbleLocation[i].x = (((float)rand() / (float)(RAND_MAX)) * MAX_NUM) - MAX_NUM / 2;
|
bubbleLocation[i].x = (((float)rand() / (float)(RAND_MAX)) * MAX_NUM) - MAX_NUM / 2;
|
||||||
bubbleLocation[i].y = (((float)rand() / (float)(RAND_MAX)) * 10) - 5;
|
bubbleLocation[i].y = (((float)rand() / (float)(RAND_MAX)) * 10) - 5;
|
||||||
@ -975,11 +939,11 @@ void init()
|
|||||||
|
|
||||||
for (int i = 0; i < fish1Number; i++)
|
for (int i = 0; i < fish1Number; i++)
|
||||||
{
|
{
|
||||||
fishLocation[i] = glm::ballRand(59.0);
|
fishLocation[i] = glm::ballRand(20.0);
|
||||||
}
|
}
|
||||||
for (int i = 0; i < fish2Number; i++)
|
for (int i = 0; i < fish2Number; i++)
|
||||||
{
|
{
|
||||||
fishLocation2[i] = glm::ballRand(59.0);
|
fishLocation2[i] = glm::ballRand(20.0);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (int i = 0; i < fish1Number; i++) {
|
for (int i = 0; i < fish1Number; i++) {
|
||||||
|
Loading…
Reference in New Issue
Block a user