HGE核心绘图解决方案

  在【【HGE】绘图底层】这个帖子里面有些地方需要更正。

  为了不误导别人,这里有必要补充一下:

  HGE每次绘图都需要锁定一次缓冲区,只适合绘制大量相同的图片,如果是各种不同的图片,问题就出来了。如果绘制一百张图片就需要锁定和解锁各一百次。了解D3DAPI编程的人明白这是个什么问题。所以现有的HGE绘图算法是完全不适合大型游戏的。

  有些人看到HGE自带例子中绘制2000个sprite FPS达200-300以上就以为是正确的,不要忘记绘制的图片都是同一张图片。这个问题是网上一位朋友首先发现的。

  这里给出解决方案:

  首先删除HGE原有的渲染函数,一个都不要留。

  然后制作出一个添加数据的函数,函数调用之前,进行锁定操作,但是只需要锁定一次。

  可以不断调用这个函数把四边形数据复制入顶点缓冲区里面。全部复制完毕解锁。

  也许你以为跟HGE原来的复制一次就锁定一次是一样的,那么就要仔细思考了。

  这里只锁定一次,以后的调用的是不需要锁定的,但是需要在锁定的状态下复制数据。

  全部复制完毕之后解锁就行。因为对数据的更新就按照设定的时间来操作。

  网络游戏为了同步肯定需要设定一个同样的数据更新时间。

  那么在不需要更新的时间内,是不需要对数据进行复制的。

  那么原来的一帧时间内锁定一千次,一千张图片需要绘制,现在我们在好几帧的时间内才需要锁定一次,而且是大批量地复制各种不同的图元数据,这个数量的对比就可想而知了。

  如果你不了解关于顶点缓冲区锁定操作不当会带来什么问题,可以在网上搜索,很容易得到结果。

  而且我把顶点缓冲区的创建和锁定方式全部修改了。以适合数据大批量地复制的要求。

  在大部分渲染的时间内,显卡GPU直接读取缓冲区的所有数据进行批量地渲染,CPU只需要做很少的工作。使用高级着色和HLSL技术,也许CPU更空闲。

  就是说渲染函数和逻辑函数分开处理。

  客户端的绘图核心是绘图算法架构。研究这方面的人很少,原因只有一个,大量程序员缺乏商业游戏实践的开发经验。

  对游戏没有深入地了解,哪怕你的编程技术世界上第一,在游戏开发的面前也只是白痴一个。

  绘图核心只有一个目的,在大量的场景中绘制大量的图元和大量的特效的时候,游戏的流畅性完全不受到影响。

  玩过盛大传奇和传奇世界的人都知道,在攻城的时候在皇宫里面那种走一步卡半天的感受就了解了。

  不要认为二维游戏不值得研究,那么你永远都不可能做成成功的三维游戏,因为实际绘图核心是一致的。

  不以为三维游戏就肯定不同了。哈哈~~

  思路已经给出,大牛很容易修改出来。

  当然修改成功之后,你可以不用HGE这个名称了。因为其它方面其实都是D3D架构的常用设置。

转载于:https://www.cnblogs.com/GameDelphi/archive/2012/03/19/2406829.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ ※※※※ LEGEND for HGE绘图版本 更新日期:2019-01-31 ※※※※※※※※※※※※※※※※※※※※ ※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※ ※※※※ 注意:本次由于扩展数据类型,正在开区的请勿直接替换否则会导致数据混乱! ※※※※※※※ ※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※ ※※※※ Development QQ:8302775 LEGEND开发群:715347659 ※※※※※※※※※※※※※※※※※※ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ 1.解决小退会不定时黑屏,有时时间长有时时间段黑屏后与服务器彻底失去连接. 2.小退弹出对话框时CPU使用率会暴涨. 3.优化内核内存不释放问题. 4.修改内核字体改为微妙字体,支持繁体字和特殊符号. 5.修复人物死亡灰度,99%接近盛大的颜色. 6.修复行会功能不能使用的问题. 7.修复游戏命令打不开的功能. 8.完善六个经络界面点击不变换的问题. 9.修复查看别人装备栏显示错误. 10.解决发送屏幕公告时内存泄露导致小腿黑屏. 11.修复切换窗口和全屏时地图变黑. 12.修复WIN XP下查看物品属性时窗口花屏的问题. 13.修复六格英雄内功页树状选择文字显示混乱. 14.修改选择Edit框复制粘贴时默认文字为绿色. 15.取消数字显血显示人物等级功能,因为此功能查看别人时显示为0级. 16.重新整理客户端GUI输出,并完善绘图无法调试{源码问题,与程序无关}. 17.修复六格界面英雄状态栏从基础切换内功时字体全部变化的问题. 18.优化连击内存释放时间,减少物理内存的使用率. 19.自动寻路功能使用说明:打开小地图,用鼠标滑轮再小地图选择坐标就自动开始移动了. 20.修复聚灵珠有一颗再背包满经验,其它空的也会跟着自动满的BUG. 21.修复摆摊时选择购买物品时鼠标点下没有效果. 22.M2添加重新加载【交易NPC管理、管理NPC、刷怪配置、怪物爆率】功能. 23.修复自动寻路小地图不显示绿色的寻路标记. 24.修复操作栏底部缺少一条像素移动时会出现漏光现象. 25.解决小地图移动到物品上面时被物品名字覆盖的问题. 26.请使用配套IPLocal.dll和qqwry.dat不然获取IP会出乱码. 27.修复返回角色选择页面时小地图依然开启问题. 28.M2添加心灵召唤功能,宝宝离开主人后重新按技能键即可召唤回来. 29.修复客户端武器和衣服自定义素材不显示的问题. 30.M2扩展英雄穿戴触发功能H.TakeOn和H.TakeOff. ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ 名称: 主体和英雄穿取装备触发脚本 功能:    穿上装备、取下装备时触发脚本 介绍:    脚本写在QFunction-0.txt中. 主体触发要对应标签为[@TakeOnX]、[@TakeOffX].其中X(0-12)是装备位置.在[@TakeOffX]中.可以检测该位置当前装备(也就是要取下的装备).在[@TakeOnX]中.可以检测到新戴上的装备 英雄触发要对应标签为[@H.TakeOnX]、[@H.TakeOffX].其中X(0-12)是装备位置.在[@H.TakeOffX]中.可以检测该位置当前装备(也就是要取下的装备).在[@H.TakeOnX]中.可以检测到新戴上的装备 装备位置说明:服装=0,武器=1,勋章=2,项链=3,头盔=4,左手镯=5,右手镯=6,左戒指=7,右戒指=8,护符=9,腰带=10,鞋子=11,宝石=12 脚本实例: ;========================================== [@TakeOn1] #If checkitemw 炼狱 1 #Act SendMsg 5 [主体]:戴上了炼狱威力无穷! ;========================================== ;========================================== [@TakeOff1] #If checkitemw 炼狱 1 #Act SendMsg 5 [主体]:炼狱取下来,你

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值