diff --git a/src/scene/portal.c b/src/scene/portal.c index 00046c5..41a1a3d 100644 --- a/src/scene/portal.c +++ b/src/scene/portal.c @@ -31,13 +31,13 @@ struct ColliderTypeData gPortalColliderType = { struct Vector3 gPortalOutline[PORTAL_LOOP_SIZE] = { {0.0f, 1.0f * SCENE_SCALE * PORTAL_COVER_HEIGHT_RADIUS, 0}, - {SCENE_SCALE * PORTAL_COVER_WIDTH_RADIUS, SCENE_SCALE * PORTAL_COVER_HEIGHT_RADIUS, 0}, - {0.5f * SCENE_SCALE * PORTAL_COVER_WIDTH_RADIUS, 0.0f, 0}, - {SCENE_SCALE * PORTAL_COVER_WIDTH_RADIUS, -1.0f * SCENE_SCALE * PORTAL_COVER_HEIGHT_RADIUS, 0}, + {0.707107f * SCENE_SCALE * PORTAL_COVER_WIDTH_RADIUS, SCENE_SCALE * PORTAL_COVER_HEIGHT_RADIUS, 0}, + {1.0f * SCENE_SCALE * PORTAL_COVER_WIDTH_RADIUS, 0.0f, 0}, + {0.707107f * SCENE_SCALE * PORTAL_COVER_WIDTH_RADIUS, -1.0f * SCENE_SCALE * PORTAL_COVER_HEIGHT_RADIUS, 0}, {0.0f, -1.0f * SCENE_SCALE * PORTAL_COVER_HEIGHT_RADIUS, 0}, - {-1.0f * SCENE_SCALE * PORTAL_COVER_WIDTH_RADIUS, -1.0f * SCENE_SCALE * PORTAL_COVER_HEIGHT_RADIUS, 0}, - {-0.5f * SCENE_SCALE * PORTAL_COVER_WIDTH_RADIUS, 0.0f, 0}, - {-1.0f * SCENE_SCALE * PORTAL_COVER_WIDTH_RADIUS, SCENE_SCALE * PORTAL_COVER_HEIGHT_RADIUS, 0}, + {-0.707107f * SCENE_SCALE * PORTAL_COVER_WIDTH_RADIUS, -1.0f * SCENE_SCALE * PORTAL_COVER_HEIGHT_RADIUS, 0}, + {-1.0f * SCENE_SCALE * PORTAL_COVER_WIDTH_RADIUS, 0.0f, 0}, + {-0.707107f * SCENE_SCALE * PORTAL_COVER_WIDTH_RADIUS, SCENE_SCALE * PORTAL_COVER_HEIGHT_RADIUS, 0}, }; #define PORTAL_CLIPPING_PLANE_BIAS (SCENE_SCALE * 0.25f) @@ -86,12 +86,12 @@ void portalCalculateBB(struct Transform* portalTransform, struct Box3D* bb) { bb->min = bb->max = portalTransform->position; struct Vector3 nextDir; - vector3Scale(&portalUp, &nextDir, PORTAL_COVER_HEIGHT_RADIUS * 0.5f); + vector3Scale(&portalUp, &nextDir, PORTAL_COVER_HEIGHT_RADIUS); box3DExtendDirection(bb, &nextDir, bb); vector3Negate(&nextDir, &nextDir); box3DExtendDirection(bb, &nextDir, bb); - vector3Scale(&portalRight, &nextDir, PORTAL_COVER_WIDTH_RADIUS * 0.5f); + vector3Scale(&portalRight, &nextDir, PORTAL_COVER_WIDTH_RADIUS); box3DExtendDirection(bb, &nextDir, bb); vector3Negate(&nextDir, &nextDir); box3DExtendDirection(bb, &nextDir, bb); diff --git a/src/scene/render_plan.c b/src/scene/render_plan.c index c8aa84d..7ac654f 100644 --- a/src/scene/render_plan.c +++ b/src/scene/render_plan.c @@ -266,7 +266,7 @@ int renderPlanPortal(struct RenderPlan* renderPlan, struct Scene* scene, struct struct Vector3 cameraForward; quatMultVector(&next->camera.transform.rotation, &gForward, &cameraForward); - next->camera.nearPlane = (-vector3Dot(&portalOffset, &cameraForward)) * SCENE_SCALE - SCENE_SCALE * PORTAL_COVER_HEIGHT_RADIUS * 0.5f; + next->camera.nearPlane = (-vector3Dot(&portalOffset, &cameraForward)) * SCENE_SCALE - SCENE_SCALE * PORTAL_COVER_HEIGHT_RADIUS; if (next->camera.nearPlane < current->camera.nearPlane) { next->camera.nearPlane = current->camera.nearPlane;