zoukankan      html  css  js  c++  java
  • float4数据类型

    GPU是以四维向量为基本单位来计算的。4个浮点数所组成的float4向量是GPU内置的最基本类型。使用GPU对两个float4向量进行计算,与CPU对两个整数或两个浮点数进行计算一样简单,都是只需要一个指令就可以完成。

    HLSH的基本数据类型定义了float、int和bool等非向量类型,但是它们实际上都会被Complier转换成float4的向量,只要把float4向量的其中3个数值忽略,就可以把float4类型作为标量使用
    使用贴图坐标时,只需要二维向量,HLSL定义了float2类型作为二维向量使用。
    Shader经常会用到矩阵,HLSL有一个内置类型float4x4,它可以用来表示一个4*4矩阵。float4x4并不是GPU的内置类型,float4x4实际上是由4个float4所组成的数组。其他的还有float3x3、float2x2,分表代表3*3矩阵、2*2矩阵。
    Shader也可以声明数组,4*4矩阵实际上就是一个float4 m[4]的数组。注意,Shader中的所有的变量都使用寄存器,没有其他内存空间可以使用,所以越大的数组会占用越多的寄存器,甚至会超出寄存器的数量限制。
    在使用float4向量中的个别数值时,可以用xyzw或rgba,都可以用来表示四维向量中的数值。但不能把它们混用,例如不能用xyba,把它视为颜色时就用rgba,否则就是用xyzw,不能把这二者混合使用。
    ----摘自《3D绘图程序设计
  • 相关阅读:
    IE与FF有关javascript差异的点点滴滴 F
    document.documentElement与document.body F
    CSS模块化开发 F
    关于使用“JS获取屏幕,浏览器,网页高度宽度”的个人思考 F
    GUI F
    关于mousemove和scroll事件的一点技巧 F
    博客换肤 F
    一个日历的简单实现 F
    忠烈杨家将观后感 F
    Vim的配置
  • 原文地址:https://www.cnblogs.com/jiahuafu/p/6136871.html
Copyright © 2011-2022 走看看