冒险解谜游戏中文网 ChinaAVG
标题:
【OpenGL汉化研究】OpenGL汉化新思路
[打印本页]
作者:
shane007
时间:
2010-1-23 22:08
标题:
【OpenGL汉化研究】OpenGL汉化新思路
最近对OpenGL进行了一些研究,有了一些新的思路,先写下来备忘。
7 }' I' P* c; _
5 W! X% m. m+ h* u i
OpenGL的汉字显示,简单的说就是先用wglUseFontBitmaps函数把所有字符生成显示列表,
0 ^" k1 H* M6 e) Y9 [& W# v; C: p/ B
然后用glCallList把显示列表显示出来。
. }: o# A4 ~! {
% A) g/ @$ G, A" x3 Q2 n5 _: |
下面说说汉化思路
3 u. t$ E$ O7 l, W8 A" a/ S
思路1. 英文游戏一般只生成了英文的显示列表,所以通过汇编级加大显示列表的容量,把所有的
6 C. b3 ]8 R8 x+ |
中文字符都生成到显示列表里面,估计就可以实现汉化。当然,程序的性能可能会有影响,
0 i# a" a7 N( D. y2 a
但是,我认为生成显示列表一般在游戏初始化的时候进行一次,所以问题应该不是太大。
: r2 L) ~5 l$ J! q+ M
下面的帖子可供参考
& P- x& W9 {6 x9 V; ^
Win32下OpenGL的中文显示
% ^/ Z, [- W$ y
https://www.chinaavg.com/read.php?tid=20406
3 A- `6 w5 H3 `3 @" D- a
. R* }5 i6 E& u
思路2. 根据我的理解,游戏更新画面的过程一般是这样的
3 `& {" o" Z. L+ Y: N% B6 N
" }% c m2 D5 k
更新画面函数(区域1)
+ Q) r6 x% o& \% ]8 w8 ?
更新画面函数(区域2)
8 } M4 T& m& ?* F5 U2 J% `8 B- p
。。。
9 A5 n& h* h# k* q& ~
更新画面函数(区域3)
! A" d+ ?' c6 [6 |/ v- g
显示函数(字幕1)
5 X/ H( y) u* \# p0 r
显示函数(字幕2)
5 c4 L& R/ o! Q- P
。。。
# z: |( \ t. H
显示函数(字幕3)
) Y& r7 L, X. s. _ N) u0 }
SwapBuffers(wglGetCurrentDC())
) }* i+ t) q( M5 {( q/ Q
$ e6 u, X5 {( }# @0 s0 M3 D1 D
所以,在显示函数的入口处,我们可以内挂一个DLL,把要显示的字幕输出到一个ini文件或是内存镜像文件中,然后HOOK SwapBuffers函数,在调用真正的SwapBuffers函数以后,读取ini文件或是内存镜像文件的内容,把要显示的字幕用textout函数显示到当前DC上,即可实现汉化。
+ |% n) q L0 C6 ^
; c) M+ L0 a6 i) z5 W
先把汉化思路写下来,等有空的时候再做试验,期待可以解决nibiru等使用opengl API的游戏的汉化问题。
作者:
solidji
时间:
2010-9-28 16:12
准备研究下OpenGL的绘制过程
欢迎光临 冒险解谜游戏中文网 ChinaAVG (https://chinaavg.com/)
Powered by Discuz! X3.2