1.1什么是着色器

 

1.HLSL入门

1.1什么是着色器

DirectX使用管道技术(pipeline)进行图形渲染,其构架如下:

1.1 Direct3D Graphics Pipeline

之前我们使用管道的步骤如下:

1.       设定顶点、图元、纹理等数据信息;

2.       设定管道状态信息;

²        渲染状态

通过SetRenderState方法设定渲染状态;

另外,使用以下方法设置变换、材质和光照:

              SetTransform

              SetMaterial

SetLight

              LightEnable

²        取样器状态

通过SetSamplerState方法设定取样器状态;

²        纹理层状态

通过SetTextureStageState设定纹理层状态;

3.       渲染;

这部分交由D3D管道按照之前的设定自行完成,这部分操作是D3D预先固定的,所以这种管道技术被称为固定功能管道(fixed function pipeline)

 

固定功能管道给我们编程提供了一定的灵活性,但是仍有很多效果难以通过这种方式实现,比如:

1.       在渲染过程中,我们要求y坐标值大于10的顶点要被绘制到坐标值(000)的地方,在之前的固定功能管道中,顶点被绘制的位置是在第1步即被设定好的,不可能在渲染过程中进行改变,所以是不可行的;

2.       谋顶点在纹理贴图1上映射为点A,在纹理贴图2上映射为点B,我们要求该顶点颜色由AB共同决定,即:

定点颜色 = A点色彩值*0.7 + B点色彩值*0.3

   这在固定管道编程中也是不可行的。

以上两个问题都可以由可编程管道(pragrammable pipeline)来解决。

       可编程管线允许用户自定义一段可以在GPU上执行的程序,代替固定管道技术中的Vertex ProcessingPixel Processing阶段(参照图1.1),从而在使我们在编程中达到更大的灵活性。其中替换Vertex Processing的部分叫做Vertex Shader(顶点着色器),替换Pixel Proccessing的部分叫做Pixel Shader(像素着色器),这就是我们所说的着色器Shader

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值