Cesium guest: take the round trip off the frame (a frame of lag, or reprojection)

Aperta
#314 1 commento 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
5/5
Tempo stimato
Più di una settimana
Idoneità per principianti
35/100
Tipo di issue
Funzionalità
Chiarezza
Abbastanza chiara
Stato di attività
Attiva
Stack tecnologico
javascript, three.js

Direzione di ricerca

Read design/CesiumGuest.md, especially “The hard part: lag,” and inspect the guest rendering and camera update flow. First assess option A by running the Grand Canyon view with ?cesiumLag=1 on a real GPU and checking whether the terrain lag is visible in motion. Done means the lag’s visual effect is assessed; host reprojection is a separate phase with four design-listed portal changes.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

cesium track:platform

Lockstep (#310) keeps the guest's whole round trip on celestiary's frame. The overlap with celestiary's scene hides only about 0.5 ms: issuing the scene costs the CPU that much, and the camera's update (3.8 ms) must finish before the view can be posted. So on the M2 the guest costs 5.7 ms a frame against Cesium on the same page (27.8 fps vs 33.0 at the Grand Canyon view). Its slowest frames are still better (12.6 fps at p5 vs 10.5), because the meter stalls less.

Options (design/CesiumGuest.md, "The hard part: lag"):

  • A frame of lag, behind an option (?cesiumLag=1): draw the guest's last frame and post the next view without waiting. That hides the trip completely, but Cesium's terrain trails celestiary's shell, clouds and atmosphere by one frame while the camera moves. Check whether it shows in motion on a real GPU.
  • Host reprojection (phase 2, B): correct the guest's last frame to the current camera. That needs the four portal changes the design lists: which draws to correct, the guest's own projection, log depth, and the uncovered edges.

The perf hit isn't blocking: this is an open optimisation, after the guest's correctness gaps.

Lingua principale
JavaScript
Stelle
55
Fork
4
Merge medio
10h 12m
PR unite (30g)
134

Preparare l'ambiente

Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di celestiary/web

Tutte le issue di celestiary/web

Issue simili

Altre issue su JavaScript

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.