我被要求将一些旧的HLSL代码(Shader Model 2.0/3.0)移植到另一种语言中。
代码中有一行内容为- int(value)或int(x)。
但它似乎不是“转换为整数”或“返回整数”或类似的命令。
有人知道int(x)在旧版本的HLSL中做了什么吗?
非常感谢!
编辑:/
代码中的代码行为:
x = int(x / 12) * 12;
它似乎打算“步进”或“卡通”x的值……这应该与使用两个代码行相同;
int x2 = x / 12;
x = x2 * 12; 一个接一个,但结果不同-当我使用2行版本时,渲染的图像完全搞砸了。我也许能够完全删除这一行,并将其替换为其他代码...这不是一个非常关键的操作。但我很好奇的是
x = int(x / 12) * 12;
实际上是在HLSL着色器模型2.0/3.0下对x的值执行此操作。谢谢你的帮助。
发布于 2017-04-23 00:59:11
这是一个构造类型转换,就像在C++或C#中一样--通常,type(arg)通过从一个或多个参数构造一个该类型的值,将参数转换为type。
https://stackoverflow.com/questions/43561580
复制相似问题