7.1 Cg 关键字第 7 章 输入\输出与语义绑定

文章内容源自《GPU编程与CG语言之阳春白雪下里巴人》,因笔者读书易中途放弃,遂每读一章节,将其移至简书平台,以此作为对自己读书的勉励。笔者用粗体斜体 标注了关键词句,望感兴趣的读者们一起学习共勉。猛戳这里查看更多!

第 7 章 输入\输出与语义绑定


第三章从 GPU 运行原理数据流程的角度阐述了顶点着色程序和片段着色程序的输入输出,即,应用程序(宿主程序)将图元信息(顶点位置、法向量、纹理坐标等)传递给顶点着色程序;顶点着色程序基于图元信息进行坐标空间转换,运算得到的数据传递到片段着色程序中;片段着色程序还可以接受从应用程序中传递的纹理信息,将这些信息综合起来计算每个片段的颜色值,后将这些颜色值输送到帧缓冲区(或颜色缓冲区)中。

这些是顶点着色程序和片段着色程序的基本功能和数据输入输出,实际上现在的着色程序已经可以接受多种数据类型,并灵活的进行各种算法的处理,如,可以接受光源信息(光源位置、强度等)、材质信息(反射系数、折射系数等)、运动控制信息(纹理投影矩阵、顶点运动矩阵等),可以在顶点程序中计算光线的折射方向,并传递到片段程序中进行光照计算。

这一章节中,我们将讲解Cg语言通过何种机制确定数据类型和传递形式。读者要抱着如下几个问题阅读本章节:

  1. 从应用程序传递到GPU的数据,分为图元信息数据(在GPU处理的基本数据如顶点位置信息等)和其他的离散数据(在GPU运行流程中不会发生变化,如材质对光的反射、折射信息),这两种输入数据如何区分?
  2. 从应用程序传递到GPU中的图元信息如何区分类型,即,顶点程序怎么知道一个数据是位置数据,而不是法向量数据?
  3. 顶点着色程序与片段着色程序之间的数据传递如何进行?

7.1 Cg 关键字

关键字是语言本身所保留的一个字符串集合,用于代表特定的含义,如前面所讲到的数据类型关键字 int、float 等,以及结构体关键字 struct。Cg 中的关键字很多都是照搬 C\C++中的关键字,不过 Cg 中也创造了一系列独特的关键字,这些关键字不但用于指定输入图元的数据含义(是位置信息,还是法向量信息),本质也则对应着这些图元数据存放的硬件资源(寄存器或者纹理),称之为语义词(Semantics),通常也根据其用法称之为绑定语义词(binding semantics)。

除语义词外,Cg 中还提供了三个关键字in、out、inout,用于表示函数的输入参数的传递方式,称为输入\输出关键字,这组关键字可以和语义词合用表达硬件上不同的存储位置,即同一个语义词,使用 in 关键字修辞和 out 关键词修辞,表示的是图形硬件上不同的寄存器

Cg 语言还提供两个修辞符:uniform,用于指定变量的数据初始化方式;const 关键字的含义与 C\C++中相同,表示被修辞变量为常量变量。

下面将分别对上述的关键字进行详细阐述。这一章非常关键,尤其是语义词的使用方法和含义,再小的 Cg 程序都需要使用到语义词。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏freesan44

python 算法开发笔记

22220
来自专栏温安适的blog

以回溯解高速公路重建与正序全排列

39960
来自专栏数据结构笔记

数据结构(二):算法及其描述

数据元素之间的关系有逻辑关系和物理关系,对应的操作有逻辑结构上的操作功能和具体存储结构上的操作实现。

18050
来自专栏null的专栏

数据结构和算法——动态规划

一、动态规划的思想     动态规划(dynamic programming)是一种算法设计的思想,主要是将一个问题划分成几个更小的问题,并对这样更小的问题进行...

35240
来自专栏人工智能LeadAI

讨厌算法的程序员 | 第三章 算法分析基础

时间资源 上一篇,我们知道了如何用循环不变式来证明 算法的正确性,本篇来看另一个重要方面:算法分析。分析算法的目的,是预测算法所需要的资源。资源不仅是指内存、C...

29250
来自专栏null的专栏

优化算法——遗传算法

与遗传算法的第一次接触 遗传算法是我进入研究生阶段接触的第一个智能算法,从刚开始接触,到后来具体去研究,再到后来利用遗传算法完成了水利水电的程序设计比赛,整个过...

2.3K60
来自专栏Small Code

Python-NumPy基础

前言 这两天读完《利用Python进行数据分析》 这本书的第4章:NumPy 基础:数组和矢量计算 后,在进行下一步阅读高级应用前,先整理本章内容,做个笔记备查...

387100
来自专栏蜉蝣禅修之道

优化后的Levensthein distance算法实现

43950
来自专栏技术总结

算法(3)

22870
来自专栏数据的力量

一大波常用函数公式,值得收藏!

17740

扫码关注云+社区

领取腾讯云代金券