[Interest] Qt3D How to draw 2D-Text always facing the Camera

david crémoux david at adeko.com
Thu Dec 20 07:11:17 CET 2018


Then I would stay with the first solution I proposed, it will be more 
flexible in your case: regular text2dentity with custom frame graph 
branch and custom camera.

There is just one thing to be aware about the text2dentity, the entity 
doesn't do the rendering itself: it contains another entity which is 
taking card of the rendering (DistanceFieldTextRenderer).
So if you use a layer filter and attach it to the text2dentity, you 
should set it to be recursive to affect the rendering child entity.
Moreover this "rendering" entity set by default some render states, like 
the depth test, which may be boring to achieve the exact rendering you 
want (in my case it is ...).

david

On 19-Dec-18 11:14, Volker Enderlein wrote:
> The number of Text2D elements is not known in advance and may differ. 
> It's a simulation environment, where some textual information is added 
> to a fairly high number of elements.
> To avoid the data management for different kinds of entities my first 
> idea was to create a specialized Text2d  entity that handles all the 
> gory details in a custom material and provides an option to always face 
> the camera.
> 
> Cheers Volker
> 
> Am 19.12.2018 um 08:37 schrieb david crémoux:
>> You're welcome.
>>
>> I will most probably have to implement the same feature in a near 
>> future for the project I'm currently working on.
>>
>> If making the custom camera is too much complex, there is a more basic 
>> way but involving more data management (depending on how much 2d text 
>> entities you have to display):
>> You still use a specific frame graph branch with a layer filter but 
>> with an identity camera.
>> Then you attach all your 2d text entities to your scene root entity 
>> and you update their transform/position on every camera transform/move.
>>
>> david
>>
>> On 19-Dec-18 10:05, Volker Enderlein wrote:
>>> Hi David,
>>>
>>> thanks for the answer. I wasn't thinking of that, as my knowledge 
>>> about framegraphs is very limited. But this helps me further.
>>>
>>> Cheers Volker
>>>
>>> Am 18.12.2018 um 14:53 schrieb david crémoux:
>>>> Hello Volker,
>>>>
>>>> I guess you can achieve it with regular QText2DEntity, with a 
>>>> specific frame graph branch in your rendering for your 2d text, a 
>>>> layer filter and a custom camera (based on your main camera).
>>>>
>>>> david
>>>>
>>>> On 18-Dec-18 14:37, Volker Enderlein wrote:
>>>>> Hi all,
>>>>>
>>>>> when building a rather complex Qt3D-Scene I needed some 2D-Text 
>>>>> that has a 3D position, is always facing the camera, and fixed in 
>>>>> size, independent of the camera settings.
>>>>>
>>>>> While looking over the components provided by Qt3D I stumbled 
>>>>> across Text2DEntity and thought about how it can be tweaked ot 
>>>>> fulfill my requirements.
>>>>>
>>>>> As all my requirements can be done inside a shader I thought about 
>>>>> whether the QText2DMaterial that is used inside the class can be 
>>>>> replaced by a custom material. But unfortunately the material is 
>>>>> not accessible from outside.
>>>>>
>>>>> Text2DEntity can be embedded in another class that applies the 
>>>>> camera information to it, but is there an easier solution to this 
>>>>> problem?
>>>>>
>>>>> Cheers Volker
>>>>>
>>>
> 



More information about the Interest mailing list