07 2011 档案
摘要:这里讨论的游戏服务器架构大概是目前国内乃至世界上的网游通用的一种架构了:有段时间没有研究技术了,这次正好看到了新版的mangos,较之以前我看的版本有了比较大的完善,于是再次浏览了下他的代码,也借此机会整理下我在游戏服务器开发方面的一些心得,与大家探讨。 另外由于为避免与公司引起一些不必要的纠纷,我所描述的全都是通过google能够找到的资料,所以也可以认为我下面的内容都是网上所找资料的整理合集。在平时的开发中我也搜索过相关的中文网页,很少有讲游戏服务器相关技术的,大家的讨论主要还是集中在3D相关技术,所以也希望我将开始的这几篇文章能够起到抛砖引玉的作用,潜水的兄弟们也都上来透透气。 要描述一
阅读全文
摘要:MMORPG不同于其它的局域网的网络游戏,它是一个面向整个Internet的连接人数过万的网络游戏,因此他的服务器端设计则极为重要 服务器的基本设置 在大型网络游戏里,通常设计为C/S结构,客户端不再对数据进行逻辑处理,而只是一个收发装置,从玩家那里接受到操作信息,然后反馈给服务器,再由服务器进行处理后发回客户端,经客户端通过图形化处理,给玩家呈现出一个缤纷的游戏世界。 登陆服务器 在这里也可以称之为连接服务器,网络游戏的客户端一般是连接到这里,然后再由该连接服务器根据不同的需要,把游戏消息转发给其它相应的服务器(逻辑和地图服务器)也因为它是客户端直接连接的对象,它同时也负担了验证客户身份的工
阅读全文
摘要:作者博客:http://blog.csdn.net/yahle大纲:项目的历史背景服务器的设计思路服务器的技术服务器的设计服务器的改进图形引擎myhoho及UI库的设计客户端与服务器的集成网络游戏一般采用C\S模式,网络游戏的设计重点,我认为在于Server端,也就是我们说的服务器。在服务器端的设计,我把服务器按照功能分为2个部分,一个负责游戏世界的处理,一个服务器服务器与客户端的通讯。在负责游戏世界的处理的服务器,我又按照功能分为地图服务器和逻辑服务器。这样划分的依据是他们处理的内容不同进行。当初的设计还考虑到系统的集群功能,可以把游戏的地图移动处理和游戏的逻辑处理都分别分摊到其它服务器里面
阅读全文
摘要:全局光源•一些影响整个场景的元素,比如太阳光和雾•需要在整个屏幕上进行计算•顶点坐标,法线,颜色以及材质的参数均以纹理的形式输入。•光照计算在象素着色器中实现。•计算输出先储存在一个中间的光照缓冲中。局部光源•局部光源的光照效果只影响到整个场景的一部分•我们只计算受相关光源影响的象素。•这需要将光源体投影到屏幕空间•利用GPU很容易对象素按光源进行分类。•在场景构造时,我们建立一个简单的网格来表示光源影响的空间区域,在游戏运行时,在3D空间中对这个网格包围的象素进行光照计算。以下是延迟光照的关键部分,水平有限,如有错误还请谅解。延迟光照的关键点之一,如何找到光照体积网格中的象素。首先渲染光源体
阅读全文
摘要:延迟着色是一种对3d场景进行后期照明的技术,这种技术突破了以往渲染系统支持多重动态光源时,效率以及各种性能急剧下降的的限制。从而使得一个3d场景可以支持成百上千个动态光源的效果。 它的技术思路主要将3d场景的几何光照信息(位置、法线、材质信息)渲染到render target上,把它们从世界的三维空间转变成屏幕的颜色空间,作为光照计算时的输入,接着,对每一个光源,使用这些信息输入来进行计算生成一帧,然后把这样的一帧(render target)合成到结果的帧缓存上,这样当遍历完所有的光源,计算就完毕了,帧缓存上的图像就是最后的渲染结果。概述:延迟着色的优势1.它能让你在绘制几何图形的时候不需要
阅读全文
摘要:Bloom必须使用Pixel Shader,这相当于一个图像处理的过程大致步骤如下:先对图片(或是渲染结果)做一个Brighter Pass,检测每个像素的亮度值,若大于指定的却值就保留其颜色,反之将其置为黑色输出,这一步是为了仅对高亮的部分产生光晕效果2.对上一步的结果做高斯模糊,或其他种类的模糊,具体根据需要而定,最简单的就是对四周临近4个像素采样求平均值3.将模糊后的图片叠加到原始图片上,即颜色相加具体代码可参考dxsdk中的Post Processing,其中就有Bloom效果,它和边缘检测联用还可以作出诸如边缘光晕这类的特效
阅读全文
摘要:bloom, Fake HDR, True HDR概念HDR在我旧网上有说过原理,主要是参考了gamedev上的文章.现在把这几个放一起解释一下.这些后期处理技术都是为了实现发光特效(glow effect)HDR, 指高动态光范围,类似于暴光的效果,由于rgb分量在计算机显示时超出255范围的就被丢弃,所以暴光效果表示不太出来,于是使用了一些方法来得到这样的效果, 一般常用方法就是把高光找出来模糊后加色混合原场景.bloom 和 Fake HDR(伪HDR), True HDR(真HDR)原理都差不多,主要是在实现方法上的不同, 如下所示实现方法:1. bloom的实现: 只渲染发出的光芒到
阅读全文
摘要:如有转载请注明出处:http://blog.csdn.net/tianhai110/ 在3D游戏开发中,通常需要将文本变成纹理,以便于3D显示。本文阐述了如何通过GDI来生成D3D纹理的方法。 由于汉字多达5000字以上,为每个汉字制作相应图片,显然是不现实的;并且不能够改变字体。 最容易想到的当然是WIN32的GDI绘字,这是最简单,最常用的方法,并且可以改变字体、大小、样式。但缺点也是显而易见的,如果每帧都不断切换GDI,性能将大打折扣。其实,D3D的 ID3DXFONT也是利用GDI来绘字,在direct3d 9.0以前的这个是相当慢的,dx9.0后,微软对其进行了大改,性能有了质的飞跃
阅读全文
摘要:转载请注明出处:http://blog.csdn.net/tianhai110非真实感绘制(Non-photorealistic rendering)(NPR)是计算机图形学的一类,主要模拟艺术式的绘制风格,也用于发展新绘制风格。和传统的追求真实感的计算机图形学不同,NPR受到油画,素描,技术图纸,和动画卡通的影响。NPR已经以"卡通造影"的形式出现在电影和电子游戏中,它也已出现在设计图纸和试验动画中(一)卡通渲染卡通渲染是一种特殊的非真实感绘制技术,它要求帖图由不明显的渐变色块夹杂一些不复杂的纹理组成。它强调粗细线条和简单色块,忽略细节。利用这些很简单很纯粹的线条和色块,
阅读全文