Monthly Archives: May 2015

还原被摄像机透视的纹理

有人问如何还原被透视纹理?给你一张照片,还原照片上四个点所组成的平面的纹理该怎么做?我们可以从数学上推导一下,为了和三维图形的透视纹理映射对照,我们称照片上四个点在照片上的位置为“屏幕坐标”,那么可以发现: 空间中,三维坐标(x,y,z)和纹理坐标(u, v)承线性关系。根据该问题描述,可以理解为已知四个点的屏幕投影坐标(xi,yi),和对应纹理坐标(u,v),求整个纹理坐标系到屏幕坐标系的反向映射过程,即根据(u,v)求解(xi,yi)。 1. 按照纹理隐射的原理,同平面纹理坐标与空间坐标存在线性关系,设 a1-a12为常数,有: a1 * x + a2 * y + a3 * z + a4 = u … 线性关系 a5 * x + a6 * y + a7 * z + a8 = v … 线性关系 … Continue reading

Loading

Posted in 图形编程 | Tagged | 1 Comment

再谈网游同步技术

实时动作游戏在近年来得到迅猛的发展。而游戏同步问题,成为大家继续解决的核心问题之一。早在 2004 年,国内游戏开发还处于慢节奏 RPG 满天飞的情况下,我就开始实时动作游戏研究,分别在 2005-2006 期间写了一系列相关文章,被好多网站转载: 帧间同步模式:《帧锁定同步算法》(2007): http://www.skywind.me/blog/archives/131 玩法规避模式:《网络游戏同步法则》(2005): http://www.skywind.me/blog/archives/112 预测插值模式:《影子跟随算法》(2007): http://www.skywind.me/blog/archives/1145 如今十年过去,网上越来越多的人开始讨论游戏同步技术了,然而很多文章往往只针对某种特定的游戏情况,而观点又经常以偏概全。很多人并没有真正开发过实时动作游戏,更别说了解同步技术的前世今生了。转载别人的观点并加上自己理解的人很多,实际动过手的人很少。避免给更多人造成无谓的误导,我今天基于先前的实践和对欧美动作游戏,战网游戏,主机游戏(PSN,XBox Live等)网络技术的了解,来对这个问题做一个简单总结: 网速的变化 开发快速动作游戏,首先要对公网的网络质量数据有详细的了解。这里所说到的网速,是指 RTT,数据往返一周的毫秒时间,而非每秒传送多少 KB/s。我写这篇文章是基于我 2005-2006 年开发的东西来说的,当时国内公网质量比国外差很多: 上图为 2005-2006 年国内的网络环境,某三个省级 IDC的情况采样。当时公网 RTT平均值基本在 100ms,120ms 左右徘徊。所以我文中引用了很多 100ms。这个情况在2009 年以后已经好了很多(60ms 的 rtt)。到了 2012 年以后,公网平均 RTT已经降低到平均 40ms-50ms,省内平均 10ms 以内了: 上图为 2015 … Continue reading

Loading

Posted in 游戏开发, 网络编程 | Tagged , | 21 Comments

游戏服务端架构发展史(下)

(占位符)  

Loading

Posted in 游戏开发, 网络编程 | 28 Comments