ansys / ansys/Visual-Interactive-Simulation-Object-Renderer
[Remote rendering 4.1] Add headless RemoteRenderer and RCA streaming backend
- Linguagem predominante
- Python
- Estrelas
- 0
- Forks
- 0
- Merge médio
- 1d 10h
- PRs com merge (30d)
- 37
Descrição
### 📝 Description of the feature
Stand up the server-side rendering path on the backend:
* a `RemoteRenderer` that implements `IRenderer` against an off-screen `vtkRenderWindow` (`SetOffScreenRendering(1)`), writing per-part mutations through the shared `VtkNodePipeline` and owning camera state directly on the server-side camera (unlike the local path, where the camera lives in the browser).
* `RemoteApp` wires the render window into trame-rca so frames can stream to the client, and complete `VisorRemoteScene` against the runtime-state hooks from user story 1.2. This includes render coalescing (back to back mutations produce one frame).
* This is the largest story in the phase and is expected to break down into several sub-PRs, e.g.
* The off-screen renderer
* the streaming wiring
* coalescing + camera push
Local mode is untouched in this user story; all of this new code is behind the mode flag.
### Acceptance Criteria
* A connecting client receives an initial frame.
* Tests pass
### 💵 Business Value
_No response_
### 🔗 Useful links and references
_No response_
Guia de contribuição
Direção de pesquisa
Rastreie os pontos de entrada RemoteRenderer, RemoteApp, VtkNodePipeline e VisorRemoteScene descritos na issue, começando pelo renderer local existente e pelos hooks do estado de runtime. Divida o trabalho entre o renderer off-screen, a wiring do streaming e o comportamento de coalescing/câmera; considera-se concluído quando um cliente que se conecta recebe um frame inicial e os testes passam.
Escrita pelo modelo de indexação a partir do texto da issue.
Avaliação
- Stack de tecnologia
- python
- Domínio
- backend, computer-graphics
- Tipo de issue
- Funcionalidade
- Dificuldade
- 5/5
- Tempo estimado
- Mais de uma semana
- Status de atividade
- Ativa
- Clareza
- Razoavelmente clara
- Facilidade para iniciantes
- 35/100