游戏开发论坛

 找回密码
 立即注册
搜索
查看: 16918|回复: 22

请问在D3D中如何实现“文字渲染到纹理”?

[复制链接]

59

主题

404

帖子

404

积分

中级会员

Rank: 3Rank: 3

积分
404
发表于 2009-1-28 09:50:00 | 显示全部楼层 |阅读模式
就是不要用GDI函数,直接使用D3D的method,把汉字渲染到指定的Texture或Surface上,
请问用哪个函数实现?还是要自己写算法?谢谢!

(我做这个功能的目的是为了做游戏中的输入框,由于直接使用ID3DXFont不能剪切文字到输入框的大小,导致了一些左边的文字会超出输入框外面去,所以我想先绘制到纹理上,然后用模板缓存技术来修剪超出输入框的部分)

sf_200912894944.jpg

59

主题

404

帖子

404

积分

中级会员

Rank: 3Rank: 3

积分
404
 楼主| 发表于 2009-1-28 09:53:00 | 显示全部楼层

Re:请问在D3D中如何实现“文字渲染到纹理”?

ID3DFont 只能剪切掉右边和下面的多出来的文字,却不能剪切掉左边和上面多出来的文字。
这个是我非常想解决的:如何剪切掉左边和上面的多余的文字?

有人告诉我说,就按D3D SDK里的CustomUI那样做输入框,不过我觉得不好,它那个是直接把多出来的文字整个儿去掉,这样我觉得是不可取的。我想要的功能是把多出来的部分去掉,而不是整个儿去掉。
有谁能帮帮我吗?

12

主题

26

帖子

26

积分

注册会员

Rank: 2

积分
26
发表于 2009-1-28 11:21:00 | 显示全部楼层

Re:请问在D3D中如何实现“文字渲染到纹理”?

:

59

主题

404

帖子

404

积分

中级会员

Rank: 3Rank: 3

积分
404
 楼主| 发表于 2009-1-28 16:23:00 | 显示全部楼层

Re:请问在D3D中如何实现“文字渲染到纹理”?

顶一个

0

主题

10

帖子

10

积分

新手上路

Rank: 1

积分
10
发表于 2009-1-30 05:41:00 | 显示全部楼层

Re:请问在D3D中如何实现“文字渲染到纹理”?

ID3DXFont:rawTextA(...)
函数的参数自己找下API

59

主题

404

帖子

404

积分

中级会员

Rank: 3Rank: 3

积分
404
 楼主| 发表于 2009-2-1 21:36:00 | 显示全部楼层

Re:请问在D3D中如何实现“文字渲染到纹理”?

哎,这个回答不是我想要的。

59

主题

404

帖子

404

积分

中级会员

Rank: 3Rank: 3

积分
404
 楼主| 发表于 2009-2-1 21:37:00 | 显示全部楼层

Re:请问在D3D中如何实现“文字渲染到纹理”?

哎,这个回答不是我想要的。不过还得谢谢你。
DrawTextA这个函数我早就知道了,是直接绘制到屏幕的,我想绘制到纹理,而不是屏幕。

59

主题

984

帖子

1200

积分

金牌会员

Rank: 6Rank: 6

积分
1200
发表于 2009-2-1 23:24:00 | 显示全部楼层

Re: [江湖救急]请问在D3D中如何实现“文字渲染到纹理”

flyue: [江湖救急]请问在D3D中如何实现“文字渲染到纹理”?

我想先绘制到纹理上,然后用模板缓存技术来修剪超出输入框的部


只渲染可见的文字是正道
你这样做很慢的

3

主题

84

帖子

84

积分

注册会员

Rank: 2

积分
84
发表于 2009-2-1 23:51:00 | 显示全部楼层

Re:请问在D3D中如何实现“文字渲染到纹理”?

我看还是老办法,锁定纹理表面获得内存,然后往内存里一个点一个点地写。
首先要用GDI把文字写到一个DC中,让后从DC一个点一个点地复制到纹理中。
我觉得不用GDI是不可能的,英语的字符有限,可以做到同一个图片里。
中文太多了,首次渲染某个字肯定要用GDI,然后保存起来,下次就可以直接用了。

或者吧目标纹理设置为渲染目标SETRENDERTARGET,按照普通2D文字的渲染方法渲染。

14

主题

345

帖子

376

积分

中级会员

Rank: 3Rank: 3

积分
376
QQ
发表于 2009-2-2 16:49:00 | 显示全部楼层

Re:请问在D3D中如何实现“文字渲染到纹理”?

我建议你自己写个Font, ID3DXFont好多功能都做不了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-6-3 05:56

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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