游戏开发论坛

 找回密码
 立即注册
搜索
楼主: hdzhyf

新手问题

[复制链接]

10

主题

525

帖子

525

积分

高级会员

Rank: 4

积分
525
发表于 2005-5-12 10:51:00 | 显示全部楼层

Re:新手问题

此外在DX9中间已经全面重新构建了绘图的概念
DDRAW和D3D已经和以前不少书中间介绍的不一样了
建议直接找DX9的资料看

10

主题

525

帖子

525

积分

高级会员

Rank: 4

积分
525
发表于 2005-5-12 10:54:00 | 显示全部楼层

Re:新手问题

下面说点最基础的东西
希望对于要理解DX技术的朋友有点帮助

10

主题

525

帖子

525

积分

高级会员

Rank: 4

积分
525
发表于 2005-5-12 10:55:00 | 显示全部楼层

Re:新手问题

要画一个点
最直接的办法是直接写显示卡的对应位置
这在DOS中是最常用的办法

10

主题

525

帖子

525

积分

高级会员

Rank: 4

积分
525
发表于 2005-5-12 10:59:00 | 显示全部楼层

Re:新手问题

如果你要写一张图
也可以直接写显示卡的对应位置
但是这有个硬件上面的问题
就是显示是有场频的
如果你不是在显示的消隐阶段写显示卡
比如你写的时候
屏幕正好刷新到一半
那么有一祯图象将是
屏幕的上方是原来的图形
屏幕的下方是现在的图形
就好象电视在滚动的效果

10

主题

525

帖子

525

积分

高级会员

Rank: 4

积分
525
发表于 2005-5-12 11:02:00 | 显示全部楼层

Re:新手问题

所以在DOS阶段就有了一些专用的游戏显示引擎
玩过DOS游戏的都知道
这些引擎做的事情是提供一个缓冲区
这个时候就不能直接写硬件了
而是只能写缓冲区
然后由引擎在显示的场频消隐期把数据从缓冲区直接写到显示卡上面
就可以解决上面的问题了

10

主题

525

帖子

525

积分

高级会员

Rank: 4

积分
525
发表于 2005-5-12 11:02:00 | 显示全部楼层

Re:新手问题

这就是现在为什么OpenGL和DX要采用多缓冲区的理由

10

主题

525

帖子

525

积分

高级会员

Rank: 4

积分
525
发表于 2005-5-12 11:05:00 | 显示全部楼层

Re:新手问题

此外
你可以测试下MFC用写点方式画一个块的效率
以及MFC用写直线的方式画一个块的效率
以及MFC直接用矩形方式画一个块的效率
你就知道微软的MFC的画图能力是太糟糕了
所以微软提供了一个DDRAW的引擎

10

主题

525

帖子

525

积分

高级会员

Rank: 4

积分
525
发表于 2005-5-12 11:07:00 | 显示全部楼层

Re:新手问题

还有个游戏的制作问题
早期的2D游戏的画图基本采用的是贴图技术
所以DDRAW就是采用的这种技术
至于到了3D游戏阶段
很容易理解
要不采用OpenGL
要不采用D3D

10

主题

525

帖子

525

积分

高级会员

Rank: 4

积分
525
发表于 2005-5-12 11:10:00 | 显示全部楼层

Re:新手问题

游戏中间最重要的就是显示
所以上面说的都是显示的问题
也可以说是显示引擎
此外游戏还需要提供数据库支持、网络支持、声音支持、操作输入支持、特殊的效果输出等等
这些所有的可以称为游戏引擎

10

主题

525

帖子

525

积分

高级会员

Rank: 4

积分
525
发表于 2005-5-12 11:11:00 | 显示全部楼层

Re:新手问题

当然在网络游戏中间还包括数据的加密解密问题
从引擎的角度看也是
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-12-25 15:17

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表