Assets and Dynamics Computation for Virtual Worlds.

14
Assets and Dynamics Computation for Virtual Worlds
  • date post

    21-Dec-2015
  • Category

    Documents

  • view

    220
  • download

    1

Transcript of Assets and Dynamics Computation for Virtual Worlds.

Page 1: Assets and Dynamics Computation for Virtual Worlds.

Assets and Dynamics Computation for Virtual

Worlds

Assets and Dynamics Computation for Virtual

Worlds

Page 2: Assets and Dynamics Computation for Virtual Worlds.

Scalable City Architecture

• The Scalable City project has required larger, more interactive environments than previously practical.

• Its development has resulted in many novel techniques.

Page 3: Assets and Dynamics Computation for Virtual Worlds.

Overview of Dynamics

• Scalable City software built to handle large, temporally coherent environments efficiently.

– Incremental processing methods

– Minimize required work

• Example: Physics performance

– Resting objects do not affect run-time

– Overhead proportional to level of activity, rather than environment scale

Page 4: Assets and Dynamics Computation for Virtual Worlds.

Spatial Proximity Determination• Sweep and Prune: O(un⅔ + (i + r)n + e + o)

Page 5: Assets and Dynamics Computation for Virtual Worlds.

Spatial Proximity Determination

• Hybrid S&P: O(u + (i + r) + e)

Page 6: Assets and Dynamics Computation for Virtual Worlds.

Incremental Physics Pipeline

• Novel method for processing resting bodies and potential activations caused by collisions.

• Again, asymptotically superior performance.

Page 7: Assets and Dynamics Computation for Virtual Worlds.

Incremental Physics Pipeline

Increasing bodies at rest (not being interacted with) in the simulation

Page 8: Assets and Dynamics Computation for Virtual Worlds.

Parallelizing Physics

• Multi-threaded physics engine• Parallelized traditional physics engine

components without altering algorithms

Page 9: Assets and Dynamics Computation for Virtual Worlds.

Client/Server Data Synchronization

• Due to high interactive object count, determining minimum data set to synchronize a client is challenging.

• What we could not do due to performance constraints:– Clients could not retain knowledge of all objects– Server could not traverse object set for sake of

client updates– Server could not efficiently track client knowledge

Page 10: Assets and Dynamics Computation for Virtual Worlds.

Client/Server Data Synchronization• Our solution utilized:

– Spatial proximity detector producing player/object mapping to zones.

– Each state change associated with a rule that determined the set of clients to update without explicit object-level knowledge of client state.

– All events placed in order-dependent queue with common format.

• Result: No measurable overhead for synchronization.

Page 11: Assets and Dynamics Computation for Virtual Worlds.

Rendering Optimizations

• Roads and fences consist of many simple objects that require animation.– Drawing many simple objects is sub-optimal.– Animation updates constrain solutions

• New system treats all roads in a city as a single, large mesh with subset of vertices animating– Single draw call, geometry retained on GPU

Page 12: Assets and Dynamics Computation for Virtual Worlds.

Example: Rendering Optimizations

• We mirror vertices in CPU memory and transfer changes to GPU each cycle.

• Transferring updates to GPU has trade-offs

– Each operation incurs an overhead that is a “constant plus bytes” transferred.

– Optimal for full update is a single, continuous transfer.

– Optimal when no updates are necessary is “do nothing”!

– Our case is an unknown subset of updates requiring transfer.

CPU Buffer

GPU Buffer

Page 13: Assets and Dynamics Computation for Virtual Worlds.

Example: Rendering Optimizations• Goals:

– Ideal performance on full updates

– Ideal performance on few updates

– “Graceful degradation” in between

• Set of updates will have clusters

– Many associated vertices animating together

• We want to minimize cost of updating GPU

– Divide-and-conquer algorithm

Page 14: Assets and Dynamics Computation for Virtual Worlds.

Example: Rendering Optimizations

• Accumulate update positions into ranges:– if # updates significant % of range

• transfer whole range

– else• split ranges on largest gap and recursively call for both sides

• Algorithm provides good performance for conditions in which there’s a trade-off between transferring contiguous bytes and limiting total data transferred.

CPU Buffer

GPU Buffer