游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2964|回复: 2

用OpenGL制作2D游戏应该怎么整?

[复制链接]

21

主题

158

帖子

174

积分

注册会员

Rank: 2

积分
174
发表于 2010-12-16 23:51:00 | 显示全部楼层 |阅读模式
不知道是用glDrawPixels还是用纹理来实现图片渲染?

用纹理的话具有强大的灵活性,可以很方便的实现各种效果
但是纹理的图片尺寸应该是2的幂吧,映射纹理坐标用浮点数,那么度量图片中的内容就无法精确到像素了。
假设一张256*256的纹理上有三行三列的9个帧组成角色的三方向行走动画(上 下 右)
每帧尺寸80*80,肯定在右边和底端有空出来的部分。
这样我怎么才能保证在屏幕空间里依然是一像素对应一像素?

glDrawPixels感觉好像BitBlt,确实是直接操作像素了。
不过gl好像无法识别行像素的4字节取整?
我用24位的像素格式,如果图片宽度*24不能被32整除,显示就出问题了,一般就是每行像素错后一点。
或者说,扩展函数里有更好的方法?

总体来讲我倾向于用纹理
但是不知道一般做游戏都是怎么用的?

有没有做过2D游戏的前辈给我支招

2万

主题

2万

帖子

6万

积分

论坛元老

Rank: 8Rank: 8

积分
66489
QQ
发表于 2010-12-17 11:56:00 | 显示全部楼层

Re:用OpenGL制作2D游戏应该怎么整?

指定象素传输对齐参数就可以了。不过对齐32位是为了效能,这个很有必须。

glDrawPixels不在所有的显卡和驱动上拥有硬件加速,不适用。

使用纹理是必要的,使用浮点数只要你的计算过程正确就可以精确到象素这点不用担心。

参看《古月》引擎,拥有完整的技术实现。

www.hyzgame.com

34

主题

844

帖子

1755

积分

金牌会员

Rank: 6Rank: 6

积分
1755
发表于 2010-12-17 13:18:00 | 显示全部楼层

Re:用OpenGL制作2D游戏应该怎么整?

Pixel渲染很讨厌。分辨率变了,图就变小了。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-8-17 08:52

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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