Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- m_shader->BegingShader();
- GLuint vao;
- glGenVertexArrays(1, &vao);
- GLuint vbo;
- glGenBuffers(1, &vbo);
- glBindBuffer(GL_ARRAY_BUFFER, vbo);
- glBufferData(GL_ARRAY_BUFFER, sizeof(float) * 18 * 600, NULL, GL_DYNAMIC_DRAW);
- int index = 0;
- // front
- for (int y = -5; y < 5; y++)
- {
- // Loop it 10 times! ^ v
- for (int x = -5; x < 5; x++)
- {
- float vertices[] = {
- x + 0.0f, y + 0.0f, -5.0f,
- x + 1.0f, y + 0.0f, -5.0f,
- x + 1.0f, y + 1.0f, -5.0f,
- x + 0.0f, y + 0.0f, -5.0f,
- x + 1.0f, y + 1.0f, -5.0f,
- x + 0.0f, y + 1.0f, -5.0f,
- };
- for (int i = 0; i < 6; i++)
- Spherify(vertices[i * 3], vertices[i * 3 + 1], vertices[i * 3 + 2], 5.0);
- glBufferSubData(GL_ARRAY_BUFFER, (index++ * 18) * sizeof(float), sizeof(float) * 18, vertices);
- }
- }
- index = 0;
- // left
- for (int y = -5; y < 5; y++)
- {
- for (int z = -5; z < 5; z++)
- {
- float vertices[] = {
- -5.0f, y + 0.0f, z + 0.0f,
- -5.0f, y + 1.0f, z + 0.0f,
- -5.0f, y + 1.0f, z + 1.0f,
- -5.0f, y + 0.0f, z + 0.0f,
- -5.0f, y + 1.0f, z + 1.0f,
- -5.0f, y + 0.0f, z + 1.0f,
- };
- for (int i = 0; i < 6; i++)
- Spherify(vertices[i * 3], vertices[i * 3 + 1], vertices[i * 3 + 2], 5.0);
- glBufferSubData(GL_ARRAY_BUFFER, (index++ * 18 + 18 * 100) * sizeof(float), sizeof(float) * 18, vertices);
- }
- }
- index = 0;
- // back
- for (int y = -5; y < 5; y++)
- {
- for (int x = -5; x < 5; x++)
- {
- float vertices[] = {
- x + 0.0f, y + 0.0f, 5.0f,
- x + 1.0f, y + 0.0f, 5.0f,
- x + 1.0f, y + 1.0f, 5.0f,
- x + 0.0f, y + 0.0f, 5.0f,
- x + 1.0f, y + 1.0f, 5.0f,
- x + 0.0f, y + 1.0f, 5.0f,
- };
- for (int i = 0; i < 6; i++)
- Spherify(vertices[i * 3], vertices[i * 3 + 1], vertices[i * 3 + 2], 5.0);
- glBufferSubData(GL_ARRAY_BUFFER, (index++ * 18 + 18 * 200) * sizeof(float), sizeof(float) * 18, vertices);
- }
- }
- index = 0;
- //top
- for (int x = -5; x < 5; x++)
- {
- for (int z = -5; z < 5; z++)
- {
- float vertices[] = {
- x + 0.0f, -5.0f, z + 0.0f,
- x + 1.0f, -5.0f, z + 0.0f,
- x + 1.0f, -5.0f, z + 1.0f,
- x + 0.0f, -5.0f, z + 0.0f,
- x + 1.0f, -5.0f, z + 1.0f,
- x + 0.0f, -5.0f, z + 1.0f,
- };
- for (int i = 0; i < 6; i++)
- Spherify(vertices[i * 3], vertices[i * 3 + 1], vertices[i * 3 + 2], 5.0);
- glBufferSubData(GL_ARRAY_BUFFER, (index++ * 18 + 18 * 300) * sizeof(float), sizeof(float) * 18, vertices);
- }
- }
- index = 0;
- //bottom
- for (int x = -5; x < 5; x++)
- {
- for (int z = -5; z < 5; z++)
- {
- float vertices[] = {
- x + 0.0f, 5.0f, z + 0.0f,
- x + 1.0f, 5.0f, z + 0.0f,
- x + 1.0f, 5.0f, z + 1.0f,
- x + 0.0f, 5.0f, z + 0.0f,
- x + 1.0f, 5.0f, z + 1.0f,
- x + 0.0f, 5.0f, z + 1.0f,
- };
- for (int i = 0; i < 6; i++)
- Spherify(vertices[i * 3], vertices[i * 3 + 1], vertices[i * 3 + 2], 5.0);
- glBufferSubData(GL_ARRAY_BUFFER, (index++ * 18 + 18 * 400) * sizeof(float), sizeof(float) * 18, vertices);
- }
- }
- index = 0;
- // left
- for (int y = -5; y < 5; y++)
- {
- for (int z = -5; z < 5; z++)
- {
- float vertices[] = {
- 5.0f, y + 0.0f, z + 0.0f,
- 5.0f, y + 1.0f, z + 0.0f,
- 5.0f, y + 1.0f, z + 1.0f,
- 5.0f, y + 0.0f, z + 0.0f,
- 5.0f, y + 1.0f, z + 1.0f,
- 5.0f, y + 0.0f, z + 1.0f,
- };
- for (int i = 0; i < 6; i++)
- Spherify(vertices[i * 3], vertices[i * 3 + 1], vertices[i * 3 + 2], 5.0);
- glBufferSubData(GL_ARRAY_BUFFER, (index++ * 18 + 18 * 500) * sizeof(float), sizeof(float) * 18, vertices);
- }
- }
- glBindVertexArray(vao);
- glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 0, (GLubyte*)NULL);
- glEnableVertexAttribArray(0);
- float x = sin(time);
- float y = cos(time);
- glm::mat4 model = glm::mat4(1.0f);
- model = glm::scale(model, glm::vec3(planetSize, planetSize, planetSize));
- // Rotation speed has to be atleast 1.0f for the planet to rotate
- if (rotationSpeed >= 1.0f)
- model = glm::rotate(model, (float)time * rotationSpeed, glm::vec3(5.0, 0.0, 0.0));
- glm::mat4 mv = camera.view() * model;
- m_shader->SetShaderMatrix4fv("camera", camera.matrix(), 0);
- m_shader->SetShaderMatrix4fv("model", model, 0);
- glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
- glDrawArrays(GL_TRIANGLES, 0, 600 * 6);
- glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
- glDeleteBuffers(1, &vbo);
- glDeleteVertexArrays(1, &vao);
- m_shader->EndShader();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement