[Paraview] sources: why redundant number of points needed?

Cory Quammen cory.quammen at kitware.com
Sat Oct 11 11:34:28 EDT 2014


Bertwim,

In fact, with Gouraud shading enabled (the default in ParaView when
point normals are available), normals are defined only per point - no
face normal is needed. If you change the Interpolation to Flat under
the "Lighting" section in the Properties panel, only the face normal
will be computed and used for lighting, but objects with smooth
surfaces, such as spheres, won't be rendered very nicely - edges
between adjacent faces will be sharp.

For a general overview of Gouraud shading and some background on what
is needed for getting sharp edges, please see

http://msdn.microsoft.com/en-us/library/windows/desktop/bb324491(v=vs.85).aspx

It is geared towards Direct3D, but the same concepts apply to OpenGL
and in turn VTK and ParaView.

Cory


On Sat, Oct 11, 2014 at 11:13 AM, B.W.H. van Beest <bwvb at xs4all.nl> wrote:
> Cory,
>
> So indeed there has to be a normal *per point and per face*, and not
> *per face*?
> And, likewise, points are not shared between adjacent faces.
> I had overlooked that detail in the documentation, tacitly assuming that
> "of course"
> the normals are  *per face*.
>
> Regards,
> Bertwim
>
> On 10/11/2014 04:48 PM, Cory Quammen wrote:
>> Bertwim,
>>
>> You are right that there is a redundancy in points. That stems from
>> the need for defining different normals at the corner points for each
>> face. In theory, you could define more than one normal for the same
>> point and associate it with a face, but that complicates the data
>> structure. It is much simpler to duplicate points and associate
>> exactly one normal per point.
>>
>> In most polygonal data, you won't see duplicated points at most
>> places. But for anything that should be displayed with a sharp edge,
>> duplicate points will be present.
>>
>> - Cory
>>
>> On Sat, Oct 11, 2014 at 10:23 AM, B.W.H. van Beest <bwvb at xs4all.nl> wrote:
>>> Hi,
>>>
>>> When I look into the source code of vtkCubeSource.cpp,
>>> I noticed that, although  a (rectangular) 3D box can be described by
>>> 8 3D points and 6 2D faces (hence also 6 3D normal vectors),
>>> in the actual code of vtkCubeBoxSource:RequestData() there are 24 3D
>>> points generated,
>>> with for every point a normal (???), and indeed 6 faces (polys).
>>> Why is there this redundancy?
>>>
>>> I bumped on this when I applied the "HiddenLineRemoval" representation to
>>> my own handcrafted box (with 8 points, 6 faces and 6 normals). It yielded
>>> an incorrect view whereas the box with the redundant numbers of data
>>> gave the correct one. But I don't get the logic.
>>>
>>> Regards,
>>> Bertwim
>>> _______________________________________________
>>> Powered by www.kitware.com
>>>
>>> Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html
>>>
>>> Please keep messages on-topic and check the ParaView Wiki at: http://paraview.org/Wiki/ParaView
>>>
>>> Follow this link to subscribe/unsubscribe:
>>> http://public.kitware.com/mailman/listinfo/paraview
>>
>


More information about the ParaView mailing list