: State()
, assets(assets)
, sim(sim)
-, cam(sim.Root())
+, cam(**sim.Suns().begin())
, cam_pos(0.0, 0.0, 1.0)
, cam_tgt_pos(0.0, 0.0, 1.0)
, cam_focus(0.0)
assets.shaders.sun_surface.SetVP(cam.View(), cam.Projection());
assets.shaders.creature_skin.Activate();
assets.shaders.creature_skin.SetVP(cam.View(), cam.Projection());
+ assets.shaders.sky_box.Activate();
+ assets.shaders.sky_box.SetVP(cam.View() * cam.Universe(), cam.Projection());
}
void MasterState::OnUpdate(int dt) {
}
void MasterState::OnRender(graphics::Viewport &viewport) {
- cam.LookAt(cam_pos, cam_focus, cam_up);
+ cam.LookAt(glm::vec3(cam_pos), glm::vec3(cam_focus), glm::vec3(cam_up));
assets.shaders.planet_surface.Activate();
assets.shaders.planet_surface.SetV(cam.View());
+ assets.shaders.sky_box.Activate();
+ assets.shaders.sky_box.SetV(cam.View() * cam.Universe());
assets.shaders.sun_surface.Activate();
assets.shaders.sun_surface.SetV(cam.View());
assets.shaders.creature_skin.Activate();
c->Draw(viewport);
}
+ assets.shaders.sky_box.Activate();
+ assets.shaders.sky_box.SetTexture(assets.textures.sky);
+ assets.shaders.sky_box.Draw();
+
viewport.ClearDepth();
bp.Draw(viewport);
cp.Draw(viewport);