Adjustin'

This commit is contained in:
maelstrom 2024-11-17 13:11:53 +01:00
parent 9162b9327e
commit d10606dca5
4 changed files with 16 additions and 13 deletions

View file

@ -18,7 +18,7 @@ public:
float pitch = 0., yaw = -90., roll = 0.; float pitch = 0., yaw = -90., roll = 0.;
float movementSpeed = 5.0f; float movementSpeed = 10.0f;
float mouseSensitivity = 0.2f; float mouseSensitivity = 0.2f;
Camera(glm::vec3 initialPosition); Camera(glm::vec3 initialPosition);

View file

@ -45,9 +45,9 @@ int main() {
parts.push_back(Part { parts.push_back(Part {
.position = glm::vec3(0, -5, 0), .position = glm::vec3(0, -5, 0),
.rotation = glm::vec3(0), .rotation = glm::vec3(0),
.scale = glm::vec3(5, 1, 5), .scale = glm::vec3(512, 1.2, 512),
.material = Material { .material = Material {
.diffuse = glm::vec3(1.0f, 0.5f, 0.31f), .diffuse = glm::vec3(0.388235, 0.372549, 0.384314),
.specular = glm::vec3(0.5f, 0.5f, 0.5f), .specular = glm::vec3(0.5f, 0.5f, 0.5f),
.shininess = 32.0f, .shininess = 32.0f,
}, },
@ -58,9 +58,9 @@ int main() {
parts.push_back(Part { parts.push_back(Part {
.position = glm::vec3(0), .position = glm::vec3(0),
.rotation = glm::vec3(0), .rotation = glm::vec3(0),
.scale = glm::vec3(1, 1, 1), .scale = glm::vec3(4, 1.2, 2),
.material = Material { .material = Material {
.diffuse = glm::vec3(1.0f, 0.5f, 0.31f), .diffuse = glm::vec3(0.639216f, 0.635294f, 0.647059f),
.specular = glm::vec3(0.5f, 0.5f, 0.5f), .specular = glm::vec3(0.5f, 0.5f, 0.5f),
.shininess = 32.0f, .shininess = 32.0f,
} }

View file

@ -30,6 +30,7 @@ void simulationInit() {
rp::Quaternion orientation = rp::Quaternion::identity(); rp::Quaternion orientation = rp::Quaternion::identity();
rp::Transform transform(position, orientation); rp::Transform transform(position, orientation);
rp::RigidBody* body = world->createRigidBody(transform); rp::RigidBody* body = world->createRigidBody(transform);
world->setGravity(rp::Vector3(0, -196.2, 0));
} }
void syncPartPhysics(Part& part) { void syncPartPhysics(Part& part) {
@ -48,6 +49,7 @@ void syncPartPhysics(Part& part) {
part.rigidBody->removeCollider(part.rigidBody->getCollider(0)); part.rigidBody->removeCollider(part.rigidBody->getCollider(0));
} }
if (part.rigidBody->getNbColliders() == 0)
part.rigidBody->addCollider(shape, rp::Transform()); part.rigidBody->addCollider(shape, rp::Transform());
part.rigidBody->setType(part.anchored ? rp::BodyType::STATIC : rp::BodyType::DYNAMIC); part.rigidBody->setType(part.anchored ? rp::BodyType::STATIC : rp::BodyType::DYNAMIC);
} }

View file

@ -51,20 +51,20 @@ void renderParts() {
// Use shader // Use shader
shader->use(); shader->use();
shader->set("objectColor", glm::vec3(1.0f, 0.5f, 0.31f)); // shader->set("objectColor", glm::vec3(1.0f, 0.5f, 0.31f));
shader->set("lightColor", glm::vec3(1.0f, 1.0f, 1.0f)); // shader->set("lightColor", glm::vec3(1.0f, 1.0f, 1.0f));
// view/projection transformations // view/projection transformations
glm::mat4 projection = glm::perspective(glm::radians(45.f), (float)1200 / (float)900, 0.1f, 100.0f); glm::mat4 projection = glm::perspective(glm::radians(45.f), (float)1200 / (float)900, 0.1f, 100.0f);
glm::mat4 view = camera.getLookAt(); glm::mat4 view = camera.getLookAt();
shader->set("projection", projection); shader->set("projection", projection);
shader->set("view", view); shader->set("view", view);
shader->set("material", Material { // shader->set("material", Material {
// .ambient = glm::vec3(1.0f, 0.5f, 0.31f), // // .ambient = glm::vec3(1.0f, 0.5f, 0.31f),
.diffuse = glm::vec3(1.0f, 0.5f, 0.31f), // .diffuse = glm::vec3(0.639216f, 0.635294f, 0.647059f),
.specular = glm::vec3(0.5f, 0.5f, 0.5f), // .specular = glm::vec3(0.5f, 0.5f, 0.5f),
.shininess = 32.0f, // .shininess = 16.0f,
}); // });
shader->set("sunLight", DirLight { shader->set("sunLight", DirLight {
.direction = glm::vec3(-0.2f, -1.0f, -0.3f), .direction = glm::vec3(-0.2f, -1.0f, -0.3f),
.ambient = glm::vec3(0.2f, 0.2f, 0.2f), .ambient = glm::vec3(0.2f, 0.2f, 0.2f),
@ -93,6 +93,7 @@ void renderParts() {
model = model * glm::mat4_cast(part.rotation); model = model * glm::mat4_cast(part.rotation);
model = glm::scale(model, part.scale); model = glm::scale(model, part.scale);
shader->set("model", model); shader->set("model", model);
shader->set("material", part.material);
glm::mat3 normalMatrix = glm::mat3(glm::transpose(glm::inverse(model))); glm::mat3 normalMatrix = glm::mat3(glm::transpose(glm::inverse(model)));
shader->set("normalMatrix", normalMatrix); shader->set("normalMatrix", normalMatrix);