《Practical Rendering & Computation with Direct3D11》读书总结 Chapter-6-High Level Shading Language

Introduction

在DirectX中,编写可编程Shader的时候所使用的语言为High Level Shading Language(HLSL),它是由C/C++衍生出来的一种语言,具有一些特性,它的语言风格与C语言非常相似,但是又有很大的不同。最重要的不同之处在于在HLSL中没有指针、没有C++中的template、不支持动态的内存分配。HLSL语言写出来的程序,都要在C/C++中提前编译成ByteCode,再绑定到流水线上。

Language Basics

基本的数据类型
bool:32-bit 整数,包含逻辑true、false信息。
int:32-bit 有符号整数。
uint:32-bit 无符号整数。
half:16-bit 浮点数,注意在D3D11中,half的存在仅仅是为了兼容以往的half的使用,在D3D11的Shader中统一会将half转化为float。
float:32-bit 浮点数。
double:64-bit 浮点数。

Vectors:
Vector支持有1-4个成员,每个成员都是相同的类型。例如可以这样声明Vector:

    vector<float,4> floatVector;
    vector<int,2> intVector;

这样写是比较麻烦的,可以简化为:

    float4 floatVector;
    int2 intVector;

Vector的初始化方式:

    float2 vec0 = { 0.0f, 1.0f };
    float3 vec1 = float3( 0.0f , 0.1f , 0.2f );
    float4 vec2 = float4( vec1 , 1.0f );
    float4 vec3 = 1.0f; //将4个成员全部复制为1.0f

对Vector成员的访问:
Vector的四维分别用x、y、z、w或者r、g、b、a表示。

    float4 floatVector 
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值