HLSL
中的类型转换
转换类型 描述
|
标量——标量 这类转换总是有效的。当把布尔值转换为整型或浮点类型时,false值表示0,true表示1。同样,当把整型或浮点类型转换为布尔值时,0表示false。当把浮点类型转换为整型时,将四舍五入为最接近的整数。
标量——矢量 这类转换总是有效的。转换将把标量复制并填充到矢量中。
标量——矩阵 这类转换总是有效的。转换将把标量复制并填充到矩阵中。
标量——对象 这类转换是是无效的。
标量——结构 这类转换仅当结构中的成员都为数字时才是有效的。转换将把标量复制并填充到结构中。
矢量——标量 这类转换总是有效的。转换将复制矢量中的第一个分量,并填充到标量中。
矢量——矢量 目标矢量容量不大于源矢量时才是有效的。转换只保留最左边(left-most)的分量,截去剩下的分量。
矢量——矩阵 只有当矢量和矩阵一样大时,转换才是有效的。
矢量——对象 这类转换总是无效的。
矢量——结构 这类转换只有当结构容量不大于矢量,且所有成员都为数字时才是有效的。
矩阵——标量 这类转换总是有效的。转换将把矩阵左上角的值填充到标量中。
矩阵——矢量 只有当矢量和矩阵一样大时转换才是有效的。
矩阵——矩阵 只有当目标矩阵维度不大于源矩阵时,转换才是有效的。转换将把源矩阵填充到目标矩阵的左上部分,并且丢弃余下数据。
矩阵——对象 这类转换总是无效的。
矩阵——结构 只有当结构容量和矩阵一样大,且所有成员都为数字时,转换才是有效的。
对象——标量 这类转换总是无效的。
对象——矢量 这类转换总是无效的。
对象——矩阵 这类转换总是无效的。
对象——对象 只有当两个对象都是同一类型时,转换才是有效的。
对象——结构 只有当结构包含一个以上的成员时,转换才是有效的。结构中成员的类型必须和对象的类型一样。
结构——标量 只有当结构包含一个以上的成员时,转换才是有效的。这个成员必须为数字。
结构——矢量 只有当结构容量不小于矢量时,转换才是有效的。它的第一个成员必须为数字,并且等于矢量的大小。
结构——矩阵 只有当结构容量不小于矩阵时,转换才是有效的。它的第一个成员必须是数字,并且等于矩阵大小。
结构——结构 只有当目标结构容量不大于源结构容量时,转换才是有效的。目标结构和源结构间各自成员的转换也必须是有效的。