3D渲染管线的概述
2010-04-14 10:09
344 查看
渲染管线简介:是用来创建一个几何描述3D世界的2D图像,和一个确定这个3D世界中哪一部分将被透视投影到屏幕上的虚拟摄像机。
作用:将3D场景用几何学表现出来以及用它来产生2D图像。
简化的渲染管线流程:
参考《3D游戏编程基础(DirectX9.0)》
详细图像管线流程:
伪代码描述:
作用:将3D场景用几何学表现出来以及用它来产生2D图像。
简化的渲染管线流程:
参考《3D游戏编程基础(DirectX9.0)》
详细图像管线流程:
伪代码描述:
// 首先,设置观察场景的方式 setupTheCamera(); // 清楚z-缓冲 clearZBuffer(); // 设置环境光源和雾化 setGlobalLightingAndFog(); // 得到可见物体列表 potentiallyVisibleObjectList = highLevelVisibilityDetermination(scene); // 渲染它们 for (all objects in potentiallyVisibleObjectList) { // 使用包围体方法执行低级别VSD检测 if (!object.isBoundingVolumeVisible()) continue; // 提取或者渐进式生成几何体 triMesh = object.getGeometry(); // 裁剪和渲染面 for (each triangle in the geometry) { // 变换顶点到裁剪空间,执行顶点级别光照 clipSpaceTriangle = transformAndLighting(triangle); // 三角形为背向的? if (clipSpaceTriangle.isBackFacing()) continue; // 对视锥裁剪三角形 clippedTriangle = clipToViewVolume(clipSpaceTriangle); if (clippedTriangle.isEmpty()) continue; // 三角形投影至屏幕空间,并且光栅化 clippedTriangle.projectToScreenSpace(); for (each pixel in the triangle) { // 插值颜色,z-缓冲值和纹理映射坐标 // 执行zbuffering和alpha检测 if (!zbufferTest()) continue; if (!alphaTest()) continue; // 像素着色 color = shadePixel(); // 写内容到帧缓冲和z-缓冲 writePixel(color, interpolatedZ); } } }
参考《3D数学基础》
相关文章推荐
- OpenGL ES渲染管线概述(一)
- 【西川善司】3D图形的概念和渲染管线(5回完)
- GPU渲染管线概述
- 3D图形渲染管线 (转)
- GPU渲染管线概述
- GPU渲染管线概述
- GPU渲染管线概述
- 3D图形渲染管线【转】
- 3D图形渲染管线
- 【D3D11游戏编程】学习笔记七:3D渲染管线
- 3D渲染管线基本的流程及其流程图
- GPU渲染管线概述
- Introduction to 3D Game Programming with DirectX 11学习笔记 5 渲染管线(一)
- GPU渲染管线概述
- 3D图形渲染管线
- OpenGL渲染管线---概述(一)
- Direct 3D绘制流水线(渲染管线)
- (转)【D3D11游戏编程】学习笔记七:3D渲染管线
- 【翻译】【西川善司】3D图形的概念和渲染管线(5回完)
- GPU渲染管线概述