1.01k likes | 1.85k Views
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
E N D
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 • Further Research
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
Goal of Graphics Architecture • Programmable, • more effects • faster, • realistic • non-realistic
Contents • Goal of Computer Graphics Architecture • Parallel Graphics Architecture • AnyGL in Details • Conclusion • Further Research
Parallel Graphics Architecture • Development of Graphcis Architecure • Classification of Parallel Graphics Architecure • Hardware System • Software System • Scalability of Parallel Parallel Graphics Architecure
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
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
Parallel Graphics Architecture • Development of Graphcis Architecure • Sorting Classification of Parallel Graphics Architecure • Hardware System • Software System • Scalability of Parallel Parallel Graphics Architecure • Misc.
Sorting Classification • [S. Molnar et al. 1994] • sort-first • sort-middle • sort-last • [M. Eldridge 2000], Pomegranate • Transform & Lighting • Rasterization • Texture • Fragment • Display
Parallel Graphics Architecture • Development of Graphcis Architecure • Sorting Classification of Parallel Graphics Architecure • Hardware System • Software System • Scalability of Parallel Parallel Graphics Architecure
Hardware System of PGA • SGI Reality Engine • sort-middle • share bus, broadcast • every 2 scanlines one processor
Hardware System of PGA • PixelFlow • Sort-last • ring-net, compose image • SIMD is highly expolited • Pomegranate • 5 stages • 64 nodes
Hardware System of PGA • Evans & Sutherland Freedom 3000 • sort-last • Kubota Denali • sort-last • Sepia, Compaq Reserch 2000 • sort-last • ServerNet-II
Parallel Graphics Architecture • Development of Graphcis Architecure • Sorting Classification of Parallel Graphics Architecure • Hardware System • Software System • Scalability of Parallel Parallel Graphics Architecure • Misc.
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
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
Parallel Graphics Architecture • Development of Graphcis Architecure • Sorting Classification of Parallel Graphics Architecure • Hardware System • Software System • Scalability of Parallel Parallel Graphics Architecure • Misc.
Scalability of Parallel Parallel Graphics Architecure • 5 parameters, [Eldridge et al.2000] • triangle input rate • triangle rendering rate • texture size • pixel rate • display resolution
Contents • Goal of Computer Graphics Architecture • Parallel Graphics Architecture • AnyGL in Details • Conclusion • Further Research
AnyGL • Goal • Architecture • Classification of OpenGL Commands • State Tracking • Compression • Scalability • Parallel Graphics API
Goal of AnyGL • Hibrid Distributed Graphics System • sort-first • sort-last • Large scale • sort-first, new state tracking • sort-last, image compression • Good Scalability
AnyGL • Goal • Architecture • Command classification • Analysis of Dependency Relation • State Tracking • Compression • Scalability
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
Geometry Rendering Node • Capture opengl commands of application • Packet OpenGL commands • Computer State changes • Send OpenGL command packets
Geometry Rendering Node • Receive Packet • Check if context switch is needed • Context switch • Unpack the command packet • Send corlor & depth buffer to C-node
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
Display Node • Receive color and depth data from C-node • Assemble image for final display • Display the final image by CRT, Projector, LCD...
Logical Division of Command Buffer • Command buffer is divided into 2 parts • Command Code buffer • Parameter Buffer • Command Code buffer • ptr--; • Parameter Buffer • ptr++
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
Subdivision of glBegin-glEnd • 算法2.1 glBegin命令打包 • 设glBegin和glEnd匹配标示为布尔变量glBeginEnd,初始值为1; • 设glVertex指令计数器为vtxCount,初始值等于0; • 设nPrimtiveType位图元类型变量; • glBegin编码压入当前命令缓冲区头部; • glBegin参数(图元类型)添加到当前参数缓冲区; • glBeginEnd = 0; • nPrimitiveType = glBegin命令参数;
Subdivision of glBegin-glEnd • 算法2.2 glVertex*命令打包 • 将glVertex*编码压入当前命令缓冲区; • 参数添加到当前参数缓冲区; • if(glBeginEnd==1)vtxCount++,否则程序报告非法调用; • 算法2.3 glEnd函数命令打包 • 将glEnd编码压入当前命令缓冲区; • glBeginEnd=1; • vtxVount=0;
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指令及参数分别增加到新的命令缓冲区和参数缓冲区。
AnyGL • Goal • Architecture • Command classification • Analysis of Dependency Relation • State Tracking • Compression • Scalability
Command Classification • OpenGL 1.3 • 17 kinds • Four kinds in AnyGL • primitive commands • state commands • remote remapping commands • speical commands
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.
AnyGL • Goal • Architecture • Command classification • Analysis of Dependency Relation • State Tracking • Compression • Scalability
Analysis of Dependency Relation • OpenGL is client/server based state machine, its commands have serious order • See OpenGL 1.1 state machine
Analysis of Dependency Relation • Graphics Pipeline • Transformation • Lighting • Rasterization • Fragment • According to OpenGL 1.3 • 17 categories