下图显示了在背景上方通过点采样渲染的两个精灵:
- 左头骨没有应用旋转/缩放,因此每个像素都与背景完美匹配。
- 右头骨旋转/缩放,这将导致不再与轴对齐的较大像素。
我如何开发一个像素着色器,该着色器将在右侧以与场景其余部分相同大小的轴对齐像素来渲染转换后的精灵?
这可能与在“猴子岛”(Monkey Island)等旧游戏中如何实现精灵缩放有关,因为这是我试图实现的效果,但增加了旋转功能。
编辑
根据kaoD的建议,我试图通过后期处理解决该问题。最简单的方法是先渲染到一个单独的渲染目标(下采样以匹配所需的像素大小),然后在第二次渲染时将其放大。它确实满足了我上面的要求。
首先,我尝试这样做,Linear -> Point
结果是这样的:
没有失真,但结果看起来很模糊,并且丢失了大多数高光颜色。在我看来,它打破了我需要的复古外观。
我第二次尝试Point -> Point
,结果是这样的:
尽管存在失真,但我认为这可能足以满足我的需求,尽管它看起来比静止图像确实好看。
为了演示,这是该效果的视频,尽管YouTube过滤掉了其中的像素:
但是,如果有人想出一个更好的采样解决方案,该解决方案可以保持清晰的外观,同时减少移动时的失真量,那么我将继续待几天。
SpriteBatch
要求我使用即时模式,因此这是不值得的。我会讲的:)