[vtkusers] diffuse lighting after scaling with negative values

Gerrick Bivins gbivins at objectreservoir.com
Wed Sep 3 15:51:33 EDT 2008


Yup. That¹s my bad!
Gerrick

On 9/3/08 2:32 PM, "Manuel Feige" <manuelfeige at googlemail.com> wrote:

> Hi Gerrick,
>  
> no, a 180 degrees rotation is not the same as the mirroring with respect to a
> plane. Moreover, you cannot accomplish mirroring by any combination of
> rotations. Take a book or something like that to convince yourself of this
> fact.
>  
> But the solution is probably to switch off two sided lighting:
> vtkRenderer::TwoSidedLightingOff().
>  
> Manuel
>>  
>> ----- Original Message -----
>>  
>> From:  Gerrick Bivins <mailto:gbivins at objectreservoir.com>
>>  
>> To: Manuel Feige <mailto:manuelfeige at googlemail.com>  ; VTK-users
>> <mailto:vtkusers at vtk.org>
>>  
>> Sent: Wednesday, September 03, 2008 9:11  PM
>>  
>> Subject: Re: [vtkusers] diffuse lighting  after scaling with negative values
>>  
>> 
>> 
>> 
>> Hi Manuel,
>> You should just rotate your  actor 180 degrees rather than using the scale.
>> This would avoid these  kinds of problems.
>> Gerrick
>> 
>> 
>> On 9/3/08 1:55 PM, "Manuel Feige"  <manuelfeige at googlemail.com>  wrote:
>> 
>>  
>>> Hello,
>>> 
>>> my  application needs to mirror the actors with respect to the x-y-plane. I
>>> can  do this by vtkProp3D::SetScale(1, 1, -1). Unfortunately the  diffuse
>>> lighting does not work after this transformation (the ambient  lighting
>>> does). In this example the cone appears gray instead of  white.
>>> 
>>> int main()
>>> {
>>> vtkConeSource*  cone = vtkConeSource::New();
>>> vtkDataSetMapper* mapper =  vtkDataSetMapper::New();
>>> mapper->SetInput(cone->GetOutput());
>>> 
>>> vtkActor* actor =  vtkActor::New();
>>> actor->SetMapper(mapper);
>>> actor->GetProperty()->SetRepresentationToSurface();
>>> actor->GetProperty()->SetColor(1.0,  1.0,  1.0);
>>> actor->GetProperty()->SetAmbient(0.5);
>>> actor->SetScale(1,1,-1);
>>> 
>>> vtkRenderer* renderer =  vtkRenderer::New();
>>> renderer->AddActor(actor);
>>> vtkRenderWindow*  renWin =  vtkRenderWindow::New();
>>> renWin->AddRenderer(renderer);
>>> vtkRenderWindowInteractor*  iren =  vtkRenderWindowInteractor::New();
>>> iren->SetRenderWindow(renWin);
>>> iren->Initialize();
>>> iren->Start(); 
>>>  
>>> //Delete...
>>> }
>>> 
>>> Any  suggestions how I can get the diffuse lighting running?
>>> 
>>> Thanks  in advance
>>> Manuel Feige
>>> 
>>>  
>>> 
>>>  _______________________________________________
>>> This  is the private VTK discussion list.
>>> Please keep messages on-topic. Check  the FAQ at:
>>> http://www.vtk.org/Wiki/VTK_FAQ
>>> Follow  this link to subscribe/unsubscribe:
>>> http://www.vtk.org/mailman/listinfo/vtkusers
> 
> 
> _______________________________________________
> This is the private VTK discussion list.
> Please keep messages on-topic. Check the FAQ at:
> http://www.vtk.org/Wiki/VTK_FAQ
> Follow this link to subscribe/unsubscribe:
> http://www.vtk.org/mailman/listinfo/vtkusers

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.vtk.org/pipermail/vtkusers/attachments/20080903/e0db9220/attachment.htm>


More information about the vtkusers mailing list