Work on new RTT widget, let there be light
This commit is contained in:
parent
a6f266ea40
commit
5ce2b0b922
@ -862,10 +862,15 @@ void IrrDriver::renderLights(scene::ICameraSceneNode * const camnode, float dt)
|
|||||||
if (!m_lights[i]->isPointLight())
|
if (!m_lights[i]->isPointLight())
|
||||||
{
|
{
|
||||||
m_lights[i]->render();
|
m_lights[i]->render();
|
||||||
if (UserConfigParams::m_shadows && World::getWorld()->getTrack()->hasShadows())
|
if (UserConfigParams::m_shadows && World::getWorld() != NULL &&
|
||||||
|
World::getWorld()->getTrack()->hasShadows())
|
||||||
|
{
|
||||||
m_post_processing->renderShadowedSunlight(sun_ortho_matrix, m_rtts->getShadowDepthTex());
|
m_post_processing->renderShadowedSunlight(sun_ortho_matrix, m_rtts->getShadowDepthTex());
|
||||||
|
}
|
||||||
else
|
else
|
||||||
|
{
|
||||||
m_post_processing->renderSunlight();
|
m_post_processing->renderSunlight();
|
||||||
|
}
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
const core::vector3df &lightpos = (m_lights[i]->getAbsolutePosition() - campos);
|
const core::vector3df &lightpos = (m_lights[i]->getAbsolutePosition() - campos);
|
||||||
|
@ -191,6 +191,8 @@ void ModelViewWidget::setupRTTScene(PtrVector<scene::IMesh, REF>& mesh,
|
|||||||
AlignedArray<Vec3>& mesh_scale,
|
AlignedArray<Vec3>& mesh_scale,
|
||||||
const std::vector<int>& model_frames)
|
const std::vector<int>& model_frames)
|
||||||
{
|
{
|
||||||
|
irr_driver->getSceneManager()->clear();
|
||||||
|
|
||||||
if (model_frames[0] == -1)
|
if (model_frames[0] == -1)
|
||||||
{
|
{
|
||||||
scene::ISceneNode* node = irr_driver->addMesh(mesh.get(0), NULL);
|
scene::ISceneNode* node = irr_driver->addMesh(mesh.get(0), NULL);
|
||||||
@ -244,12 +246,7 @@ void ModelViewWidget::setupRTTScene(PtrVector<scene::IMesh, REF>& mesh,
|
|||||||
irr_driver->getSceneManager()->setAmbientLight(video::SColor(255, 35, 35, 35));
|
irr_driver->getSceneManager()->setAmbientLight(video::SColor(255, 35, 35, 35));
|
||||||
|
|
||||||
const core::vector3df &spot_pos = core::vector3df(0, 30, 40);
|
const core::vector3df &spot_pos = core::vector3df(0, 30, 40);
|
||||||
m_light = irr_driver->getSceneManager()
|
m_light = irr_driver->addLight(spot_pos, 3.0f /* energy */, 100 /* distance */, 1.0f /* r */, 1.0f /* g */, 1.0f /* g*/, true, NULL);
|
||||||
->addLightSceneNode(NULL, spot_pos, video::SColorf(1.0f, 1.0f, 1.0f),
|
|
||||||
1600 /* radius */);
|
|
||||||
m_light->setLightType(video::ELT_SPOT);
|
|
||||||
m_light->setRotation((core::vector3df(0, 10, 0) - spot_pos).getHorizontalAngle());
|
|
||||||
m_light->updateAbsolutePosition();
|
|
||||||
|
|
||||||
m_rtt_main_node->setMaterialFlag(video::EMF_GOURAUD_SHADING, true);
|
m_rtt_main_node->setMaterialFlag(video::EMF_GOURAUD_SHADING, true);
|
||||||
m_rtt_main_node->setMaterialFlag(video::EMF_LIGHTING, true);
|
m_rtt_main_node->setMaterialFlag(video::EMF_LIGHTING, true);
|
||||||
|
@ -62,7 +62,7 @@ namespace GUIEngine
|
|||||||
|
|
||||||
scene::ICameraSceneNode *m_camera;
|
scene::ICameraSceneNode *m_camera;
|
||||||
|
|
||||||
scene::ILightSceneNode *m_light;
|
scene::ISceneNode *m_light;
|
||||||
|
|
||||||
FrameBuffer *m_frame_buffer;
|
FrameBuffer *m_frame_buffer;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user