一般情况下发生在FX编写的时候,
特别注意以下情况pow(max(0, f), e),这句话会存在一个问题就是当max(0,f)的值为0时,将出现pow(0,e),而实际上对于这个幂次是没有意义的,所以会出现报错,可以修改此方法,或者使用多项式展开,或者使用更简单的办法,比如将0改为0.00001f,即
pow(max(0.00001f,f),e).
这样一般都能够解决问题了。
补充:shader中如果出现非法的运算,可能就会出现这种错误,比如除0之类的。
解决FX编写的Pow函数问题
本文探讨了FX编写过程中pow(max(0,f),e)存在的问题,特别是当max(0,f)为0时,可能导致的错误。提出了通过将0替换为0.00001f来避免此类问题的方法,并提及了shader中可能出现的其他非法运算。
一般情况下发生在FX编写的时候,
特别注意以下情况pow(max(0, f), e),这句话会存在一个问题就是当max(0,f)的值为0时,将出现pow(0,e),而实际上对于这个幂次是没有意义的,所以会出现报错,可以修改此方法,或者使用多项式展开,或者使用更简单的办法,比如将0改为0.00001f,即
pow(max(0.00001f,f),e).
这样一般都能够解决问题了。
补充:shader中如果出现非法的运算,可能就会出现这种错误,比如除0之类的。
4223

被折叠的 条评论
为什么被折叠?