myisland 发表于 2014-3-12 13:44:36

[Delphi版]OpenGL入门学习1:编写第一个OpenGL程序

0. Requires
GLU.pas
GL.pas

OpenGLPanel.pas

1.第一个OpenGL程序

绘制代码:
[*]procedure TForm1.OpenGLPanel1Paint(Sender: TObject);
[*]begin
[*]glClearColor(0.0, 0.0, 0.0, 0.0);// 设置背景色(清除scene)
[*]glClear(GL_COLOR_BUFFER_BIT);      // 清除颜色缓冲区
[*]
[*]glrectf(-0.5,-0.5,0.5,0.5);      //绘制矩形
[*]
[*]OpenGLPanel1.SwapBuffers;
[*]end;

复制代码
2.解析
VCL TOpenGLPanel对获取RC等常规操作进行了封装,用户可以把精力集中在“如何绘制/显示”。
“当需要画图时,请调用TOpenGLPanel的OnPaint函数”。于是OnPaint函数就用来画图。观察OnPaint中的三个函数调用,发现它们都以gl开头。这种以gl开头的函数都是OpenGL的标准函数,下面对用到的函数进行介绍。

    (i)glClearColor ,清除当前显示场景的颜色,并用指定背景色填充。使用的颜色类型为RGBA。

   (ii)glClear,清除。GL_COLOR_BUFFER_BIT表示清除颜色,glClear函数还可以清除其它的东西,但这里不作介绍。

    (iii) glRectf,画一个矩形。四个参数分别表示了位于对角线上的两个点的横、纵坐标。

沉默的风采 发表于 2014-3-12 13:56:03

Delphi有OpenGL控件吗,我还不知道,因为这方面的教程太少了,而且别人说OpenGL在游戏方面不如DirectX,也不知道是真的还是假的。

myisland 发表于 2014-3-12 14:35:41

沉默的风采 发表于 2014-3-12 13:56 static/image/common/back.gif
Delphi有OpenGL控件吗,我还不知道,因为这方面的教程太少了,而且别人说OpenGL在游戏方面不如DirectX,也不 ...

Delphi自带OpenGL单元。
DX与OpenGL的差别:
使用OpenGL出现问题,什么都不会发生;
使用DX出现问题,什么都有可能发生!

沉默的风采 发表于 2014-3-12 14:55:50

但是OpenGL的学习资料比较少,而与Delphi相关的OpenGL更少了,有也是将近10年前的东西了。

Angel丶L 发表于 2015-2-1 16:47:08

支持楼主发扬Delphi
页: [1]
查看完整版本: [Delphi版]OpenGL入门学习1:编写第一个OpenGL程序