Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Vignette Node #3040

Open
emanuele3d opened this issue Aug 2, 2017 · 1 comment
Open

Vignette Node #3040

emanuele3d opened this issue Aug 2, 2017 · 1 comment
Labels
Topic: Rendering Requests, Issues and Changes related to lighting, meshes, camera, etc.

Comments

@emanuele3d
Copy link
Contributor

The current vignette functionality, despite being buried within a shader also doing other stuff, has actually a lot of potential. In its current form it's simply a transparency-only texture that appears as a darker halo framing the view. This is mostly used during the underwater rendering.

When extracted from the current shader and placed into its own VignetteNode, it can acquire new features without too much effort.

Possible enhancements

1st stage - Tinting

Reuse the current texture but add the capacity to arbitrarily change its color.

This will allow external objects controlling the node to arbitrarily vary its color in time, with the vignette halo taking a number of possible meanings:

  • flashing red: hit damage
  • orange: heat hazard
  • pale blue: cold hazard
  • pulsing yellow: disease
  • lime green: chemical hazard
  • turquoise blue: radioactive hazard
  • white: flashback/dream-like state

It should be noted that this achievable with a generic (but currently not existing) TintNode colorizing the vignette texture and a CompositingNode (also not yet existing) blending the colorized texture on top of an existing rendering. The merits of this approach versus a single VignetteNode encapsulating this functionality should be discussed.

2nd stage - Arbitrary textures

Add the capability to arbitrarily associate new textures to the node (including those stored in modules) and trigger their visibility.

This will allow the association of meanings and more complex textures. For example the texture associated with a "cold hazard" might have snow flakes in it, while one associated with desease might have more organic patterns in it. Crucially, full RGBA textures would be allowed by this feature, requiring only a fade-in/fade-out mechanism in the simplest of circumstances. That been said, this functionality should leave the tinting mechanism from the 1st stage intact, so that even an RGBA texture can be tinted if necessary.

3rd stage - built-in or set controllers

The previous stages assumed external objects controlling which texture is shown by the VignetteNode and what tinting to apply. Leaving the VignetteNode with simple responsibility might be desirable, but a version directly providing these capabilities, perhaps through a "default controller" object, might result easier to handle from a practical perspective.

Furthermore, the default controller or the external controllers could schedule the texture and tinting changes rather than allow immediate changes.

Arbitrarily set controllers would allow for more complex logic to decide which texture and which tinting occurs. For example two separate modules might request that the vignette simultaneously displays hit damage and cold damage, something the node per se might not be able to handle. The controller however could schedule repeated slow pulse-switching between the cold damage and the hit damage display, for as long as the underlying systems require it.

In this context a controller could handle inputs such as "show texture A in 1 second pulses every 3 seconds until further notice". It would then be up to the controller to handle a conflicting instruction such as "show texture B as a fixed texture for the next 10 seconds".

@emanuele3d emanuele3d added the Topic: Rendering Requests, Issues and Changes related to lighting, meshes, camera, etc. label Aug 2, 2017
@syntaxi syntaxi removed the Feature label Jul 15, 2018
@dave2s dave2s mentioned this issue Feb 1, 2019
6 tasks
@keturn
Copy link
Member

keturn commented Aug 9, 2021

There was a Vignette node for a while. Now there is not again, as of Terasology/CoreRendering#70

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Topic: Rendering Requests, Issues and Changes related to lighting, meshes, camera, etc.
Projects
None yet
Development

No branches or pull requests

3 participants