AnyGL: A Large Scale Hybrid Distributed Graphics System - PowerPoint PPT Presentation

benjamin
anygl a large scale hybrid distributed graphics system n.
Skip this Video
Loading SlideShow in 5 Seconds..
AnyGL: A Large Scale Hybrid Distributed Graphics System PowerPoint Presentation
Download Presentation
AnyGL: A Large Scale Hybrid Distributed Graphics System

play fullscreen
1 / 98
Download Presentation
AnyGL: A Large Scale Hybrid Distributed Graphics System
758 Views
Download Presentation

AnyGL: A Large Scale Hybrid Distributed Graphics System

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  1. AnyGL: A Large Scale Hybrid Distributed Graphics System Ph.D Candidate: Yang Jian(杨建) Supervisor: Jiaoying Shi(石教英) State Key Lab of CAD&CG, Zhejiang Univ. 2002

  2. Contents • Goal of Computer Graphics Architecture • Parallel Graphics Architecture • AnyGL in Details • Conclusion • Further Research

  3. Goal of Graphics Architecture • Real-time • Triangle rendering capacity • Rasterization rate • Texture size • Display Resolution • Realistic • Local illumination, Gouraud, Phong • Global illumination, ray-trace, ray-casting, Radiosity

  4. Goal of Graphics Architecture • Programmable, • more effects • faster, • realistic • non-realistic

  5. Contents • Goal of Computer Graphics Architecture • Parallel Graphics Architecture • AnyGL in Details • Conclusion • Further Research

  6. Parallel Graphics Architecture • Development of Graphcis Architecure • Classification of Parallel Graphics Architecure • Hardware System • Software System • Scalability of Parallel Parallel Graphics Architecure

  7. Development of Graphics Architecture • 1rd Generantion, 1975~ 1985, • Geometry transfromation, clip, render objects based on wire frame • 2rd Generation, mid 1985~ 1990’ • Video memory, depth buffer, back face cull, • gouraud rendering • 3rd Generation, 1990‘ ~ 2000’s • Texture Mapping • anti-alias, mutlis-sample

  8. Development of Graphics Architecture • 4th Generation,1997~ • Local illumination • Hardware lighting, complex texture mapping(bump , compressed, 2000 • SIMD, 2001 • Programmable processor, 2001 • More programmable processors, 2002 • 5th Generations, 2005? • Global illumination

  9. Parallel Graphics Architecture • Development of Graphcis Architecure • Sorting Classification of Parallel Graphics Architecure • Hardware System • Software System • Scalability of Parallel Parallel Graphics Architecure • Misc.

  10. Sorting Classification • [S. Molnar et al. 1994] • sort-first • sort-middle • sort-last • [M. Eldridge 2000], Pomegranate • Transform & Lighting • Rasterization • Texture • Fragment • Display

  11. Typical Graphics Pipeline

  12. sort-first

  13. sort-middle

  14. sort-last

  15. Parallel Graphics Architecture • Development of Graphcis Architecure • Sorting Classification of Parallel Graphics Architecure • Hardware System • Software System • Scalability of Parallel Parallel Graphics Architecure

  16. Hardware System of PGA • SGI Reality Engine • sort-middle • share bus, broadcast • every 2 scanlines one processor

  17. SGI Reality Engine

  18. Hardware System of PGA • PixelFlow • Sort-last • ring-net, compose image • SIMD is highly expolited • Pomegranate • 5 stages • 64 nodes

  19. Pomegranate

  20. Hardware System of PGA • Evans & Sutherland Freedom 3000 • sort-last • Kubota Denali • sort-last • Sepia, Compaq Reserch 2000 • sort-last • ServerNet-II

  21. Parallel Graphics Architecture • Development of Graphcis Architecure • Sorting Classification of Parallel Graphics Architecure • Hardware System • Software System • Scalability of Parallel Parallel Graphics Architecure • Misc.

  22. Sortware System • GLR • Client/Server • GLX, X Windows • Princeton Multi-projector System • sort-first • one node distriutes commands • 8 nodes receive and render commands • Parallel Mesa • sort-last • binary swapping, parallel pipeline compositing

  23. Sortware System • WireGL • sort-first • state tracking and state switch, dirty-bits, Lazy-update • 3 kinds of OpenGL commands • 16 clients + 16 servers • Lightning-2 assembles images

  24. WireGL(Chromium)

  25. Parallel Graphics Architecture • Development of Graphcis Architecure • Sorting Classification of Parallel Graphics Architecure • Hardware System • Software System • Scalability of Parallel Parallel Graphics Architecure • Misc.

  26. Scalability of Parallel Parallel Graphics Architecure • 5 parameters, [Eldridge et al.2000] • triangle input rate • triangle rendering rate • texture size • pixel rate • display resolution

  27. Contents • Goal of Computer Graphics Architecture • Parallel Graphics Architecture • AnyGL in Details • Conclusion • Further Research

  28. AnyGL • Goal • Architecture • Classification of OpenGL Commands • State Tracking • Compression • Scalability • Parallel Graphics API

  29. Goal of AnyGL • Hibrid Distributed Graphics System • sort-first • sort-last • Large scale • sort-first, new state tracking • sort-last, image compression • Good Scalability

  30. AnyGL • Goal • Architecture • Command classification • Analysis of Dependency Relation • State Tracking • Compression • Scalability

  31. Architecture of AnyGL • 4 kinds of Nodes • Geometry Distributing Node ( G-node ) • Goemetry Rendering None ( R-node ) • Image Composite Node ( C-node ) • Display Node ( D-node ) • Sort-first • G-node, R-node • Sort-Last • C-node, D-node

  32. Architecture of AnyGL

  33. Geometry Rendering Node • Capture opengl commands of application • Packet OpenGL commands • Computer State changes • Send OpenGL command packets

  34. Geometry Rendering Node • Receive Packet • Check if context switch is needed • Context switch • Unpack the command packet • Send corlor & depth buffer to C-node

  35. Image Composite Node • Receive color and depth data from R-nodes • If they are compressed, decompress them. • Compose the received data • Send composed color and depth buffer to D-nodes

  36. Display Node • Receive color and depth data from C-node • Assemble image for final display • Display the final image by CRT, Projector, LCD...

  37. Logical Division of Command Buffer • Command buffer is divided into 2 parts • Command Code buffer • Parameter Buffer • Command Code buffer • ptr--; • Parameter Buffer • ptr++

  38. Command Packet Structure

  39. Subdivision of glBegin-glEnd • Condition • lots of commands appear between a pair of glBegin-glEnd • The command buffer or parameter is full, while glBegin does not meet the corresponding glEnd • Requirement • Make sure that glBegin and glEnd are matched in each packet • Maitain completeness of primitive

  40. Subdivision of glBegin-glEnd • 算法2.1 glBegin命令打包 • 设glBegin和glEnd匹配标示为布尔变量glBeginEnd,初始值为1; • 设glVertex指令计数器为vtxCount,初始值等于0; • 设nPrimtiveType位图元类型变量; • glBegin编码压入当前命令缓冲区头部; • glBegin参数(图元类型)添加到当前参数缓冲区; • glBeginEnd = 0; • nPrimitiveType = glBegin命令参数;

  41. Subdivision of glBegin-glEnd • 算法2.2 glVertex*命令打包 • 将glVertex*编码压入当前命令缓冲区; • 参数添加到当前参数缓冲区; • if(glBeginEnd==1)vtxCount++,否则程序报告非法调用; • 算法2.3 glEnd函数命令打包 • 将glEnd编码压入当前命令缓冲区; • glBeginEnd=1; • vtxVount=0;

  42. Subdivision of glBegin-glEnd • 算法2.4大几何图元指令组OpenGL指令的分割算法 • if (glBeginEnd) then 返回,否则执行下面的步骤; • if(vtxCount ==0 )返回; • 计算需要回溯的图元数目为vtxBackdate; • 如果图元类型为GL_TRIANGLES_FAN或者GL_POLYGON,需要回溯第一个顶点数据,bRecoverFirst=1; • 将glEnd命令打包当前命令缓冲区; • 生成一个新的缓冲区; • 调用glBegin指令; • if(bRecoverFirst == 1); • { • 回溯并执行最近的一次glBegin指令调用; • 将其后的指令到第一个glVertex*命令加入新的缓冲区; • } • 搜索vBackdate次glVertex*指令调用; • 将其后顺序调用的所有OpenGL指令及参数分别增加到新的命令缓冲区和参数缓冲区。

  43. AnyGL • Goal • Architecture • Command classification • Analysis of Dependency Relation • State Tracking • Compression • Scalability

  44. Command Classification • OpenGL 1.3 • 17 kinds • Four kinds in AnyGL • primitive commands • state commands • remote remapping commands • speical commands

  45. Remote Mapping Commands • G-nodes send textures to R-nodes • R-nodes receive textures from G-nodes • For R-nodes • textures with same texture ID may reresent different textures, since they come from different textures • textures with different texture IDs maybe same texture.

  46. AnyGL • Goal • Architecture • Command classification • Analysis of Dependency Relation • State Tracking • Compression • Scalability

  47. Analysis of Dependency Relation • OpenGL is client/server based state machine, its commands have serious order • See OpenGL 1.1 state machine

  48. Analysis of Dependency Relation • Graphics Pipeline • Transformation • Lighting • Rasterization • Fragment • According to OpenGL 1.3 • 17 categories