关于GPU贴图很酷的一个方面,就是它提供了像素采样时不同的wrapmode模式, 在Molehill中,有2种不同的类型可用:
CLAMP模式:如果UV坐标点低于0或者高于1,坐标点就会被限制在 0 到 1 之间, 这样边缘像素就会被平铺。
REPEAT模式:如果UV坐标点低于0或者高于1,整个材质会被平铺,所以对于(1.2, 1.4)的UV来说,在点(0.2, 0.4)的像素就会被取样。
简单的说, 如果你设置wrapmode为REPEAT,让这些UV坐标点动起来, 就会得到一个它自我重复的材质, 你就会得到你想象中的最简单的循环材质效果。 别担心,这些功能在ND2D里都包括了,你大可不必关心我刚才说的,现在我只要你看看这个效果:
这个例子包含在Github 网站上发布的ND2D演示系列中,整个场景由2个sprite组成,他们被置于场景固定的位置上,整个过程需要CPU完成的只是(如下)对于循环任务的处理。
复制代码
如果你想在游戏中实现比如瀑布,波浪或者宇宙空间效果的背景,它将对你很有用, 愿开心!
CLAMP模式:如果UV坐标点低于0或者高于1,坐标点就会被限制在 0 到 1 之间, 这样边缘像素就会被平铺。
REPEAT模式:如果UV坐标点低于0或者高于1,整个材质会被平铺,所以对于(1.2, 1.4)的UV来说,在点(0.2, 0.4)的像素就会被取样。
简单的说, 如果你设置wrapmode为REPEAT,让这些UV坐标点动起来, 就会得到一个它自我重复的材质, 你就会得到你想象中的最简单的循环材质效果。 别担心,这些功能在ND2D里都包括了,你大可不必关心我刚才说的,现在我只要你看看这个效果:
这个例子包含在Github 网站上发布的ND2D演示系列中,整个场景由2个sprite组成,他们被置于场景固定的位置上,整个过程需要CPU完成的只是(如下)对于循环任务的处理。
- override protected function step(elapsed:Number):void {
- starfield1.material.uvOffsetX -= (stage.stageWidth * 0.5 - mouseX) * 0.00002;
- starfield1.material.uvOffsetY -= (stage.stageHeight * 0.5 - mouseY) * 0.00002;
- starfield2.material.uvOffsetX -= (stage.stageWidth * 0.5 - mouseX) * 0.00004;
- starfield2.material.uvOffsetY -= (stage.stageHeight * 0.5 - mouseY) * 0.00004;
- }