D3D/OpenGL用于2D文字显示技巧
废话一句,很久很久记不起与大家分享所学的经验了,主要是怕自己学的东西不彻底,写出的东西容易误导人:),也就很久没有写过什么东西啦~,在用
d3d/opengl制作2d游戏的时候,遇到问题最多的还是在于文字的显示。今天就把个人所遇到的问题和解决办法与大家分享一下。在GDI/DDraw中,显示文字不是什么麻烦事情,大不了TextOut(
hdc,...)就可以解决,速度也不会慢到哪儿去,实在不行也可以自己定义字库往ddraw的locked
backbuffer里面直接写数据,这里就不多说了。在d3d中,往device里面的backbuffer直接写数据显然是不明智的,那将会造成性能的急剧下降(不用多说了吧,如果lock了显存的buffer,县卡其他操作就会暂停下来),而d3d本身提供的ID3DXFont这个类确实不敢恭维(DirectX9.0C以上例外),恐怕用过的人都深有体会了~~这里也就不多说了,当然DX9.0C对这个做了很大的优化,速度比以前简直不是一个数量级的就不用多说了。下面来谈谈我的做法。
解决方法一:创建一个足够大的纹理(比如县卡支持的最大纹理),在纹理中