unity3d - HLSL 中的无分支浮点比较
问题描述
有没有办法在value = 1; if(x > y) value = 0;
不使用分支的情况下重写(其中值、x 和 y 都是浮点数)?我已经看到了整数的解决方案,但我找不到浮点值的解决方案。
解决方案
您可以将 alerp
用于此目的,在您的示例中为value = lerp(1.0f, 0.0f, x > y)
. 顺便说一句,这正是着色器编译器在展平分支时会自动执行的操作 - 分支是否展平是另一个主题,请参阅属性[flatten]
和[branch]
.
推荐阅读
- iis - 防止 IIS 应用程序冷态
- cakephp - Cakephp 无法加载 css 和 js 文件
- css - 在 div 中显示图标、对齐问题
- javascript - 从类标识的 html标记中获取文本并自动将其输入到另一个文本区域
- php - 使用 jquery ajax 从链接获取数据
- javascript - Dialogflow withfulfillment: get answer opens an URL http
- react-native - 如何处理单独的输入焦点状态?
- android - onTextChanged 长度内的 SpannableString 不正确
- debugging - 异常时无法正确获取调用堆栈
- linux - 需要 grep 和整数表达式