Havok4/it

From Second Life Wiki
< Havok4
Revision as of 02:38, 15 February 2008 by SignpostMarv Martin (talk | contribs) (Havok 4/it moved to Havok4/it: oversight; other articles have no space between "Havok" and "4")
Jump to navigation Jump to search

Centro Informazioni sul nuovo motore fisico Havok4 in fase Beta Test

Introduzione

È in corso in Second Life la fase di beta test di Havok4. Questa pagina fornisce informazioni sul progetto, aiuteranno tutti ad assicurarsi che Havok4 sia stato testato per bene prima che sia attivato su tutta la rete Second Life.

Si prega di leggere la Havok4 Beta1 Release Notes

Cos'è Havok?

Il mondo virtuale Second Life è composto di molte parti che contribuiscono a tenerla in funzione. Uno di queste è il motore che simula la Fisica. Un motore fisico è un componente software specializzato che fa tutti i calcoli del "mondo reale" per capire cosa fare quando:

  • Qualcosa o qualcuno viene spinto
  • Qualcosa o qualcuno si scontra con qualcos'altro o qualcuno
  • Qualcosa o qualcuno è in movimento e sta ruotando
  • L'attrito rallenta il movimento di qualcosa o qualcuno

Havok è un motore fisico commerciale, e Second Life è stato costruito utilizzando Havok1. Con il quale ha funzionato per diversi anni.

Come faccio a partecipare alla fase di test per il motore fisico Havok4?

Puoi partecipare al Beta Test di Havok4 con pochi, semplici passaggi:

  1. Leggi "What's Changed With Havok4" per capire quali differenza dovrebbero esserci nel nuovo motore fisico, e quali sarebbe meglio non avere, testandole sulla griglia Havok4 Beta Test grid.
  2. Leggi "New Cfr Linkability Regole" per capire come funziona il linking tra prim in Havok4 (è molto migliorato e dovrebbe essere molto più affidabile!)
  3. Fa un login nella Public Issue Tracker su "Tracker" per vedere come è facile esporre i problemi riscontrati durante il beta test
  4. Scaricare il file per installare la Beta Havok4 Viewer qui

Cosa testare?

Assicurarsi che tutti i tuoi oggetti funzionino nella grid Havok4, e prova tutto quello che pensi possa avere a che fare con la fisica... Ecco una breve lista, e un link a una pagina con un elenco più esauriente di idee relative alla fisica degli oggetti:

  • Building, linking, unlinking
  • i veicoli
  • le armi
  • gli "incantesimi"
  • gli shields
  • gli strumenti di costruzione
  • il rezzing di grandi insiemi di prim
  • prova a costruire oggetti semplici e complessi, prendendoli poi in inventario per rezzarli in posti diversi e orientandoti diversamente
  • camminare, sedersi, volare, nuotare, e correre e tutti gli altri movimenti degli avatar funzionano come previsto?
  • gli script funzionano come previsto?
  • prova a creare nuovi script e modificarli
  • i permessi funzionano correttamente?
  • è possibile mandare in crash la sim facendo crashare il motore fisico? (Quelli di voi che sanno cosa significa ... "fatelo" e fate sapere come ...;)

Ci sono molte cose che puoi fare per testare Havok4 (una lista lunghissima di cose utili da provare. Sei libero di sceglierne una ma ancora meglio se provi cose nuove tue!

Come posso partecipare al test Havok4

  1. Partecipa agli incontri "Regular Havok4 Office Hours In-World"
  2. Comunicaci tutto quello che scopri usando il Public Issue Tracker su "Issue Tracker"

Segnala i bug trovati usando PROJECT "Second Life Service - SVC" e quando inserisci il bug scegliere aFFECTS VERSIONS "Havok4 Beta" and COMPONENTS "Physics" in questo modo troveremo subito le tue segnalazioni!

Come sarà testato e rilasciato Havok4

Questo progetto sostituisce un componente fondamentale di Second Life, ed essere certi che "tutto ciò che spinge, si scontra o ha inerzia" funzioni a dovere è un compito arduo. abbiamo già fatto un sacco di test interno, e corretto centinaia di bug. Ci saranno impegnati in un approccio graduale sia per accorgerci di molti problemi il prima possibile, sia per ridurre il rischio di problemi causati da Havok4 quando verrà rilasciato.

Fase 1 - Test interno sulla griglia non pubblica (FATTO!)
Abbiamo già completato questa fase, e il personale interno ha svolto tutta una serie di lavori sui simulatori abilitati con Havok4. Le funzioni di base sono state controllate, come pure sono state controllati e risolti i noti crash dati dal motore fisico nel simulatore.

Fase 2 - Public Beta Test su Beta Grid
Ci aspettiamo che la fase del beta test pubblico di Havok4 sia molto attiva, con molti partecipanti. abbiamo preparato una test grid, per permettere vari test relativi alla fisica. Il regioni di test comprendono:


NOTA: Il Public Beta viewer sarà configurato per accedere alla beta grid, che sarà una copia di una porzione della main rete e del vostro account utente. Si può fare "tutto ciò che si desidera" su questa rete senza rischiare di danneggiare il tuo "vero account" sulla griglia principale.

Fase 3 - Havok4 su un piccolo gruppo di regioni selezionate ( "SIAMO QUI!":)
In questa fase verranno utilizzati le nuove funzionalità di HetGrid per la distribuzione dei simulatori Havok4 su un piccolo numero di regioni della griglia principale. Questa continua ad essere una fase di test, e, per questa fase, i partecipanti devono ricordare che sono sulla griglia principale, lavorando con il tuo vero inventario (quindi attenzione, non rezzate oggetti non copiabili / non trasferibili per provare le sim Havok4 se non si è al corrente dei potenziali rischi)

Fase 4 - Rollout parziale sulla Main Grid (50-100 regioni)
A questo punto, avremo risolto le questioni in sospeso riscontrate durante il beta testing e durante la Fase 3 "la piccola distribuzione, in un angolo della griglia principale", per distribuire Havok4 a un sottoinsieme della griglia principale.

Dopo la raccolta di commenti e feedback, se tutto sembra andare bene, ma noi andremo avanti...

Fase 5 - Rollout totale di Havok4 sulla Main Grid (distribuzione alle resto della rete)
Se tutto va a dovere a questo punto, distruibuiremo il motore Havok4 su tutto il resto della griglia principale, e avremo il nuovo motore Havok4 in funzione dappertutto in Second Life.

Una nota storica: Perché per far funzionare Havok c'è voluto tanto tempo?

Alcuni di voi che girano da lungo tempo si sa che abbiamo cominciato a parlare della sostituzione di Havok1 molto tempo fa, che sembrava di aver abbandonato questo progetto e, infine, che tutto fosse finito nel silenzio. Dopo diverse false partenze, abbiamo deciso che sarebbe stato meglio smettere di parlare di questo lavoro, o di rendere pubblici gli impegni, fino a quando non fossimo molto più vicini alla meta, e noi crediamo che finalmente siamo giunti a questo punto.

Per un po' di tempo abbiamo lavorato per sostituire Havok1 con Havok2. Dopo aver lavorato su questo progetto, ci siamo resi conto che era davvero necessario rielaborare le interfacce che integrano Havok in Second Life. Ci siamo resi conto che avevamo bisogno di definire un livello di astrazione - uno strato di codice che rendesse più facile poter modificare e migrare il motore fisico, ridurre lo sforzo e per consentire una maggiore flessibilità in futuro. a questo punto Havok4 è risultato la scelta più ragionevole piuttosto che basarsi sulla precedente release ... e per questo motivo abbiamo fissato come obiettivo l'adozione di Havok4. Questo progetto è stato significativamente più grande di quanto noi potessimo prevedere, ma la buona notizia è che ora siamo qui, pronti per il beta testing, e pronti a risolvere gli ultimi problemi prima di portare Havok4 sulle sim della griglia principale!

Nuova esperienze che sono normali

Eiezione e separazione degli oggetti che si compenetrano

Uno dei maggiori miglioramenti rispetto al precedente motore Havok è che Havok4 supporta la separazione degli oggetti che si compenetrano. Per esempio un cubo, che è conficcato nel terreno e viene trasformato in oggetto fisico cercherà di uscirne, fino a quando non si sarà separato dalla terra e da quel momento si poggerà sul terreno.

Il motore precedente non gestiva gli oggetti compenetranti molto bene. andava in un loop per una elaborazione ricorsiva conosciuta come "Deep Think", una condizione in cui il motore cercava di stabilire dove spostare gli oggetti per evitare la sovrapposizione, causando un gran uso di risorse da parte del simulatore che appariva reagire lentamente per altre richieste.

Il nuovo motore separa gli oggetti che si sovrappongono in modo rapido e semplice. Gli oggetti sono trattati come molle compresse, in modo che maggiore è la interpenetrazione maggiore è la forza di espulsione sull'oggetto. Il risolutore dell'interpenetrazione tenta di obbedire ai vincoli di movimento per evitare di essere espulsi per esempio attraverso delle mura che racchiudono un oggetto, ma cercherà qualunque apertura o spazio disponibile dove dirigere l'oggetto.

Ecco un video di Google che mostra un esempio estremo di come il resolver della compenetrazione opera. Una pila di circa 200 dischi di grandi dimensioni spessi circa mezzo metro si sovrappongono in un pila di circa 10 metri di altezza, il tutto racchiuso all'interno di un grande tubo cavo. Quando questo oggetto viene rezzato sul terreno e trasformato in fisico, i dischi vengono espulsi verso l'alto e fuori verso la parte superiore del tubo, con alcuni dischi che raggiungono più di 300 metri di altezza per la forza repulsiva impressa dal risoluzione. Nessuna spinta viene applicata sui dischi via script o per push. Il movimento è dato esclusivamente dalla compenetrazione e dai dai calcoli del risolutore.

Google Video: Second Life Havok 4 - Exploding Can of Disks

http://video.google.com/videoplay?docid=-2623683631644524154

Lag del simulatore per enormi mucchi di oggetti impilati

Anche se si tratta di una nuovo e migliore motore fisico che non dovrebbe bloccarsi così frequentemente come il motore originale Havok-1, ci sono volte in cui anche il nuovo simulatore causa un grande lag quando sono presenti un gran numero oggetti fisici che si toccano fra loro.

Questo ritardo non è un bug, e non è come la vecchia condizione chiamata "Deep Think" di Havok-1, ma è dovuto ad una limitazione intrinseca nel modo in cui i motori fisici lavorano. Questo problema colpiva anche Havok-1, ma non era così evidente, dal momento che spesso grandi cataste crashavano il simulatore prima che questa condizione potesse diventare evidente.

Normalmente, quando oggetti fisici rallentano il simulatore oltre una certa soglia critica, per un periodo di tempo il motore mette in pausa le elaborazioni per la fisica dell'oggetto, in modo da risparmiare tempo CPU per altri oggetti attivi.

Per poter risolvere l'elaborazione degli oggetti fisici, l'oggetto deve essere in contatto con un oggetto di riferimento non in movimento. Una barra fisica si ferma dopo aver toccato il suolo.

Ma per più oggetti fisici impilati l'uno sull'altro, è difficile che raggiungano la stabilità, perché uno o più oggetti in movimento possono toccare quelli che si stanno stabilizzando. Questo leggero movimento rimette in moto anche quegli oggetti che si erano fermati, creando come un onda che attraversa la pila di oggetti. Quest'onda si trasmette costantemente attraverso la pila con il risultato che nessuno oggetto si assesti mai del tutto. Questa costante movimento e vibrazioni è simile al concetto fisico del moto browniano delle molecole di un gas.

L'esempio su Google Video del lag generato in un simulatore da 565 sfere fisiche poste in un contenitore:

http://video.google.com/videoplay?docid=7316931483709158462

Questo lag del motore non dipende dalle dimensioni degli oggetti coinvolti. Una raccolta di 500 oggetti molto piccoli impilati può causare lo stesso ritardo di 500 oggetti grandi accatastati.

Migliaia di oggetti che non si toccano non causano lag

Il simulatore di Havok-4 funziona a pieno ritmo, se non vi è abbastanza spazio tra oggetti fisici fa in modo da ridurre il più possibile le collisioni ravvicinate tra loro.

Ci possono essere migliaia di oggetti fisici in un simulatore creare alcun ritardo, a patto che gli oggetti si tocchino il meno possibile l'uno con l'altro.

Il seguente video su google presenta 2000-3400 cubetti fisici in una sandbox, senza ritardo:

http://video.google.com/videoplay?docid=-2779779276874540721