高级着色器语言

编辑
本词条由“匿名用户” 建档。

高级着色器语言,是一种为DirectX开发的编程语言,用于对着色器模块进行编程。着色器的整个高级编程语言组有时也称为HLSL。 在计算机图形学中,“着色”意味着改变图形管道中的单个顶点或片段。工作尽可能地贴近硬件,这就造成了长期使用汇编程序的必要性。然而,使用汇编程序编程非常不切实际、容易出错并且依赖于硬件制造商。高级着色器语言应该弥补这一事实。它们提供了简化编程的高级语言结构,从而使程序员能够专...

高级着色器语言

编辑

高级着色器语言, 是一种为 DirectX 开发的编程语言,用于对着色器模块进行编程。 着色器的整个高级编程语言组有时也称为 HLSL。

任务

编辑

计算机图形学中,“着色”意味着改变图形管道中的单个顶点或片段。 工作尽可能地贴近硬件,这就造成了长期使用汇编程序的必要性。 然而,使用汇编程序编程非常不切实际、容易出错并且依赖于硬件制造商。 高级着色器语言应该弥补这一事实。 它们提供了简化编程的高级语言结构,从而使程序员能够专注于他的目标编译器将高级语言代码翻译成图形处理器机器语言。 DirectX专用的高级语言HLSL在应用程序运行时,在图形驱动的帮助下,由DirectX库翻译成适合当前图形硬件汇编语言

语言元素

编辑

HLSL 不像其他语言那样提供 OOP 方法。 它强烈基于 C,但为着色器编程提供了优化的数据类型和操作。

全局着色器参数

传递给着色器的参数在 HLSL 的完整代码中是全局可用的。 它们写在方法或结构之外,通常在代码的开头。

顶点着色器的输入输出

统一结构在实践中很常见,而不是将每个参数单独写入着色器方法的参数列表。 这样可以节省文书工作并提高清晰度。 原则上,任何值和向量都可以与输入结构一起传递,但几乎总是包含一个位置

“In-Struct”指定从线框模型传递到着色器的数据结构。 这会处理数据并返回一个“out struct”作为返回类型。 然后将其传递给 PixelShader,它最终只返回 float4 或与最终像素颜色类似的东西。

顶点/像素着色器方法

顶点着色器和像素着色器必须存在一个方法。 这需要一个数据结构并相应地处理它。 顶点着色器为每个顶点调用一次,像素着色器为每个要渲染的纹理像素调用一次。

几何着色器

几何着色器的实现是可选的,它允许将图元映射到 0 到 n 个新图元。 但是,输出图元的类型和生成的xxx顶点数必须在编译时指定。 这里的实现是程序化的,并使用专门引入的数据结构。

高级着色器语言

也可以访问相邻的三角形和线。 这可以使用输入修饰符 trianglead 和 lineadj 来实现。 几何着色器的典型用途是点精灵生成和渲染到立方体贴图纹理。

技术

编辑

着色器的语法在 DirectX 10 中略有变化,这也是技术中明确说明目标版本的原因。

内容由匿名用户提供,本内容不代表vibaike.com立场,内容投诉举报请联系vibaike.com客服。如若转载,请注明出处:https://vibaike.com/372007/

(3)
词条目录
  1. 高级着色器语言
  2. 任务
  3. 语言元素
  4. 全局着色器参数
  5. 顶点着色器的输入输出
  6. 顶点/像素着色器方法
  7. 几何着色器
  8. 技术

轻触这里

关闭目录

目录