查看: 4495|回复: 2

GLSL教程(2) 顶点处理

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

    [LV.1]初来乍到

    发表于 2009-6-1 23:21:44 | 显示全部楼层 |阅读模式
    本节大意:顶点着色器是完全替代渲染管线中的顶点处理阶段的,也就是说你一旦写了vertex shader,渲染管线就不会再处理以前在顶点处理阶段的任务了。
    GLSL教程

    译:FreeSouth
    顶点处理



    顶点着色器(vertex shaders)基于顶点处理阶段。顶点着色器的输入为顶点数据,一般为位置,颜色,法线等等,该数据依赖于OpenGL程序的输入。
    下面这段OpenGL程序描述了顶点处理器依次处理顶点的位置和颜色。
    ________________________________________
    glBegin(...);

    glColor3f(0.2,0.4,0.6);
    glVertex3f(-1.0,1.0,2.0);

    glColor3f(0.2,0.4,0.8);
    glVertex3f(1.0,-1.0,2.0);

    glEnd();
    ________________________________________
    在顶点着色器(vertex shader)中,你可以写代码完成以下工作:
     --顶点的位置变换
     --规范化处理
     --纹理坐标的产生和变换
     --为各顶点计算光照
     --为顶点着色
    没有必要非要执行全部的以上操作,比如你不想使用光照。但是,一旦你写了一个顶点着色器(vertex shader),你就会替掉整个渲染管线中的顶点处理阶段,因此,你不能只写写法线变换指望它利用渲染管线的顶点处理还给你生成什么纹理坐标。

    顶点处理阶段处理的仅仅是顶点的信息,和顶点之间的组织方式等等无任何关联。比如你不能使用顶点着色器(vertex shader)去搞什么背面剔除,因为顶点着色器操作的是顶点而不是面。顶点着色器操作的除了顶点还是顶点,没有其它的东西。

    顶点着色器必须处理位置信息,处理位置信息的手段经常是利用顶点模视矩阵(是将模型从局部坐标系变换到世界坐标系,并最终变换到视点坐标系中)和投影矩阵。
    顶点处理阶段可以使用OpenGL的状态机制,所以可以处理光照以及材质和纹理(仅在最新的硬件中支持)。但是他无权操作帧缓存。

    原文地址:http://www.lighthouse3d.com/opengl/glsl/index.php?vertexp
    顶点处理.pdf (151.83 KB, 下载次数: 1018)

    该用户从未签到

    发表于 2011-4-7 20:11:36 | 显示全部楼层
    其实我一直很纠结这东西怎么用……
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

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

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

    联系我们

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