编写 OpenGL 程序的基本步骤 (100分)

  • 主题发起人 主题发起人 小雨哥
  • 开始时间 开始时间
多谢,多谢
前几个月学了几天OPENGL不得新得,又放弃了
现在可以重新学习一下了!
 
参考的是NEHE代码的Delphi版吧(《可视化OPENGL编程》里的)?
最好注明一下,不要连原作者的名字都看不到
 
我想问一下,
能不能纯粹用DELPHI做一个
类似CS的游戏出来呢?
 
To:爱元元的哥哥
没错,OpenGL 不管中文显示,位图字体函数肯定是不能用了,需要使用装载字模
的轮廓字体函数,或自己完成显示例程,简单的做法是使用 glBitmap 画汉字。我的
联系 mail 是 : wxynet@163.net ,有空联系。

TO:gxcooo
没有看到 NEHE Delphi 代码,看过他的 C 代码。由于 OpenGL 的初始化基本就
这些 ( 还可以更简单,或直接利用 Delphi 自己的 Form 做窗体),但循环结构和
框架 ( 复杂应用还有算法 ),是因人而异的,简单地说,如果你有 NEHE 的 Delphi
版代码或其他什么老外的代码,请在 OpenGL 处于非活动时,查看 CPU 占用,同时
也测试一下同样环境我贴的代码。还有其它一些不同,你可以自己看看。
 
呵呵,你可以把你的修改意见提交给NEHE,也许他会告诉你他的见解
毕竟你用的人家的框架,在说明部分注明一下算是比较礼貌的
 
这篇的原始框架,出自 Jan Horn ,教学的逻辑使用了 NeHe 教程,目的是:任何一个
使用 Delphi 编程的人,不需要有 OpenGL 经验,只要仔细地看完我贴的全部相关帖子,
并相互比对,就可以看懂并开始写 OpenGL 程序。国外的专家比较注重教学内容的详实,
NeHe 的 OpenGL 教程是其中的佼佼者,如果自己可以熟练运用几种语言,并且 E 文不错
的话,可以看 NeHe 的原著:http://nehe.gamedev.net/ ;如果希望看更多范例的话,
可以看 Jan Horn 的作品:http://www.sulaco.co.za/opengl.htm 。如果对游戏编程特
别感兴趣,可以看中文网站:http://www.gameres.com/index.htm 游戏资源站。
另外,我在 http://www.xxtax.gov.cn/delphi/google/OpenGL.rar 文件包中的另外一个
Demo 中,使用了 Delphi 的框架,特此感谢 Anders 。
 
http://delphigl.cfxweb.net/ 一个不错的OPENGL网站
 
哈哈,不要打架啊!我来迟了!就观看吧!
 
谢谢,收藏!
 
祝大家新年愉快。
 
为了合理的利用CPU资源,微软的游戏循环(摘自DirectX9 SDK demo)如下:
INT CD3DApplication::Run()
{
// Load keyboard accelerators
HACCEL hAccel = LoadAccelerators( NULL, MAKEINTRESOURCE(IDR_MAIN_ACCEL) );

// Now we're ready to recieve and process Windows messages.
bool bGotMsg;
MSG msg;
msg.message = WM_NULL;
PeekMessage( &msg, NULL, 0U, 0U, PM_NOREMOVE );

while( WM_QUIT != msg.message )
{
// Use PeekMessage() if the app is active, so we can use idle time to
// render the scene. Else, use GetMessage() to avoid eating CPU time.
if( m_bActive )
bGotMsg = ( PeekMessage( &msg, NULL, 0U, 0U, PM_REMOVE ) != 0 );
else
bGotMsg = ( GetMessage( &msg, NULL, 0U, 0U ) != 0 );

if( bGotMsg )
{
// Translate and dispatch the message
if( hAccel == NULL || m_hWnd == NULL ||
0 == TranslateAccelerator( m_hWnd, hAccel, &msg ) )
{
TranslateMessage( &msg );
DispatchMessage( &msg );
}
}
else
{
if( m_bDeviceLost )
{
// Yield some CPU time to other processes
Sleep( 100 ); // 100 milliseconds
}
// Render a frame during idle time (no messages are waiting)
if( m_bActive )
{
if( FAILED( Render3DEnvironment() ) )
SendMessage( m_hWnd, WM_CLOSE, 0, 0 );
}
}
}
if( hAccel != NULL )
DestroyAcceleratorTable( hAccel );

return (INT)msg.wParam;
}
 
这么长呀!
好难看懂呀!
 
谁能给我一个OpenGL写的模拟钟表的源代码?VC的delphi的都要。要那种能转动的哦
收到以后请到这里来领分。
http://www.delphibbs.com/delphibbs/dispq.asp?lid=2629196
300分哦。

Email puzzledj@sina.com

谢谢
 

Similar threads

I
回复
0
查看
686
import
I
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部