游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1746|回复: 1

移植UI到3D引擎的问题

[复制链接]

1

主题

5

帖子

8

积分

新手上路

Rank: 1

积分
8
发表于 2010-1-26 23:55:00 | 显示全部楼层 |阅读模式
最近在做移植原有UI到3D的工作。原UI是完全基于像素的操作,只有最后显示的时候将16位的WORD*数据使用GDI的SetDIBToDevice绘制出来。在移植过程中碰到了一些问题。因为里面有很多诸如百叶窗等幻灯片一类的特效,全部是即时的像素计算,在原来我只需要使用一张内存中的图片经过变换直接写到自己创建的缓冲区,然后等最后将缓冲区改变的部分绘制到屏幕上。但是在D3D中得到的后备缓冲区是不能Lock住写像素的,想要往屏幕中写入变换的图片还需要写到一张大的Texture上然后render这个Texture,这个大的Texture完全是多余的,浪费很多CPU。各位有没有办法将我保存的数据部分直接绘制到屏幕上呢,因为我所保存的已经相当于后备缓冲区了,或者有没有办法直接建立一个相当于后备缓冲区的Surface或者Texture一类的表面,然后让我可以直接写像素进去,等最后一起绘制到屏幕。

有过经验的请帮帮忙,先谢谢各位了!

85

主题

824

帖子

878

积分

高级会员

Rank: 4

积分
878
QQ
发表于 2010-1-27 09:23:00 | 显示全部楼层

Re:移植UI到3D引擎的问题

既然用了D3D就要用D3D的方式来思考和解决问题,
像百叶窗等特效可以将贴图贴到一个网格并改变某些顶点alpha值来实现,
或用shader也可以,
实现方法很多,
不要写这种四不像的代码,
不仅效率低下而且不好维护
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-6-15 14:34

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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