avatar
xplosiff
REGULAR
1Issues
0Score
  • xplosiffon [DZG-926]

    Please!

    RTTextureWidget would allow us to render UI layouts on object surfaces. 3D-interactable UI, streamlined animation, playing MP4 files on object surfaces with the VideoWidget, making textures move/shift using ImageWidgets, etc.
    RenderTargetWidget would allow us to render the game camera or alternative cameras into UI. If used in a layout as a child of RTTextureWidget, the camera could then be rendered on object surfaces as well (i.e. CCTV monitors).

    I had RTTextureWidget rendering in an ImageWidget preview at the start of the year, it was halfway there. All that was missing was how to apply it to the object surface so it renders in the 3D world. This appears to have stopped working altogether after a recent patch, sadly.

    The only "practical" options currently available for 3D UI / animated surfaces are to:
    A: Rotate/swap textures on selections directly or,
    B: Render a UI window over the top of everything, so it isnt really 3D but an overlay over everything. It looks fake and doesnt fit into the environment (lighting/fog/FOV/etc).

    As for RenderTargetWidget, we have no way to reference the WorldEntity. Passing another object reference to SetWidgetWorld() just makes it render black.
    proto native GenericWorldEntity GetWorldEntity(); isnt usable to feed it what I presume is the expected WorldEntity.

    For RenderTargetWidget to be practically usable, we would also need functions to force LOD levels and/or render resolution, along with a PiP image-quality setting that clients can configure.

    Being given the ability to render UI layouts and/or additional script created cameras on object surfaces would expand the modding potential substantially.

    If cheating is a concern, the cameras could be server-authoritative. Clients wouldn't be able to use arbitrary cameras as render targets; instead, the server could create/authorize them and define their permitted position, orientation and movement limits, with those restrictions enforced natively. This would allow legitimate scripted CCTV/PiP systems without exposing an unrestricted client-side cameras.