作者Alimen (狂人)
看板GameDesign
标题Re: [请益] 有关openGL的文字输出
时间Fri Mar 2 01:09:27 2012
不知道原po找到答案没,容我在这里野人献曝一番。
这个问题其实很简单,可以参阅OpenGL官方文件
"避开OpenGL常见的16个陷阱"第九项:
http://tinyurl.com/7w8er46
(其实看图说故事就可以了,Fig. 3&4)
简单的说只要glRasterPos*()指定的位置位於view volume之外,
就会变成无效的位置而没办法画出东西。
因为就po的code看起来是在处理2D的画面,
所以要解决问题也很简单:
只要运用gluOrtho2D把view volume加大就行了,
再配合glViewport把加大的部分挪到视窗外面,不要影响到视线。
以下范例可以在视窗"外"加上一圈宽50、高50px的view volume:
// (前略)
// ... 清除color buffer,开始绘图
// WINDOW_*变数是你的视窗宽高,请不要照抄
//
glViewport(-50, -50, WINDOW_W, WINDOW_H);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluOrtho2D(-50, WINDOW_W+50, -50, WINDOW_H+50);
// 绘制文字 ... (後略)
这样就可以贴超出视窗范围了而不会爆了。
关於gluOrtho2D与glViewport的详细使用说明网路上资料很多,
在此不另赘述。
谢谢收看~
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 219.85.241.251
1F:推 xtxml:哦哦,大推,原来可以这样用...... 感谢Alimen :) 03/02 03:35