SlideShare a Scribd company logo
http://software.intel.com/en-us/articles/multithreading-the-rendering-pipeline-for-3d-
model-animation/
重點整理
王聖川
2011/9/29
 Multithreading solution to accelerate rendering
for animated 3D models.
 Relevant techniques :
 Level of detail of mesh and skeleton.
 SIMD extension instruction.
 GPU based (vertex shader) calculation – models are
offloaded to video memory.
 Skeleton animation – bone structure and pose
transform.
 Animate bone to animate model – vertices are
influenced by parent bones (maybe > 1).
 Animation pipeline has massive matrix
calculations.
 Bone positioning (transforms), vertex positioning
(skinning).
 Animated models are independent.
 Not all models have to be updated for
animation every frame.
 Intermittently update reduces bus traffic, improves
parallelism between CPU and GPU, and void
redundant calculations.
 Modules: thread pool, double buffering, main
thread (rendering call).
 Send the model to be animated into the pool
for multi-threading.
 Store number of models in the thread pool,
g_iNumModelsInPool, accessed by the main thread.
 If g_iNumModelsInPool = 0, models are completely
animation updated and ready for drawing.
 Allow simultaneous skinning and rendering.
 Each model is given two buffers for skinning.
 Read buffer with ready data for main thread to draw.
 Write buffer with next frame data written by the
animation thread.
 Lifetime for each buffer, avoid unready or too old
skinning data.
 Animation thread accesses valid skinned data in
the read buffer for other parallelism (collision …).
 Bus bandwidth for uploading data to video
memory is a bottleneck.
 Update interval of frames, g_iUpdateInterval,
controls the frequency of animation updates.
 Lower interval yields more frequent (smooth)
animation and more computations.
 Higher interval yield less frequent (slower)
animation and less computations.
 Data do not have to be uploaded to video memory
every frame.
 Bones compose the skeleton. Mesh (vertices)
attached to bones compose the skinned model.
 Vertex positions are relative to its parent bones
with weights.
 See red vertex in the following figure.

More Related Content

PPT
Gpu and The Brick Wall
PPTX
Nvidia (History, GPU Architecture and New Pascal Architecture)
PDF
Comparison of ezw and h.264 2
PDF
Open power ddl and lms
PDF
Actors, a Unifying Pattern for Scalable Concurrency | C4 2006
PPTX
SF Big Analytics 2022-03-15: Persia: Scaling DL Based Recommenders up to 100 ...
PDF
AMulti-coreSoftwareHardwareCo-DebugPlatform_Final
PPT
Massively Parallel Architectures
Gpu and The Brick Wall
Nvidia (History, GPU Architecture and New Pascal Architecture)
Comparison of ezw and h.264 2
Open power ddl and lms
Actors, a Unifying Pattern for Scalable Concurrency | C4 2006
SF Big Analytics 2022-03-15: Persia: Scaling DL Based Recommenders up to 100 ...
AMulti-coreSoftwareHardwareCo-DebugPlatform_Final
Massively Parallel Architectures

Similar to Gamedev: Multi-threaded animate model (20)

PPT
Multi Processor Architecture for image processing
PDF
High Performance Medical Reconstruction Using Stream Programming Paradigms
DOCX
video comparison
PPTX
FGS 2011: Making A Game With Molehill: Zombie Tycoon
PDF
SPARSE STORAGE RECOMMENDATION SYSTEM FOR SPARSE MATRIX VECTOR MULTIPLICATION ...
PDF
Ijaret 06 07_003
PPTX
IBM AI at Scale
PDF
iPhone Architecture - Review
PDF
The Basics of Cell Computing Technology
PDF
Comparison of different Fingerprint Compression Techniques
PDF
Chrome server2 print_http_www_uni_mannheim_de_acm97_papers_soderquist_m_13736...
PDF
Accelerating Real Time Applications on Heterogeneous Platforms
PDF
A Platform for Accelerating Machine Learning Applications
PPT
Threading Successes 06 Allegorithmic
PDF
Efficient Architecture for Variable Block Size Motion Estimation in H.264/AVC
PDF
Cache performance-x86-2009
PDF
The Best Programming Practice for Cell/B.E.
PPT
Visualization of large FEM meshes
PDF
Introducing Parallel Pixie Dust
PDF
Multiple Cores, Multiple Pipes, Multiple Threads – Do we have more Parallelis...
Multi Processor Architecture for image processing
High Performance Medical Reconstruction Using Stream Programming Paradigms
video comparison
FGS 2011: Making A Game With Molehill: Zombie Tycoon
SPARSE STORAGE RECOMMENDATION SYSTEM FOR SPARSE MATRIX VECTOR MULTIPLICATION ...
Ijaret 06 07_003
IBM AI at Scale
iPhone Architecture - Review
The Basics of Cell Computing Technology
Comparison of different Fingerprint Compression Techniques
Chrome server2 print_http_www_uni_mannheim_de_acm97_papers_soderquist_m_13736...
Accelerating Real Time Applications on Heterogeneous Platforms
A Platform for Accelerating Machine Learning Applications
Threading Successes 06 Allegorithmic
Efficient Architecture for Variable Block Size Motion Estimation in H.264/AVC
Cache performance-x86-2009
The Best Programming Practice for Cell/B.E.
Visualization of large FEM meshes
Introducing Parallel Pixie Dust
Multiple Cores, Multiple Pipes, Multiple Threads – Do we have more Parallelis...
Ad

More from River Wang (20)

PPTX
FairyGUISDK_UIPackage_Analysis.pptx
PPTX
20220529_UniTask_Intro.pptx
PPTX
zenject extenject-intro
PPTX
Unity optimize mobile game performance
PPTX
DoozyUI_基礎介紹教學
PDF
桌面應用工具軟體開發方案評估 (Based on Unity engine)
PPTX
OGRE v2.1 manual - Technical Overview
PPTX
OGRE v2.1 manual - Changes: Objects, Scene & Nodes
PPTX
OGRE v1.10 manual - The Core Objects
PPTX
OpenCascade Technology Overview: Modeling Data
PPTX
OpenCascade Technology Overview: OCAF
DOCX
[breakdown] Shadow of the Colossus. (Chinese translation中譯)
PPTX
OpenCascade Technology Overview: Visualization
PPTX
OpenCascade Technology Overview: Foundation Classes
DOCX
2017 graphics-01: 電腦圖學繪圖流程
PPTX
2017 unity5.5 manual_navigation
PPTX
2017 unity5.5 manual_physics
PPTX
2017 unity5.5 manual_animation
DOCX
Shader forge設定說明文件
DOCX
矩陣 轉換
FairyGUISDK_UIPackage_Analysis.pptx
20220529_UniTask_Intro.pptx
zenject extenject-intro
Unity optimize mobile game performance
DoozyUI_基礎介紹教學
桌面應用工具軟體開發方案評估 (Based on Unity engine)
OGRE v2.1 manual - Technical Overview
OGRE v2.1 manual - Changes: Objects, Scene & Nodes
OGRE v1.10 manual - The Core Objects
OpenCascade Technology Overview: Modeling Data
OpenCascade Technology Overview: OCAF
[breakdown] Shadow of the Colossus. (Chinese translation中譯)
OpenCascade Technology Overview: Visualization
OpenCascade Technology Overview: Foundation Classes
2017 graphics-01: 電腦圖學繪圖流程
2017 unity5.5 manual_navigation
2017 unity5.5 manual_physics
2017 unity5.5 manual_animation
Shader forge設定說明文件
矩陣 轉換
Ad

Recently uploaded (20)

PDF
Softaken Excel to vCard Converter Software.pdf
PDF
Adobe Premiere Pro 2025 (v24.5.0.057) Crack free
PPTX
L1 - Introduction to python Backend.pptx
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
PPTX
Computer Software and OS of computer science of grade 11.pptx
PDF
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
PDF
Navsoft: AI-Powered Business Solutions & Custom Software Development
PPTX
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
PDF
Upgrade and Innovation Strategies for SAP ERP Customers
PDF
EN-Survey-Report-SAP-LeanIX-EA-Insights-2025.pdf
PDF
Adobe Illustrator 28.6 Crack My Vision of Vector Design
PDF
2025 Textile ERP Trends: SAP, Odoo & Oracle
PPTX
Introduction to Artificial Intelligence
PDF
Design an Analysis of Algorithms I-SECS-1021-03
PDF
Digital Systems & Binary Numbers (comprehensive )
PPTX
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
PDF
Nekopoi APK 2025 free lastest update
PDF
medical staffing services at VALiNTRY
PPTX
CHAPTER 2 - PM Management and IT Context
PPTX
ai tools demonstartion for schools and inter college
Softaken Excel to vCard Converter Software.pdf
Adobe Premiere Pro 2025 (v24.5.0.057) Crack free
L1 - Introduction to python Backend.pptx
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
Computer Software and OS of computer science of grade 11.pptx
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
Navsoft: AI-Powered Business Solutions & Custom Software Development
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
Upgrade and Innovation Strategies for SAP ERP Customers
EN-Survey-Report-SAP-LeanIX-EA-Insights-2025.pdf
Adobe Illustrator 28.6 Crack My Vision of Vector Design
2025 Textile ERP Trends: SAP, Odoo & Oracle
Introduction to Artificial Intelligence
Design an Analysis of Algorithms I-SECS-1021-03
Digital Systems & Binary Numbers (comprehensive )
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
Nekopoi APK 2025 free lastest update
medical staffing services at VALiNTRY
CHAPTER 2 - PM Management and IT Context
ai tools demonstartion for schools and inter college

Gamedev: Multi-threaded animate model

  • 2.  Multithreading solution to accelerate rendering for animated 3D models.  Relevant techniques :  Level of detail of mesh and skeleton.  SIMD extension instruction.  GPU based (vertex shader) calculation – models are offloaded to video memory.  Skeleton animation – bone structure and pose transform.  Animate bone to animate model – vertices are influenced by parent bones (maybe > 1).
  • 3.  Animation pipeline has massive matrix calculations.  Bone positioning (transforms), vertex positioning (skinning).  Animated models are independent.  Not all models have to be updated for animation every frame.  Intermittently update reduces bus traffic, improves parallelism between CPU and GPU, and void redundant calculations.
  • 4.  Modules: thread pool, double buffering, main thread (rendering call).
  • 5.  Send the model to be animated into the pool for multi-threading.  Store number of models in the thread pool, g_iNumModelsInPool, accessed by the main thread.  If g_iNumModelsInPool = 0, models are completely animation updated and ready for drawing.
  • 6.  Allow simultaneous skinning and rendering.  Each model is given two buffers for skinning.  Read buffer with ready data for main thread to draw.  Write buffer with next frame data written by the animation thread.  Lifetime for each buffer, avoid unready or too old skinning data.  Animation thread accesses valid skinned data in the read buffer for other parallelism (collision …).
  • 7.  Bus bandwidth for uploading data to video memory is a bottleneck.  Update interval of frames, g_iUpdateInterval, controls the frequency of animation updates.  Lower interval yields more frequent (smooth) animation and more computations.  Higher interval yield less frequent (slower) animation and less computations.  Data do not have to be uploaded to video memory every frame.
  • 8.  Bones compose the skeleton. Mesh (vertices) attached to bones compose the skinned model.  Vertex positions are relative to its parent bones with weights.  See red vertex in the following figure.