|
|
|
@ -77,7 +77,7 @@ class Cubemap {
@@ -77,7 +77,7 @@ class Cubemap {
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_MAG_FILTER, GL_NEAREST_MIPMAP_LINEAR); |
|
|
|
|
glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_MAG_FILTER, GL_LINEAR); |
|
|
|
|
glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_MIN_FILTER, GL_LINEAR); |
|
|
|
|
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); |
|
|
|
@ -132,7 +132,7 @@ class SDLGLGLWindow {
@@ -132,7 +132,7 @@ class SDLGLGLWindow {
|
|
|
|
|
unsigned int texture[2]; |
|
|
|
|
unsigned int cubemap; |
|
|
|
|
|
|
|
|
|
glm::vec3 *translations = new glm::vec3[100000]; |
|
|
|
|
glm::vec3 *translations = new glm::vec3[1000]; |
|
|
|
|
|
|
|
|
|
glm::vec3 cubePositions[10] = { |
|
|
|
|
glm::vec3( 0.0f, 0.0f, 0.0f),
|
|
|
|
@ -351,7 +351,7 @@ class SDLGLGLWindow {
@@ -351,7 +351,7 @@ class SDLGLGLWindow {
|
|
|
|
|
std::default_random_engine generator; |
|
|
|
|
std::uniform_real_distribution<float> distribution(-50,50); |
|
|
|
|
|
|
|
|
|
for (int i = 0; i < 100000; i ++) { |
|
|
|
|
for (int i = 0; i < 1000; i ++) { |
|
|
|
|
float x = distribution(generator) ; |
|
|
|
|
float y = distribution(generator) ; |
|
|
|
|
float z = distribution(generator) ; |
|
|
|
@ -382,13 +382,13 @@ class SDLGLGLWindow {
@@ -382,13 +382,13 @@ class SDLGLGLWindow {
|
|
|
|
|
if (data) {
|
|
|
|
|
glBindTexture(GL_TEXTURE_2D, texture[0]); |
|
|
|
|
glCheckError(); |
|
|
|
|
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, width, height, 0, GL_RGB, GL_UNSIGNED_BYTE, data); |
|
|
|
|
glTexImage2D(GL_TEXTURE_2D, 0, GL_SRGB, width, height, 0, GL_RGB, GL_UNSIGNED_BYTE, data); |
|
|
|
|
|
|
|
|
|
glGenerateMipmap(GL_TEXTURE_2D); |
|
|
|
|
glCheckError(); |
|
|
|
|
stbi_image_free(data); |
|
|
|
|
|
|
|
|
|
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); |
|
|
|
|
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR); |
|
|
|
|
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); |
|
|
|
|
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); |
|
|
|
|
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); |
|
|
|
@ -620,8 +620,8 @@ class SDLGLGLWindow {
@@ -620,8 +620,8 @@ class SDLGLGLWindow {
|
|
|
|
|
shader->setVec3("lights[0].direction", glm::vec3(0,-1,0)); |
|
|
|
|
shader->setVec3("lights[0].position", camera_pos); |
|
|
|
|
|
|
|
|
|
shader->setVec3("lights[0].ambient", glm::vec3(0.3)); |
|
|
|
|
shader->setVec3("lights[0].diffuse", glm::vec3(0.8,0.7,1.0)); |
|
|
|
|
shader->setVec3("lights[0].ambient", glm::vec3(0.1)); |
|
|
|
|
shader->setVec3("lights[0].diffuse", glm::vec3(0.8,0.7,1.0) * glm::vec3(0.5)); |
|
|
|
|
shader->setVec3("lights[0].specular", glm::vec3(1.0)); |
|
|
|
|
shader->setBool("lights[0].attenuate", false); |
|
|
|
|
// shader->setVec3("lights[0].attenuation", glm::vec3(1.0, 0.09, 0.032));
|
|
|
|
@ -629,8 +629,8 @@ class SDLGLGLWindow {
@@ -629,8 +629,8 @@ class SDLGLGLWindow {
|
|
|
|
|
shader->setInt("lights[1].type", 1); |
|
|
|
|
shader->setVec3("lights[1].position", lightPositions[0]); |
|
|
|
|
|
|
|
|
|
shader->setVec3("lights[1].ambient", glm::vec3(0.3)); |
|
|
|
|
shader->setVec3("lights[1].diffuse", glm::vec3(0.9, 0.7, 0.7)); |
|
|
|
|
shader->setVec3("lights[1].ambient", glm::vec3(0.1)); |
|
|
|
|
shader->setVec3("lights[1].diffuse", glm::vec3(0.6, 0.4, 0.4)); |
|
|
|
|
shader->setVec3("lights[1].specular", glm::vec3(1.0)); |
|
|
|
|
shader->setBool("lights[1].attenuate", false); |
|
|
|
|
shader->setVec3("lights[1].attenuation", glm::vec3(1.0, 0.09, 0.032)); |
|
|
|
@ -647,7 +647,7 @@ class SDLGLGLWindow {
@@ -647,7 +647,7 @@ class SDLGLGLWindow {
|
|
|
|
|
glUniform3f(glGetUniformLocation(shader->program, "cameraPosition"), camera_pos.x, camera_pos.y, camera_pos.z); |
|
|
|
|
shader->setVec3("material.specular", glm::vec3(0.7)); |
|
|
|
|
shader->setVec3("material.diffuse", glm::vec3(1.0, 0.7, 0.8)); |
|
|
|
|
shader->setVec3("material.ambient", glm::vec3(0.4)); |
|
|
|
|
shader->setVec3("material.ambient", glm::vec3(0.2)); |
|
|
|
|
shader->setFloat("material.shininess", 32); |
|
|
|
|
glCheckError(); |
|
|
|
|
|
|
|
|
@ -708,6 +708,7 @@ class SDLGLGLWindow {
@@ -708,6 +708,7 @@ class SDLGLGLWindow {
|
|
|
|
|
glCheckError(); |
|
|
|
|
|
|
|
|
|
glBindTexture(GL_TEXTURE_CUBE_MAP, cubemap); |
|
|
|
|
|
|
|
|
|
bp_model->draw(*shader); |
|
|
|
|
glCheckError(); |
|
|
|
|
|
|
|
|
@ -716,7 +717,7 @@ class SDLGLGLWindow {
@@ -716,7 +717,7 @@ class SDLGLGLWindow {
|
|
|
|
|
glBindVertexArray(gVAO); |
|
|
|
|
glBindTexture(GL_TEXTURE_2D, texture[0]); |
|
|
|
|
glCheckError(); |
|
|
|
|
glDrawArraysInstanced(GL_TRIANGLES, 0,36,100000); |
|
|
|
|
glDrawArraysInstanced(GL_TRIANGLES, 0,36,1000); |
|
|
|
|
glCheckError(); |
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|