我正在尝试创建一个星域片段着色器,其中网格的顶点被视为星星。我希望像素的颜色在 0,0,0,1 和 1,1,1,1 之间作为从像素(从顶点着色器的位置输出插值)到顶点(从顶点输出着色器以某种方式阻止它被插值)介于某个值和 0 之间。我希望根据顶点的 z 值计算该值。
这可能吗?怎么做到呢?
我在计算片段着色器中插值顶点位置到非插值顶点位置的距离时遇到了麻烦。也许可以通过以某种方式在顶点着色器中获取顶点的屏幕坐标,并将其作为颜色值或其他东西传递来完成?因为我似乎能够访问片段的屏幕坐标,但不能访问世界坐标。(如果我尝试在片段着色器中使用任何具有位置语义的东西,我会得到一个错误,正如我猜你所期望的那样。)
此外,我真的很想从顶点着色器传递一个(星形)颜色值和大小值以及一个顶点,并让它们影响片段着色器的输出。