Skip to content

Conversation

@huwb
Copy link
Contributor

@huwb huwb commented Sep 12, 2020

Status: Definitely not ready to merge. I'm creating this as someone enquired about it and it took me a while to find it.

Experiment with what would be required for multiple oceans: #540

This branch should work like before in the case of a single ocean. There are a few issues before it will support multiple instances.

Questions / problems that arose:

  • RegisterLodDataClipSurface - this sets per-ocean data on MPB. might be tricky to fix..
  • How to connect underwater effect to ocean instance?
  • How to connect underwater environment lighting with ocean instance?
  • OceanChunkRenderer.OnWillRenderObject - tiles will need Layer so it only goes in one camera??

Misc notes:

  • Validation gets passed "AnyInstance" in a few places, is this ok?
  • RenderData.Validate - uses any instance
  • Debuggui always takes first instance of ocean, shall we make this selectable?
  • Lod data resolution should be global setting, right now taken from one instance

Once i started pulling on the thread i could not stop. This branch should work like
before iwth one ocean, there are a few issues before it will support multiple instances.

Questions / problems that arose:

Lod data resolution should be global setting, right now taken from one instance
Validation gets passed "AnyInstance" in a few places, is this ok?
RenderData.Validate - uses any instance
RegisterLodDataClipSurface - this sets per-ocean data on MPB. might be tricky to fix..
How to connect underwater effect to ocean instance?
How to connect underwater environment lighting with ocean instance?
Debuggui always takes first instance of ocean, shall we make this selectable?
OceanChunkRenderer.OnWillRenderObject - tiles will need Layer so it only goes in one camera??

tag @daleeidd @moosichu in case this is of interest
@magenta404
Copy link
Collaborator

magenta404 commented Oct 28, 2020

I have the following assumption:

Each camera can have many ocean instances.
Each ocean instance must have only one camera.

Going with the simpler assumption of a one to one mapping with camera and ocean.

How to connect underwater effect to ocean instance?

We could do a camera lookup. It would require #677 so that we have a reference to the camera. Done

How to connect underwater environment lighting with ocean instance?

Same as above. Although, developers would have to use light layers and have two separate lights for it to work. I think we should instead add validation stating that this component doesn't support multiple instances. And maybe add support in the future.

OceanChunkRenderer.OnWillRenderObject - tiles will need Layer so it only goes in one camera??

We already have this for built-in. I think SRP uses something different. We could validate this if we have a camera property.

Validation gets passed "AnyInstance" in a few places, is this ok?

We should be passing all instances. Since these components are shared by both instances, they should be valid for both instances. The validate function will need to be updated to take list of OceanRenderers. I will look into doing this at some point.

Validation already enforces a camera as a parent.
Multiple Oceans: Connect underwater to ocean instance
@magenta404
Copy link
Collaborator

magenta404 commented May 24, 2021

Updated above comment.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants