fixed backface culling (mesh rotation)

This commit is contained in:
Sandro Sobczyński
2020-11-04 22:02:09 +01:00
parent d2013d4467
commit efe34c677d
2 changed files with 6 additions and 3 deletions
+4 -1
View File
@@ -218,6 +218,9 @@ void Renderer::draw(Mesh &t_mesh, LightBulb *t_bulbs, u16 t_bulbsCount)
if (!t_mesh.isDataLoaded()) if (!t_mesh.isDataLoaded())
PRINT_ERR("Can't draw, because no mesh data was loaded!"); PRINT_ERR("Can't draw, because no mesh data was loaded!");
Vector3 rotatedCamera = Vector3(*renderData.cameraPosition);
rotatedCamera.rotate(t_mesh.rotation, true);
if (t_mesh.getCurrentAnimationFrame() != t_mesh.getNextAnimationFrame()) if (t_mesh.getCurrentAnimationFrame() != t_mesh.getNextAnimationFrame())
t_mesh.animate(); t_mesh.animate();
for (u32 i = 0; i < t_mesh.getMaterialsCount(); i++) for (u32 i = 0; i < t_mesh.getMaterialsCount(); i++)
@@ -229,7 +232,7 @@ void Renderer::draw(Mesh &t_mesh, LightBulb *t_bulbs, u16 t_bulbsCount)
VECTOR *normals = new VECTOR[vertCount]; VECTOR *normals = new VECTOR[vertCount];
VECTOR *coordinates = new VECTOR[vertCount]; VECTOR *coordinates = new VECTOR[vertCount];
changeTexture(t_mesh, t_mesh.getMaterial(i).getId()); changeTexture(t_mesh, t_mesh.getMaterial(i).getId());
vertCount = t_mesh.getDrawData(i, vertices, normals, coordinates, *renderData.cameraPosition); vertCount = t_mesh.getDrawData(i, vertices, normals, coordinates, rotatedCamera);
vifSender->drawMesh(&renderData, perspective, vertCount, vertices, normals, coordinates, t_mesh, t_bulbs, t_bulbsCount, &textureBuffer); vifSender->drawMesh(&renderData, perspective, vertCount, vertices, normals, coordinates, t_mesh, t_bulbs, t_bulbsCount, &textureBuffer);
delete[] vertices; delete[] vertices;
delete[] normals; delete[] normals;
+2 -2
View File
@@ -33,8 +33,7 @@ Ari::~Ari() {}
void Ari::onInit() void Ari::onInit()
{ {
engine->renderer->setCameraDefinitions(&camera.worldView, &camera.unitCirclePosition, camera.planes); engine->renderer->setCameraDefinitions(&camera.worldView, &camera.position, camera.planes);
engine->renderer->disableVSync();
engine->audio.init(0); engine->audio.init(0);
engine->audio.setVolume(40); engine->audio.setVolume(40);
engine->audio.loadSong("MOV-CIRC.WAV"); engine->audio.loadSong("MOV-CIRC.WAV");
@@ -49,6 +48,7 @@ void Ari::onInit()
island.shouldBeFrustumCulled = false; island.shouldBeFrustumCulled = false;
islandAddons.loadDff("sunnyisl/", "sunnyisl3", 0.1F, false); islandAddons.loadDff("sunnyisl/", "sunnyisl3", 0.1F, false);
islandAddons.shouldBeBackfaceCulled = true;
islandAddons.rotation.x = -1.6F; islandAddons.rotation.x = -1.6F;
islandAddons.position.set(0.0F, 10.0F, 20.0F); islandAddons.position.set(0.0F, 10.0F, 20.0F);