问题标签 [smoothstep]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
glsl - 使用 smoothstep() 和 dot() 或 length() 绘制圆会产生不同的结果
考虑下面的简单着色器(前往shadertoy.com/new并粘贴代码进行试用)。
基本上,我试图弄清楚是否可以调整dot()
版本以获得这两个函数调用完全相同的结果:
使用两种众所周知的方法绘制两个圆。看了网上的教程,了解到可以用length()
函数画圆。您还了解到它非常昂贵,因此提供了一个更优化的版本,dot()
而不是使用该函数。(在我的世界里,某事物的优化版本应该产生相同的结果。)
伟大的。但我找不到两者之间的关系的解释。有时,由于dot()
某种原因,结果乘以4.0
(参见着色器之书),得到相似但不相同的输出。
如您所见,会step()
产生相同的圆圈,而smoothstep()
不会。
smoothstep()
是否有可能通过使用一些数学来获得完全相同的输出?
着色器示例