2D编程都有哪些方式?

shineryu 2010-07-20 08:59:54
最早也是一直用的是GDI,后来加入GDI+,如果不着重考虑速度,这两者的结合能实现几乎所有的2D效果;
研究了一下DirectX和OpenGL,速度自然不是问题,可由于是针对3D的,对2D不是很方便地支持;
又研究了一下DirectDraw,速度也不成问题,可是有个致命的缺点,就是不支持Alpha渲染,只能软件处理;
听说有个SDL,说是速度够快,看了看,发现也有些缺点:对Unicode的支持不是太好、似乎无法与Win32结合、也不支持Alpha渲染。

我所了解到就这些了。
看看图形编程老手们有没有更好的2D编程方式?
...全文
198 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
shineryu 2010-07-21
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 jameshooo 的回复:]
用3D来渲染2D不是不好,但是有它自己的不足:通用性不好;对简单的2D应用有点杀鸡用牛刀;除了CPU,其它资源占用比GDI多很多;用3D实现2D控件工作量不小;安静是一种永恒的美,长期使用3D特性会审美疲劳(游戏除外)。当然,3D能增添情趣,局部3D特效能让人眼前一亮。
[/Quote]

我也有同感,而且3D做2D时有细节损失。由于是投影到二维平面,必然会有缩放。
shineryu 2010-07-21
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 stjay 的回复:]
Direct2D
[/Quote]

Direct2D似乎只能在Win7或Vista上用,而且DirectX版本要在10以上。
shineryu 2010-07-21
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 fandh 的回复:]
早期做3d的时候,用opengl,以后开发2d,就是gdi,gdi+
其它的,惭愧,没有用过!
[/Quote]

您感觉用gdi,gdi+开发2d怎样?
fandh 2010-07-21
  • 打赏
  • 举报
回复
早期做3d的时候,用opengl,以后开发2d,就是gdi,gdi+
其它的,惭愧,没有用过!
向立天 2010-07-21
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 jameshooo 的回复:]
用3D来渲染2D不是不好,但是有它自己的不足:通用性不好;对简单的2D应用有点杀鸡用牛刀;除了CPU,其它资源占用比GDI多很多;用3D实现2D控件工作量不小;安静是一种永恒的美,长期使用3D特性会审美疲劳(游戏除外)。当然,3D能增添情趣,局部3D特效能让人眼前一亮。
[/Quote]
我说的主要是游戏
感觉现在很多2D游戏都是通过3维引擎做的
stjay 2010-07-20
  • 打赏
  • 举报
回复
Direct2D
baixuesong99 2010-07-20
  • 打赏
  • 举报
回复
DirectX Transform
有AlphaBlend。
jameshooo 2010-07-20
  • 打赏
  • 举报
回复
用3D来渲染2D不是不好,但是有它自己的不足:通用性不好;对简单的2D应用有点杀鸡用牛刀;除了CPU,其它资源占用比GDI多很多;用3D实现2D控件工作量不小;安静是一种永恒的美,长期使用3D特性会审美疲劳(游戏除外)。当然,3D能增添情趣,局部3D特效能让人眼前一亮。
hastings 2010-07-20
  • 打赏
  • 举报
回复
顶~~~~~~~
向立天 2010-07-20
  • 打赏
  • 举报
回复
其实最炫的方式就是通过OpenGL或D3D以三维的引擎做二维的效果
你说支持不方便
但其实只要封装出来以后用着就轻松多了
lizhigang34 2010-07-20
  • 打赏
  • 举报
回复
DirectX本身就支持2D渲染的
shineryu 2010-07-20
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 xianglitian 的回复:]
其实最炫的方式就是通过OpenGL或D3D以三维的引擎做二维的效果
你说支持不方便
但其实只要封装出来以后用着就轻松多了
[/Quote]

看来我还是对OpenGL和D3D未做好作业,急于求成了!
为了使更多的Qt初学者能尽快入门Qt,也为了Qt及Qt Creator的快速普及,我们花费大量精力写出了这一系列教程。虽然教程的知识可能很浅显,虽然教程的语言可能不规范,但是它却被数十万网友所认可。我们会将这一系列教程一直写下去,它将涉及Qt的方方面面 一、Qt Creator的安装和hello world程序的编写 二、Qt Creator编写多窗口程序 三、Qt Creator登录对话框 四、Qt Creator添加菜单图标 五、Qt Creator布局管理器的使用 六、Qt Creator实现文本编辑 七、Qt Creator实现文本查找 八、Qt Creator实现状态栏显示 九、Qt Creator中鼠标键盘事件的处理实现自定义鼠标指针 十、Qt Creator中实现定时器和产生随机数 十一、Qt 2D绘图(一)绘制简单图形 十二、Qt 2D绘图(二)渐变填充 十三、Qt 2D绘图(三)绘制文字 十四、Qt 2D绘图(四)绘制路径 十五、Qt 2D绘图(五)显示图片 十六、Qt 2D绘图(六)坐标系统 十七、Qt 2D绘图(七)Qt坐标系统深入 十八、Qt 2D绘图(八)涂鸦板 十九、Qt 2D绘图(九)双缓冲绘图简介 二十、Qt 2D绘图(十)图形视图框架简介 二十一、Qt数据库(一)简介 二十二、Qt数据库(二)添加MySQL数据库驱动插件 二十三、Qt数据库(三)利用QSqlQuery类执行SQL语句(一) 二十四、Qt数据库(四)利用QSqlQuery类执行SQL语句(二) 二十五、Qt数据库(五)QSqlQueryModel 二十六、Qt数据库(六)QSqlTableModel 二十七、Qt数据库(七)QSqlRelationalTableModel 二十八、Qt数据库(八)XML(一) 二十九、Qt数据库(九)XML(二) 三十、Qt数据库(十)XML(三) 三十一、Qt 4.7.0及Qt Creator 2.0 beta版安装全程图解 三十二、第一个Qt Quick程序(QML程序) 三十三、体验QML演示程序 三十四、Qt Quick Designer介绍 三十五、QML组件 三十六、QML项目之Image和BorderImage 三十七、Flipable、Flickable和状态与动画 三十八、QML视图 三十九、QtDeclarative模块 四十、使用Nokia Qt SDK开发Symbian和Maemo终端软件 四十一、Qt网络(一)简介 四十二、Qt网络(二)HTTP编程 四十三、Qt网络(三)FTP(一) 四十四、Qt网络(四)FTP(二) 四十五、Qt网络(五)获取本机网络信息 四十六、Qt网络(六)UDP 四十七、Qt网络(七)TCP(一) 四十八、Qt网络(八)TCP(二)

19,468

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧