查看: 6288|回复: 12

GLSL教程(1) 渲染管线概论

[复制链接]
  • TA的每日心情
    开心
    2019-11-11 10:36
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2009-6-1 22:36:43 | 显示全部楼层 |阅读模式
    本文是译作,大家也可能多次看过本文。在看本文之前我先大概讲一下文中的主旨:根据顶点变换和顶点之间的关联以及顶点的属性插值得到片元,片元包含纹理信息和着色信息,片元是经过插值形成的,插值形成片元阶段是无法操作帧缓存区的,后面的光栅化阶段利用一系列的测试手段最终得到顶点的颜色值。

    shader就是操作上面的大字粗体的部分。

    如果理解了上面的话就需要看此文了,但是事实上很多老手也没有完全理解。

    GLSL 教程

    译:FreeSouth
    渲染管线概述

    下图是一个说明渲染管线各阶段以及各阶段数据流程的简图,虽然只是简图,但是shader程序的许多思想与原理包含其中。本节将描述渲染管线的基本流程。注意:并不是所有的图像渲染都严格的遵照该模式。

    顶点变换(Vertex Transformation)
    这个阶段的输入信息是顶点的诸多属性。顶点包含很多的属性,僻如在空间中的位置、颜色、法线、纹理坐标等等,顶点变换阶段针对单个顶点进行一些固定的操作序列来表现顶点的这些属性:
     --顶点的位置变换
     --顶点光照计算
     --产生和变换生成纹理坐标
    图元的组装和栅格化(Primitive Assembly and Rasterization)
    这个阶段的输入信息是顶点的变换信息和他们之间的关联方式。在图元的组装和栅格化阶段根据顶点的关联方式计算片元,旨在告诉渲染管线顶点是如何组装形成图元的。
    视口裁切(表意为不渲染视口之外的部分)和背面剔除操作也在此阶段完成。
    栅格化决定了图元中的片元和顶点。所谓片元是指在帧缓存中更新象素属性的数据,片元不仅仅包含颜色,还包含类似法线与纹理坐标等信息,总之言之,片元决定象素在哪里显示以及显示成什么样子。
    该阶段输出如下内容:
     --在帧缓存中片元的位置信息
     --对顶点变换阶段得出的属性进行插值处理
    顶点的位织和他的组织方式得出对应片元的属性值,举个例子来说如果三角形的三个点有三种颜色,那么你需要根据三点的距离差值形成三角形内部的象素颜色。总之来说,此阶段结合顶点在顶点变换阶段所得到的顶点位置和最终得到图元的组织方式来计算片元的信息。
    片元的纹理计算和着色(Fragment Texturing and Coloring)
    这个阶段的输入为经过插值计算后的最终片元信息,得到的信息为片元的深度和颜色值。在上一阶段已经对纹理坐标也进行了插值,对颜色等属性也已经进行了插值。
    光栅化操作(Raster Operation)
    此阶段的输入为:
     --象素位置
     --片元的深度和颜色值。
    接下来的操作为对片元的一系列测试信息,名为:
     --剪切测试(Scissor test)
     --Alpha测试(Alpha test)
     --模版测试(Stencil test)
     --深度测试(Depth test)
    测试完成后,依据当前混合模式(指这些测试全部完成之后)得到象素的颜色值。注意混合(指这些测试)仅仅可能发生在光栅化阶段,而不是片元的纹理计算和着色阶段,因为片元的纹理计算和着色阶段不能使用帧缓存,帧缓存只有在这一阶段才被得以使用。
    对以上所述固定流程进行总结
    下图形象的说明了以上所讲的固定流程:

    现在来替掉上面的固定流程:
    现阶段的显示卡的可编程能力可以让大家方便的来定义(控制)上面所说固定流程中的两个阶段:
     --顶点着色器(Vertex shaders)用来控制顶点变换阶段
     --片元着色器用来控制片元的纹理计算和着色阶段
    在下一讲,我们将描述顶点处理和片元的处理这两个可编程控制阶段。

    原文地址:http://www.lighthouse3d.com/opengl/glsl/index.php?pipeline
    附件: 渲染管线.pdf (155.28 KB, 下载次数: 1082)

    该用户从未签到

    发表于 2009-6-2 09:16:41 | 显示全部楼层
    好东西收藏,FreeSouth辛苦了

    该用户从未签到

    发表于 2009-6-2 12:19:06 | 显示全部楼层
    支持~~呵呵

    该用户从未签到

    发表于 2009-6-3 16:18:46 | 显示全部楼层
    欢迎归来!
  • TA的每日心情
    开心
    2019-11-11 10:36
  • 签到天数: 2 天

    [LV.1]初来乍到

     楼主| 发表于 2009-6-4 00:33:47 | 显示全部楼层
    To gw0008
    闲着没事做做,业余了

    该用户从未签到

    发表于 2009-6-9 18:38:01 | 显示全部楼层
    多谢lz,让我这个初学者受益匪浅

    该用户从未签到

    发表于 2009-7-6 14:33:12 | 显示全部楼层
    业余的很专业,呵呵!

    该用户从未签到

    发表于 2011-4-7 20:08:47 | 显示全部楼层
    我决定了……回去慢慢看……

    该用户从未签到

    发表于 2011-4-21 14:30:14 | 显示全部楼层
    呵呵!不错!

    该用户从未签到

    发表于 2011-6-29 18:35:47 | 显示全部楼层
    收了,谢谢!
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    OSG中国官方论坛-有您OSG在中国才更好

    网站简介:osgChina是国内首个三维相关技术开源社区,旨在为国内更多的技术开发人员提供最前沿的技术资讯,为更多的三维从业者提供一个学习、交流的技术平台。

    联系我们

    • 工作时间:09:00--18:00
    • 反馈邮箱:1315785073@qq.com
    快速回复 返回顶部 返回列表