首页 > 代码库 > 【图形学】图形管道

【图形学】图形管道

  多数渲染系统有极大的共性,图形管道伪代码可以说明带有光照的单个图象的渲染过程,这样会对渲染过程有一个整体认识。

图形管道伪代码  

 1 //设置场景:渲染的出发点——视点,输出——视图,设置光照和雾化 2 //设置观察场景的方式——摄像机 3 setupTheCamera(); 4 //清除深度缓冲 5 clearZBuffer(); 6 //设置光源和雾化 7 setGlobalLightingAndFog(); 8 //得到可见物体列表 9 visibleObjList = visibleDetermination(scene);10 //开始渲染11 for (obj in visibleObjList) {12     //使用包围体执行VSD检测13     if (!obj.isBoundingVisible()) continue;14     trimesh = obj.getGeometry();15     for (triangle in trimesh){16         //变换顶点到裁剪空间,执行顶点级别光照17         clipSpaceTriangle = transformAndLighting(triangle);18         //背面剔除19         if (clipSpaceTriangle.isBackFacing()) continue;20         //视锥体裁剪21         clippedTriangle = clipToViewVolume(clipSpaceTriangle);22         if (clippedTriangle.isEmpty()) continue;23         //三角形投影至屏幕坐标,并且光栅化24         clippedTriangle.projectToScreenSpace();25         for (pixel in triangle) {26             //插值颜色,z-Buffer和纹理纹理映射坐标27             //执行z-Buffer和alpha检测28             if (!zbufferTest()) continue;29             if (!alphaTest()) continue;30             //像素着色31             color = shadePixel();32             //写内容到帧缓冲区33             writePixel(color, interpolatedZ);34         }35     }    36 }