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

Make interaction use the shader based system for selection #1387

Open
4 tasks
stilnat opened this issue Dec 9, 2023 · 0 comments
Open
4 tasks

Make interaction use the shader based system for selection #1387

stilnat opened this issue Dec 9, 2023 · 0 comments
Labels
Difficulty: hard 🌵 Things are getting spiky ! Feature A new system or other feature. Interactions Tasks specific to the interaction system or specific interactions.

Comments

@stilnat
Copy link
Contributor

stilnat commented Dec 9, 2023

Summary

Examine is using at its core a shader based method to select items as opposed to the classic collider based method. This method is ideal both to examine and to perform any other kind of interactions really. We would like the examine object selection method to be integrated with the interaction system, which currently uses simple colliders.

Interaction controller will need some rework, as we don't want the server to simply apply the same method as client, it would mean recomputing every shaders on server for each client which is hell.

However, security should be taken into account too, at least a bit. Server needs to do some check before allowing clients to run interaction.

Docs

Some concerns were raised in a previous attempt, you can find them here :
#842

and here :
#839

Regarding performance, there might be some inspiration here :
https://medium.com/@philippchristoph/pixel-perfect-selection-using-shaders-16070d3094d

Here's ryan doc on the examine system
https://docs.google.com/document/d/1xTyRXzi1g7H3SOkw1wkrFFbMcDUA0VEE/edit

Goal

The PR solving this should check the following :

  • A game object should be able to be examinable and interactive at the same time.
  • If a game object is examinable, and a child of it is interactive, moving the cursor over the interactive part should still display things about the parent game object, unless the child game object has its own examinable thing.
  • The interaction system should have a great reactivity, at worst, a delay of one frame is acceptable but not more.
  • It should be possible to interact with items behind colliders, like pipes behind the plenum colliders.
@stilnat stilnat added the Feature A new system or other feature. label Dec 9, 2023
@cosmiccoincidence cosmiccoincidence added Interactions Tasks specific to the interaction system or specific interactions. Difficulty: hard 🌵 Things are getting spiky ! labels Dec 9, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Difficulty: hard 🌵 Things are getting spiky ! Feature A new system or other feature. Interactions Tasks specific to the interaction system or specific interactions.
Projects
None yet
Development

No branches or pull requests

2 participants