游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2319|回复: 8

Texture渲染与文字的渲染

[复制链接]

13

主题

25

帖子

25

积分

注册会员

Rank: 2

积分
25
发表于 2008-4-9 15:05:00 | 显示全部楼层 |阅读模式
现在要做一个程序,在AGP内存中建立两个Texture,用来贴图,在系统内存中建立一个Texture,用来作为前两个Texture的后缓存,同时,还要从这个Texture取一个表面,得到一个DC,在利用此DC写字。哪位高人指点一下小弟,谢谢!本人学3D没多久,希望能给出重要代码,再次谢谢!

10

主题

173

帖子

178

积分

注册会员

Rank: 2

积分
178
发表于 2008-4-9 15:31:00 | 显示全部楼层

Re:Texture渲染与文字的渲染

弱弱的问一下,从Texture纹理中能够获取到DC吗?

如果可以我以前的做法就错了。
我创建了一个DC,在DC中写字,然后获取DC的数据,复制到纹理中。如此好繁杂。

121

主题

2029

帖子

2034

积分

金牌会员

Rank: 6Rank: 6

积分
2034
QQ
发表于 2008-4-9 16:04:00 | 显示全部楼层

Re:Texture渲染与文字的渲染

似乎能拿到DC。

13

主题

25

帖子

25

积分

注册会员

Rank: 2

积分
25
 楼主| 发表于 2008-4-9 16:04:00 | 显示全部楼层

Re:Texture渲染与文字的渲染

纹理是得不到的,要get一个表面才可以得到

10

主题

173

帖子

178

积分

注册会员

Rank: 2

积分
178
发表于 2008-4-9 16:37:00 | 显示全部楼层

Re:Texture渲染与文字的渲染

我是不是可以这样理解他们之间的隶属关系
纹理<--表面<--HDC
直接操作HDC,例如往里面写字,其内容变换了,那么纹理的内容也就同时变化了,对吗?

我以前一直以为是分开的,我晕。

13

主题

25

帖子

25

积分

注册会员

Rank: 2

积分
25
 楼主| 发表于 2008-4-9 16:43:00 | 显示全部楼层

Re:Texture渲染与文字的渲染

……我也不是很清楚,我的理解是这样的。我不知道如何实现,不如你实现了发来看看 :)

10

主题

173

帖子

178

积分

注册会员

Rank: 2

积分
178
发表于 2008-4-9 16:52:00 | 显示全部楼层

Re:Texture渲染与文字的渲染

我概念大大的错误了。
我创建了一个新的HDC,在HDC中画字,然后将其内容复制到纹理中。此做法效率和你所说的差距就大了去了。

HDC     hDC       = CreateCompatibleDC( NULL );
HBITMAP hbmBitmap = CreateDIBSection( hDC, &bmi, DIB_RGB_COLORS,
                                          (void**)&pBitmapBits, NULL, 0 );
SelectObject( hDC, hbmBitmap );
在hdc中写字,然后

D3DLOCKED_RECT d3dlr;
m_pTexture->LockRect( 0, &d3dlr, 0, 0 );
//复制pBitmapBits信息到纹理
m_pTexture->UnlockRect(0);

和你的方法,足足多了2步巨大的消耗操作,1.lock,2.copy.

13

主题

25

帖子

25

积分

注册会员

Rank: 2

积分
25
 楼主| 发表于 2008-4-9 17:13:00 | 显示全部楼层

Re:Texture渲染与文字的渲染

哦?有聊天工具没,有机会请教请教,我的MSN: xyjsmart2007@hotmail.com
QQ:38218028

13

主题

25

帖子

25

积分

注册会员

Rank: 2

积分
25
 楼主| 发表于 2008-4-11 10:31:00 | 显示全部楼层

Re:Texture渲染与文字的渲染

为什么我从surface上getDC时失败了?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-22 21:03

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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