1 / 98

AnyGL: A Large Scale Hybrid Distributed Graphics System

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. Contents. Goal of Computer Graphics Architecture Parallel Graphics Architecture AnyGL in Details Conclusion

benjamin
Download Presentation

AnyGL: A Large Scale Hybrid Distributed Graphics System

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

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

More Related