improve particle position, add readme.md
This commit is contained in:
parent
ba05c16fea
commit
c020151e3a
36
cw_8/README.md
Normal file
36
cw_8/README.md
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
## Projekt GRK 2023Z
|
||||||
|
Szymon Szczubkowski, Agnieszka Wyrosławska
|
||||||
|
|
||||||
|
## Zaimplementowane technologie
|
||||||
|
|
||||||
|
### Physically based rendering
|
||||||
|
W projekcie zaimplementowane jest oświetlenie PBR. Wspiera ono albedo, roughness, metallic, ambient occlusion oraz **normal** mapy.
|
||||||
|
|
||||||
|
### Normal mapping
|
||||||
|
Razem z PBR zaimplementowane zostało wsparcie dla normal maps.
|
||||||
|
|
||||||
|
|
||||||
|
![picture](https://i.imgur.com/VJP72bY.png)
|
||||||
|
|
||||||
|
### Skybox cubemap
|
||||||
|
W tle widoczny jest skybox kosmosu.
|
||||||
|
|
||||||
|
![picture](https://i.imgur.com/1X3LDC5.png)
|
||||||
|
|
||||||
|
|
||||||
|
### Billboarding
|
||||||
|
Na potrzeby wyświetlania cząsteczek ognia zaimplementowany został billboarding.
|
||||||
|
|
||||||
|
![picture](https://i.gyazo.com/d00aba38d49f6179861f68ec464b4753.gif)
|
||||||
|
|
||||||
|
### Gamepad mapping
|
||||||
|
Jeśli wykryty zostanie gamepad, sterowanie zostanie na niego przełączone.
|
||||||
|
Sprawdzany jest stopień popchnięcia gałki oraz wciśnięcia spustu, prędkość statku skaluje się z nimi.
|
||||||
|
Sterowanie wygląda następująco:
|
||||||
|
|
||||||
|
FUNKCJA | PRZYCISK
|
||||||
|
--- | ---
|
||||||
|
LOT W PRZÓD | PRAWY TRIGGER
|
||||||
|
LOT W TYŁ | LEWY TRIGGER
|
||||||
|
OBRÓT LEWO-PRAWO | LEWA GAŁKA
|
||||||
|
NACHYLENIE GÓRA-DÓŁ | PRAWA GAŁKA
|
@ -40,13 +40,13 @@ void ParticleGenerator::Draw(glm::mat4 modelMatrix, GLuint programParticle, GLui
|
|||||||
void ParticleGenerator::init() {
|
void ParticleGenerator::init() {
|
||||||
unsigned int VBO;
|
unsigned int VBO;
|
||||||
float particle_quad[] = {
|
float particle_quad[] = {
|
||||||
0.0f, 1.0f, 0.0f, 0.0f, 1.0f,
|
-0.5f, 1.0f, 0.0f, 0.0f, 1.0f,
|
||||||
1.0f, 0.0f, 0.0f, 1.0f, 0.0f,
|
0.5f, 0.0f, 0.0f, 1.0f, 0.0f,
|
||||||
0.0f, 0.0f, 0.0f, 0.0f, 0.0f,
|
-0.5f, 0.0f, 0.0f, 0.0f, 0.0f,
|
||||||
|
|
||||||
0.0f, 1.0f, 0.0f, 0.0f, 1.0f,
|
-0.5f, 1.0f, 0.0f, 0.0f, 1.0f,
|
||||||
1.0f, 1.0f, 0.0f, 1.0f, 1.0f,
|
0.5f, 1.0f, 0.0f, 1.0f, 1.0f,
|
||||||
1.0f, 0.0f, 0.0f, 1.0f, 0.0f
|
0.5f, 0.0f, 0.0f, 1.0f, 0.0f
|
||||||
};
|
};
|
||||||
glGenVertexArrays(1, &this->VAO);
|
glGenVertexArrays(1, &this->VAO);
|
||||||
glGenBuffers(1, &VBO);
|
glGenBuffers(1, &VBO);
|
||||||
|
@ -407,7 +407,8 @@ void renderScene(GLFWwindow* window) {
|
|||||||
drawObjectPBR(planetContext, glm::eulerAngleY(time / 3) * glm::translate(glm::vec3(0, 0, -3.f)) * glm::eulerAngleY(-1.5f * time) * glm::scale(glm::vec3(0.1f)), texture::earth_albedo, texture::earth_normal, texture::earth_ao, texture::earth_roughness, texture::earth_metallic);
|
drawObjectPBR(planetContext, glm::eulerAngleY(time / 3) * glm::translate(glm::vec3(0, 0, -3.f)) * glm::eulerAngleY(-1.5f * time) * glm::scale(glm::vec3(0.1f)), texture::earth_albedo, texture::earth_normal, texture::earth_ao, texture::earth_roughness, texture::earth_metallic);
|
||||||
drawObjectPBR(planetContext, glm::eulerAngleY(time / 3) * glm::translate(glm::vec3(0, 0, -3.f)) * glm::eulerAngleY( 2.f * time) * glm::translate(glm::vec3(0.4f, 0, 0.4f)) * glm::eulerAngleY(-0.5f * time) * glm::scale(glm::vec3(0.04f)), texture::moon_albedo, texture::moon_normal, texture::moon_ao, texture::moon_roughness, texture::moon_metallic);
|
drawObjectPBR(planetContext, glm::eulerAngleY(time / 3) * glm::translate(glm::vec3(0, 0, -3.f)) * glm::eulerAngleY( 2.f * time) * glm::translate(glm::vec3(0.4f, 0, 0.4f)) * glm::eulerAngleY(-0.5f * time) * glm::scale(glm::vec3(0.04f)), texture::moon_albedo, texture::moon_normal, texture::moon_ao, texture::moon_roughness, texture::moon_metallic);
|
||||||
|
|
||||||
mainEngine->Draw(createPerspectiveMatrix() * createCameraMatrix() * glm::translate(glm::vec3(0.f, -0.22f, -0.05f)) * glm::translate(cameraPos + 0.2 * cameraDir + glm::vec3(0, 1, 0) * 0.05f), programParticle, texture::particle_fire, cameraDir);
|
mainEngine->Draw(createPerspectiveMatrix() * createCameraMatrix() * glm::translate(glm::vec3(0.f, -0.22f, 0.0f)) * glm::translate(cameraPos + 0.2 * cameraDir + glm::vec3(0, 1, 0) * 0.05f), programParticle, texture::particle_fire, cameraDir);
|
||||||
|
std::cout << glm::to_string(spaceshipPos) << std::endl;
|
||||||
//desired objects end here
|
//desired objects end here
|
||||||
glUseProgram(0);
|
glUseProgram(0);
|
||||||
glfwSwapBuffers(window);
|
glfwSwapBuffers(window);
|
||||||
|
Loading…
Reference in New Issue
Block a user