[vtkusers] [vtk-developers] VTK 6.3 OpenGL2 - vtkTextActor blurred text when used with vtkFixedPointVolumeRayCastMapper

Simon ESNEAULT simon.esneault at gmail.com
Mon Nov 23 04:32:45 EST 2015


Hello,

Thanks for merging this.

As a side note, I believe the same is true for the old backend, because the
function vtkOpenGLRayCastImageDisplayHelper::RenderTextureInternal(  ... )
does also modify the blend state without restoring it. But somehow, the 2D
texture are correctly drawn with the old backend ...

Mantis bugs :
http://www.vtk.org/Bug/view.php?id=15838
and
http://www.vtk.org/Bug/view.php?id=15812

can now be closed :)

Thanks
Simon

2015-11-21 2:39 GMT+01:00 Aashish Chaudhary <aashish.chaudhary at kitware.com>:

> Simon,
>
> You branch has been merged:
> https://gitlab.kitware.com/vtk/vtk/merge_requests/932. Thank for the
> patch.
>
> - Aashish
>
> On Fri, Nov 20, 2015 at 9:37 AM, Ken Martin <ken.martin at kitware.com>
> wrote:
>
>> That is the standard blend save/restore code so I think that should do
>> the trick. Thanks for digging into it.
>>
>> On Fri, Nov 20, 2015 at 8:32 AM, Aashish Chaudhary <
>> aashish.chaudhary at kitware.com> wrote:
>>
>>> Hi Simon,
>>>
>>> Thanks! I am okay with merging this change but in general restoring to
>>> previous state is tricky as for that you need to know the previous state. I
>>> think restoring to a default state (which you did) makes more sense.
>>> Although in VTK we don't have clear guideline on this. I am reviewing your
>>> changes..
>>>
>>>
>>> On Fri, Nov 20, 2015 at 8:26 AM, Simon ESNEAULT <
>>> simon.esneault at gmail.com> wrote:
>>>
>>>> Hello,
>>>>
>>>> I've created a merge request for this bug :
>>>> https://gitlab.kitware.com/vtk/vtk/merge_requests/932
>>>>
>>>> The class vtkOpenGLRayCastImageDisplayHelper is changing OpenGL blend
>>>> state, but never restores the state as it was before, resulting in some
>>>> incorrect blend later.
>>>> I don't know if it's the correct fix, but it certainly look like the
>>>> reason for this bug, and it solve the bug here.
>>>> Can someone review this merge ?
>>>>
>>>> Regards
>>>> Simon
>>>>
>>>>
>>>> 2015-11-18 9:38 GMT+01:00 Simon ESNEAULT <simon.esneault at gmail.com>:
>>>>
>>>>> Morning !
>>>>>
>>>>> http://www.vtk.org/Bug/view.php?id=15838
>>>>>
>>>>> Let me know if there is anything I can do to solve this.
>>>>>
>>>>> Simon
>>>>>
>>>>> 2015-11-17 16:50 GMT+01:00 Aashish Chaudhary <
>>>>> aashish.chaudhary at kitware.com>:
>>>>>
>>>>>>
>>>>>>
>>>>>> On Tue, Nov 17, 2015 at 3:36 AM, Simon ESNEAULT <
>>>>>> simon.esneault at gmail.com> wrote:
>>>>>>
>>>>>>> Dear Aashish,
>>>>>>>
>>>>>>> Yes the root cause is probably located in vtkTexturedActor2D, or in
>>>>>>> vtkOpenGLTexture::Load( vtkRenderer* ) which looks like the responsible
>>>>>>> class for loading the texture.
>>>>>>> Shall I fill a bug ?
>>>>>>>
>>>>>>
>>>>>> Yes, please.
>>>>>>
>>>>>> - Aashish
>>>>>>
>>>>>>
>>>>>>> Thanks
>>>>>>> Simon
>>>>>>>
>>>>>>> 2015-11-16 17:49 GMT+01:00 Aashish Chaudhary <
>>>>>>> aashish.chaudhary at kitware.com>:
>>>>>>>
>>>>>>>> I see so its not just related to volume rendering and it seems to
>>>>>>>> be a vtkTextActor2D problem? In that can probably Ken / David Lonie wants
>>>>>>>> to take a look at it. Nonetheless, we will follow up on this bug.
>>>>>>>>
>>>>>>>> - Aashish
>>>>>>>>
>>>>>>>> On Mon, Nov 16, 2015 at 11:12 AM, Simon ESNEAULT <
>>>>>>>> simon.esneault at gmail.com> wrote:
>>>>>>>>
>>>>>>>>> Hello Aashish,
>>>>>>>>>
>>>>>>>>> Thanks !
>>>>>>>>> After doing some test, I realized the patch I've just sent is not
>>>>>>>>> the correct fix at all, because the text is not rendered properly when we
>>>>>>>>> don't use a vtkFixedPointVolumeRayCastMapper anymore.
>>>>>>>>>
>>>>>>>>> I believe the problem is probably larger than this and probably
>>>>>>>>> has nothing to do with the freetype text generation, but more with the
>>>>>>>>> vtkTexturedActor2D rendering part used together with a
>>>>>>>>> vtkFixedPointVolumeRayCastMapper on the new rendering backend, when the
>>>>>>>>> texture has some transparent pixel in it ...
>>>>>>>>>
>>>>>>>>> Attached there is a new example that demonstrate that a
>>>>>>>>> vtkTextActor AND a vtkTexturedButtonRepresentation2D are not correctly
>>>>>>>>> drawn in that case :
>>>>>>>>> - OpenGL1 backend
>>>>>>>>> <http://picpaste.com/pics/OGL1-Texture-okay.1447690100.png> : Transparent
>>>>>>>>> pixel in Texture are correctly drawn
>>>>>>>>> - OpenGL2 backend
>>>>>>>>> <http://picpaste.com/pics/OGL2-Texture-not-okay.1447690272.png> :
>>>>>>>>> Transparent pixel in Texture are not correctly drawn (clamped to white ?)
>>>>>>>>>
>>>>>>>>> The example is more simple than the previous one and does not need
>>>>>>>>> any additional data.
>>>>>>>>>
>>>>>>>>> Hope that helps !
>>>>>>>>> -Simon
>>>>>>>>>
>>>>>>>>> 2015-11-16 16:11 GMT+01:00 Aashish Chaudhary <
>>>>>>>>> aashish.chaudhary at kitware.com>:
>>>>>>>>>
>>>>>>>>>> Simon,
>>>>>>>>>>
>>>>>>>>>> Thanks for the report. I will follow up with other developers on
>>>>>>>>>> this bug.
>>>>>>>>>>
>>>>>>>>>> - Aashish
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> On Mon, Nov 16, 2015 at 6:08 AM, Simon ESNEAULT <
>>>>>>>>>> simon.esneault at gmail.com> wrote:
>>>>>>>>>>
>>>>>>>>>>> Hello,
>>>>>>>>>>>
>>>>>>>>>>> Trying to solve this problem, I found out that if one call
>>>>>>>>>>> "vtkFreeTypeTools::GetInstance()->DebugTexturesOn();" before to render a
>>>>>>>>>>> string with a vtkTextActor, the text is properly rendered with a yellow dot
>>>>>>>>>>> at the anchor point, and with a transparent gray background.
>>>>>>>>>>> - DebugTexturesOn :
>>>>>>>>>>> http://picpaste.com/pics/Blurred.1447668943.PNG
>>>>>>>>>>> - DebugTexturesOff :
>>>>>>>>>>> http://picpaste.com/pics/Not-Blurred.1447669009.PNG
>>>>>>>>>>>
>>>>>>>>>>> Now digging into the code in vtkFreeTypeTools.cxx, I suspect
>>>>>>>>>>> this is a blending problem. When we activate Texture Debugging, a gray
>>>>>>>>>>> background is first drawn, and after that in the method RenderCharacter(
>>>>>>>>>>> ... ) line 1887; we either blend the rendered text with the background or
>>>>>>>>>>> not.
>>>>>>>>>>>
>>>>>>>>>>> Attached is a diff file that solves the problem for me. I do not
>>>>>>>>>>> really understand why, so maybe a developer with more VTK's knowledge can
>>>>>>>>>>> integrate this properly :)
>>>>>>>>>>>
>>>>>>>>>>> Thanks,
>>>>>>>>>>> Simon
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> 2015-11-13 16:43 GMT+01:00 Simon ESNEAULT <
>>>>>>>>>>> simon.esneault at gmail.com>:
>>>>>>>>>>>
>>>>>>>>>>>> Hi All,
>>>>>>>>>>>>
>>>>>>>>>>>> All vtkTextActor are rendered blurred when using with
>>>>>>>>>>>> vtkFixedPointVolumeRayCastMapper in the same renderer in vtk 6.3 with the
>>>>>>>>>>>> new rendering backend.
>>>>>>>>>>>>
>>>>>>>>>>>> Here are some snapshots :
>>>>>>>>>>>>  - OpenGL1
>>>>>>>>>>>> <http://picpaste.com/pics/OGL1-not-blurred.1447428990.png>
>>>>>>>>>>>>  - OpenGL2
>>>>>>>>>>>> <http://picpaste.com/pics/OGL2-blurred.1447429027.png>
>>>>>>>>>>>>
>>>>>>>>>>>> Attached some code that reproduces the problem, to be used with
>>>>>>>>>>>> this <https://www.dropbox.com/s/ptqwi0ebv75kt35/volume.zip>
>>>>>>>>>>>> volume. Visible on OSX and Windows to our knowledge, probably on more OS.
>>>>>>>>>>>>
>>>>>>>>>>>> The text is rendered properly when used with the old backend or
>>>>>>>>>>>> when using a vtkGPUVolumeRayCastMapper instead of
>>>>>>>>>>>> the vtkFixedPointVolumeRayCastMapper.
>>>>>>>>>>>>
>>>>>>>>>>>> Shall I feel a bug, is this a known issue ?
>>>>>>>>>>>>
>>>>>>>>>>>> Thanks,
>>>>>>>>>>>> Simon
>>>>>>>>>>>>
>>>>>>>>>>>> --
>>>>>>>>>>>>
>>>>>>>>>>>> ------------------------------------------------------------------
>>>>>>>>>>>> Simon Esneault
>>>>>>>>>>>> Rennes, France
>>>>>>>>>>>>
>>>>>>>>>>>> ------------------------------------------------------------------
>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> --
>>>>>>>>>>>
>>>>>>>>>>> ------------------------------------------------------------------
>>>>>>>>>>> Simon Esneault
>>>>>>>>>>> Rennes, France
>>>>>>>>>>>
>>>>>>>>>>> ------------------------------------------------------------------
>>>>>>>>>>>
>>>>>>>>>>> _______________________________________________
>>>>>>>>>>> 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 VTK FAQ at:
>>>>>>>>>>> http://www.vtk.org/Wiki/VTK_FAQ
>>>>>>>>>>>
>>>>>>>>>>> Search the list archives at:
>>>>>>>>>>> http://markmail.org/search/?q=vtkusers
>>>>>>>>>>>
>>>>>>>>>>> Follow this link to subscribe/unsubscribe:
>>>>>>>>>>> http://public.kitware.com/mailman/listinfo/vtkusers
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> --
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> *| Aashish Chaudhary | Technical Leader         | Kitware Inc.
>>>>>>>>>>         *
>>>>>>>>>> *| http://www.kitware.com/company/team/chaudhary.html
>>>>>>>>>> <http://www.kitware.com/company/team/chaudhary.html>*
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> --
>>>>>>>>> ------------------------------------------------------------------
>>>>>>>>> Simon Esneault
>>>>>>>>> Rennes, France
>>>>>>>>> ------------------------------------------------------------------
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> *| Aashish Chaudhary | Technical Leader         | Kitware Inc.
>>>>>>>>       *
>>>>>>>> *| http://www.kitware.com/company/team/chaudhary.html
>>>>>>>> <http://www.kitware.com/company/team/chaudhary.html>*
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> ------------------------------------------------------------------
>>>>>>> Simon Esneault
>>>>>>> Rennes, France
>>>>>>> ------------------------------------------------------------------
>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>>
>>>>>>
>>>>>>
>>>>>> *| Aashish Chaudhary | Technical Leader         | Kitware Inc.
>>>>>>     *
>>>>>> *| http://www.kitware.com/company/team/chaudhary.html
>>>>>> <http://www.kitware.com/company/team/chaudhary.html>*
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> ------------------------------------------------------------------
>>>>> Simon Esneault
>>>>> Rennes, France
>>>>> ------------------------------------------------------------------
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> ------------------------------------------------------------------
>>>> Simon Esneault
>>>> Rennes, France
>>>> ------------------------------------------------------------------
>>>>
>>>
>>>
>>>
>>> --
>>>
>>>
>>>
>>> *| Aashish Chaudhary | Technical Leader         | Kitware Inc.
>>>   *
>>> *| http://www.kitware.com/company/team/chaudhary.html
>>> <http://www.kitware.com/company/team/chaudhary.html>*
>>>
>>> _______________________________________________
>>> Powered by www.kitware.com
>>>
>>> Visit other Kitware open-source projects at
>>> http://www.kitware.com/opensource/opensource.html
>>>
>>> Search the list archives at:
>>> http://markmail.org/search/?q=vtk-developers
>>>
>>> Follow this link to subscribe/unsubscribe:
>>> http://public.kitware.com/mailman/listinfo/vtk-developers
>>>
>>>
>>>
>>
>>
>> --
>> Ken Martin PhD
>> Chairman & CFO
>> Kitware Inc.
>> 28 Corporate Drive
>> Clifton Park NY 12065
>> 518 371 3971
>>
>> This communication, including all attachments, contains confidential and
>> legally privileged information, and it is intended only for the use of the
>> addressee.  Access to this email by anyone else is unauthorized. If you are
>> not the intended recipient, any disclosure, copying, distribution or any
>> action taken in reliance on it is prohibited and may be unlawful. If you
>> received this communication in error please notify us immediately and
>> destroy the original message.  Thank you.
>>
>
>
>
> --
>
>
>
> *| Aashish Chaudhary | Technical Leader         | Kitware Inc.            *
> *| http://www.kitware.com/company/team/chaudhary.html
> <http://www.kitware.com/company/team/chaudhary.html>*
>



-- 
------------------------------------------------------------------
Simon Esneault
Rennes, France
------------------------------------------------------------------
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/vtkusers/attachments/20151123/004f6979/attachment.html>


More information about the vtkusers mailing list