Added ability to disable lighting in the viz-module.
When I reconstructed the 3D scene I want to show it as viz::WMesh with an initial value of lighting. For this I disable lighting and shadows: cv::viz::Viz3d viz_3d_window("3D"); viz_3d_window.setRenderingProperty("mesh", cv::viz::LIGHTING, 0); Most of the examples show the 3D reconstruction using the point cloud, but using the mesh one part of it creates a shadow on other parts of it if lighting ON. Using a 3D mesh with disabled lighting gives the most realistic picture of the reconstructed 3D scene.
This commit is contained in:
parent
df89e76fb1
commit
fcbb57a63f
@ -67,7 +67,8 @@ namespace cv
|
|||||||
REPRESENTATION,
|
REPRESENTATION,
|
||||||
IMMEDIATE_RENDERING,
|
IMMEDIATE_RENDERING,
|
||||||
SHADING,
|
SHADING,
|
||||||
AMBIENT
|
AMBIENT,
|
||||||
|
LIGHTING
|
||||||
};
|
};
|
||||||
|
|
||||||
enum RepresentationValues
|
enum RepresentationValues
|
||||||
|
@ -115,6 +115,14 @@ void cv::viz::Widget::setRenderingProperty(int property, double value)
|
|||||||
case LINE_WIDTH: actor->GetProperty()->SetLineWidth(float(value)); break;
|
case LINE_WIDTH: actor->GetProperty()->SetLineWidth(float(value)); break;
|
||||||
case IMMEDIATE_RENDERING: actor->GetMapper()->SetImmediateModeRendering(int(value)); break;
|
case IMMEDIATE_RENDERING: actor->GetMapper()->SetImmediateModeRendering(int(value)); break;
|
||||||
case AMBIENT: actor->GetProperty()->SetAmbient(float(value)); break;
|
case AMBIENT: actor->GetProperty()->SetAmbient(float(value)); break;
|
||||||
|
case LIGHTING:
|
||||||
|
{
|
||||||
|
if (value == 0)
|
||||||
|
actor->GetProperty()->LightingOff();
|
||||||
|
else
|
||||||
|
actor->GetProperty()->LightingOn();
|
||||||
|
break;
|
||||||
|
}
|
||||||
case FONT_SIZE:
|
case FONT_SIZE:
|
||||||
{
|
{
|
||||||
vtkTextActor* text_actor = vtkTextActor::SafeDownCast(actor);
|
vtkTextActor* text_actor = vtkTextActor::SafeDownCast(actor);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user