bilvdehu 发表于 2006-7-24 14:51:17

7.24 GM6.1总于实现了字库点阵绘制!

时间:7月24日
    GM6.1总于完成了点阵法绘制,在GM6.1中文绘制的发展历程中,我们最早想到的是用图片绘制,但是其较大的空间占用和不便于修改和查看,并没被广泛使用,属于第一代GM6.1中文绘制,而后的发展是采用Dll生成新的窗口,在新窗口内绘制中文,但是因为其技术上并不是很便利,效果上也不是很好,所以只是有少部分人使用了,属于第二代GM6.1中文绘制,现在技术上终于突破到了第三代,通过点阵绘制,虽然可供选择的字体和字号比较少,但是已经近乎完美的在GM进行中文绘制,打破以往种种的技术限制,为GM中文绘制打开了一个新的局面。

代码作者:与或非
源代码地址:http://www.diygame.cn/ShowPost.asp?ThreadID=568

yoxola 发表于 2006-7-24 15:52:52

實現這點以後,RMXP就沒什麼優勢可言了,
GM在圖像能力和功能上基本好很多。

其實那個字庫先讀進內存是比較好的,結束的時候會被GM釋放,並沒有什麼問題

FantasyDR 发表于 2006-7-24 17:17:26

描点……应该会比较慢的说,而且,绘出的汉字很生硬。

既然已经是描点了,不知道能不能挂Freetype的字体绘制库,Freetype生成的也是点阵图,只不过是256级灰度的,可以有较柔和的过渡。

其实也可以加载个包含全部汉字的Texture,按照汉字编码往出抠图,这样只要Texture够漂亮,字体就足够漂亮。不知道GM实现这种方式快不快……貌似ED6就是这样来绘制汉字的。

RMXP的字要漂亮很多,支持各种字体,并且边缘是经过柔化的。
这一点还是比较有优势的~

bilvdehu 发表于 2006-7-24 17:56:21

的确,现在RM的绘制效果还是比GM好~毕竟是直接从win系统里面调用字库~win的字库已经相当成熟了~相比我们使用的还是UCDOS下老一辈高手编写的字库~差距肯定是有的~但是值得我们欣慰的是~和win系统的无关性~使得它能在国外的任何机子上显示中文~呵呵~虽然老外看不懂~还有就是不会因为系统版本问题造成字体的不一致~能够保证游戏的界面和当初开发的效果一样~

主要是一旦开始点阵绘制~意味着我们就能自己做中文UI了~以前5.3的中文UI也能够被移植到6.1上来,这样的优势使我们开发中文商业游戏又近了一步。

如果有更好的字库~想必能实现得更好~

yoxola 发表于 2006-7-24 18:07:40

這樣吧...貼個相關又無關的東西,FreeType的字型繪製

http://www.rpgchina.com/_tmp/FTRender.rar
移除以後就不補檔了,反正只是小範例

你可以抽換字型...文件名一樣就好(必須是TTF文件)
我在旋轉的時候畫了一個方塊在背景證明文字是透明的

這個方法也是跟系統語系無關的.....
我們的中/日UI都是基於這方法做的

FantasyDR 发表于 2006-7-24 19:14:38

引用第3楼bilvdehu于2006-07-24 17:56发表的“”:
的确,现在RM的绘制效果还是比GM好~毕竟是直接从win系统里面调用字库~win的字库已经相当成熟了~相比我们使用的还是UCDOS下老一辈高手编写的字库~差距肯定是有的~但是值得我们欣慰的是~和win系统的无关性~使得它能在国外的任何机子上显示中文~呵呵~虽然老外看不懂~还有就是不会因为系统版本问题造成字体的不一致~能够保证游戏的界面和当初开发的效果一样~

主要是一旦开始点阵绘制~意味着我们就能自己做中文UI了~以前5.3的中文UI也能够被移植到6.1上来,这样的优势使我们开发中文商业游戏又近了一步。

如果有更好的字库~想必能实现得更好~

那种点阵字库可以很容易作出来的,汉化游戏ROM的时候,用的都是这种字库啊。
什么字体都可以得到,不需要从UCDOS什么东西里面找。有个软件叫:
点阵汉字生成
可以做任意大小的任意字体点阵。需要的话我在这里传一份给你。

关键是美观程度,阴影还是比较好实现的,边缘的反锯齿比较麻烦。Freetype就是做这个的,既然有志做GM的本土化不妨研究研究……想开发商业游戏还是漂亮点比较好。

yoxola 发表于 2006-7-24 19:16:03

握手...FreeType才是王道(這樣說有點奇怪就是了)

liver2006 发表于 2006-7-24 19:29:11

会的 我们只需要一点点时间而已

yoxola 发表于 2006-7-25 01:41:39

我最早實現FreeType繪製字元是在FreeBASIC下...
fbasic現在有Unicode支持顯示多國語言不是問題。
雖然我現在可以在其他語言下實現,但是也沒什麼時間搞。

要在GM下用到硬件加速的好處的話,大致思路是這樣吧
宣告區碼->轉成寬字符集->傳到FreeType並產生字型->丟出轉換好的點陣圖
->轉為GM專用材質供應用

用Unicode做思路會比較方便就是了,但攜帶TTF字型卻是很大,不太方便。
PS一下,我現在用的Compiler都支持Unicode了,所以我幾乎沒考慮ASCII的東西。

但是點陣字型來說,稍微小點的字,如果不是特殊設計好的字型
(簡體下是宋体,繁體下是明体)幾乎都會糊成一片。

堅持要用點陣的話,我的建議是,使用2倍大的字型,
應用時縮小,然後周圍加一像素的Blend,會美觀一點。

さくら 发表于 2006-7-25 06:19:35

堅持要用點陣的話,我的建議是,使用2倍大的字型,
應用時縮小,然後周圍加一像素的Blend,會美觀一點。
说实话我不喜欢这种方法
日本人喜欢这样做,可是我用在中文上很难看
按照我的试验,直接用1倍字型效果最好,即使是放大也比缩小效果好
页: [1] 2
查看完整版本: 7.24 GM6.1总于实现了字库点阵绘制!