阅读新闻

在DirectX中使用着色器和效果

第一章 介绍高级着色语言

[日期:2007-01-27] 来源:  作者: [字体: ]
         
[声明]:本文译自Frank Luna的《Introduction to 3D Game Programming with DirectX 9.0》,限于译者水平,文中难免错漏之处,欢迎各位网友批评指正;本文仅用于学习交流与参考用途,不得用于任何形式的商业用途;

译者:RaymondKing
出自:CSDN

第一章       介绍高级着色语言 

概览

在本章中,我们将描述高级顶点着色语言(High-Level Shading Language ,简称HLSL),我们用它编写以下三章的顶点和像素着色器。简单的说,顶点和像素着色器是我们编写并在图形卡的GPU(graphics processing unit)上执行小的自定义程序,它替换了固定功能管线的一部分。通过用我们自定义着色器程序替换固定功能管线的一个部件,我们获得了能达到的图形效果的最大自由度。我们不再受限于预定义的“固定的”操作。

为了编写着色器程序,我们需要一种语言去编写它们。在DirectX 8.x中,着色器用低级着色器汇编语言编写。幸运的是,我们不再需要用汇编语言编写着色器了,因为DirectX 9已经支持高级着色器语言,我们可以用它编写着色器。使用HLSL在汇编语言之上编写着色器程序可从高级语言中受益,就像C++一样,它以超越汇编语言的方式编写应用程序,也就是说:

增加了生产力——用高级语言编程比用低级语言更快更容易。我们可以集中更多时间在算法上,而不是在编码上。
提高了可读性——高级语言程序更容易阅读,这意味着高级语言写的程序更易调试和维护。
编译器,时常会生成比手写汇编更高效的汇编代码。
使用HLSL编译器,我们可以将代码编译为任意可用的着色器版本;使用汇编语言,我们可能需要为指定版本移植代码。

HLSL还和C或C++语法相似,这样就大大缩短了学习的时间。
最后,如果图形卡不支持顶点着色器和像素着色器的话,你就要为着色器例子程序切换到REF设备。
注意:像素着色器可以用软件模拟为软件顶点处理(software vertex processing)——D3DCREATE_SOFTWARE_VERTEX-PROCESSING。

目标

学习如何编写和编译HLSL着色器程序
学习如何在应用程序和着色器程序之间交换数据
逐渐熟悉HLSL的语法、类型和内部函数


123456下一页  GO
【内容导航】
第1页:第一章 介绍高级着色语言 第2页:1.1编写HLSL着色器
第3页:1.2 编译HLSL着色器 第4页:1.3 变量类型
第5页:1.4 关键字、语句和强制转换 第6页:1.5 操作符
阅读:
录入:admin

评论 】 【 推荐 】 【 打印
上一篇:Tile Based Engine 中的墙壁自动拼接处理
下一篇:24点的算法分析(+-*/、括号,乘方,开方,阶乘,分数)
相关新闻      
本文评论       全部评论
发表评论
字数
姓名:

  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款