我们正试图在iphone游戏中实现以下目标:
使用2d png文件,设置一个看起来像3d的场景。当用户移动设备时,单个png文件将相应地扭曲/扭曲,以提供深度效果。
场景示例:一个空房间,5面墙,中间有一把椅子。=6个分层的png文件。
我们已经使用skew和scale等本机函数成功地实现了这一点。通过对不同的墙壁和椅子应用变换,当设备倾斜移动时,墙壁将倾斜/缩放/平移。然而,问题是因为我们使用的是6个png文件,当我们移动设备时,边缘不会相交。我们需要一个使用真正引擎的新解决方案。
问题:
我们正在考虑而不是应用倾斜/缩放变换,如果给与自由移动矩形图像的顶点,我们可以精确地扭曲图像并保持所有边缘100%对齐。
在最短的时间内完成这项工作的最佳框架是什么?我们这样做是正确的吗?
发布于 2011-02-16 18:56:17
您应该能够使用核心动画层和适当的3-D变换来实现此效果(至少对于应用于墙壁的透视而言)。
构建这样的场景的一个很好的例子可以在John Blackburn提供的here示例中找到。他展示了如何通过对墙应用适当的旋转和平移来设置层来表示迷宫中的墙,然后通过使用为场景更改CATransform3D的m34
组件的技巧来提供场景透视。
我不确定你的平面椅用这样的东西看起来会有多好,但你肯定可以让你的墙壁对它们有一个很好的视角。与使用OpenGL ES实现相比,使用层和核心动画可以让您使用更少的代码来实现您想要的内容。
改变相机角度就像旋转场景以响应设备方向的变化一样简单。
发布于 2011-02-15 21:11:49
如果你打算像在3D场景中那样扭曲纹理,那么为什么不让图形硬件为你做这项艰巨的工作呢?将纹理映射到3D多边形,然后更改投影或移动多边形?
我怀疑你是否可以通过限制自己进行2D转换来更快地完成它-硬件已经准备好做3x3 (好吧,4x4同质)矩阵乘法。
https://stackoverflow.com/questions/5009255
复制相似问题