有什么好的学习HLSL的资源?[关闭]


28

上一次尝试学习HLSL时,我制作了一些着色器,并且大部分都了解我在做什么,但是我仍然觉得自己在黑暗中跌跌撞撞。我从很多博客文章中学到的大部分内容并不能很好地解释。

此外,有关MSDN的文档似乎更多是功能参考。

在哪里不仅可以学习编写HLSL,还可以学习编写着色器的技术?

Answers:


14

注意到这两个,几乎每次我编写通用着色器时,我都会始终回到下面的文章:


1
我应该通过“ API参考”指定更多的是“编程指南”部分。
肖恩·詹姆斯

6

如果您追求的是“着色器技术”,而不是单纯的语言参考(阅读问题,人们),那么我建议(从简单到高级):

基本上还是:尝试并实践,同时吸收“专家”做事的方式。或者选择与您要实现的目标相似的东西,然后从那里开始工作。


3

Cg从技术上讲不是HLSL,但从语法上讲它们实际上是相同的。

话虽如此,这是一本比较老的书,但是NVIDIA已将“ The Cg Tutorial ”免费在线阅读。它以非常全面的方式涵盖了可编程管线的基础知识,并且都应以最小的努力全部转换为HLSL。


1
当时,nVidia和Microsoft共同撰写了Cg / HLSL。由于品牌,他们给它取了不同的名称,但是语言是相同的。现在,可能会有细微的差别,但这确实很小。
jacmoe

那是一本了不起的书。就教程而言,基尔加德的任何事情基本上都非常好。
bobobobo 2012年

3

如果您想编辑并实时查看结果,可以使用此简单的Silverlight工具

http://shazzam-tool.com/
Shazamm 1.3-HSLS着色器的编辑者和先驱


至于Riemers.net的教程+1,但我也发现这一系列XNA / HLSL教程更好。

这是列表,您将在这里找到所有它们:http : //digitalerr0r.wordpress.com/tutorials/

  • 1 – HSLS简介,环境光
  • 2 –漫射光
  • 3 –镜面光
  • 4 –法线贴图
  • 5 –变形顶点着色器
  • 6 –着色器演示:简单的海洋/岛屿风光
  • 7 –香椿阴影
  • 8 –光泽度图
  • 9 –摆动后期处理
  • 10 –倒置过帐流程
  • 11 –灰度着色器
  • 12 –像素失真着色器
  • 13 – Alpha贴图
  • 14 –透射/深度缓冲
  • 15 –动态环境映射
  • 16 –折射
  • 17 –点光源+自阴影
  • 18 –多点灯
  • 19 –半球环境光
  • 20 –景深
  • 21 –过渡:淡入淡出
  • 22 –过渡:交叉
  • 23 –模糊
  • 24 –布卢姆
  • 25 – GPU上的Perlin噪声
  • 26 –凹凸贴图Perlin噪声






0

不确定要使用的着色器模型和DirectX版本是什么,但我强烈建议您使用Direct3D11进行实用的渲染和计算。本书将向您介绍DirectX11的所有细节,包括资源,所有不同的管道着色器,HLSL(专门针对此主题的整章),以及如何开始实现诸如粒子系统模拟,镶嵌,图像处理,延迟渲染之类的东西。和DirectCompute!



-1

对我来说,首先学习GLSL更容易,而且因为HLSL和GLSL很相似。一旦了解了整个概念,管道,硬件以及内部着色器语言的工作原理,就可以轻松使用其他语言,例如HLSL甚至Cg。

我之所以提出GLSL,是因为它有一本非常好的书,例如openGL的橙色和红色书,并且对于初学者来说很容易学习。


1
这不能回答问题。
PhillC

不过,这并不是一个不好的回应-GLSL的许多基础与HLSL非常相似,如果OP可以为GLSL找到资源,则可以有效地利用它们。一旦知道了所要查找的内容,着色器代码本身之间的许多主要区别只是心理转换的问题。学习GLSL的想法首先失败了,因为还必须学习OpenGL(本身并不坏;对两者都有用)并重写程序(不好),但是使用GLSL资料来补充HLSL学习绝对没有错(并且反之亦然(如果相关)。
Maximus Minimus
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.