QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1836|回复: 11

关于linux下游戏开发,发问。

[复制链接]
发表于 2005-6-26 22:51:25 | 显示全部楼层 |阅读模式
我在网是看到了“linux下编写OpenGL程序的一些准备工作”
[code:1]需要用到的软件包有两个,glut 和tmake,分别可以从以下两个网址下载:
http://www.opengl.org/resources/libraries/glut/glut-3.7.tar.gz
ftp://ftp.trolltech.com/freebies/tmake/tmake-1.8.tar.gz

下载后的文件假设都放在/usr/src中

首先是安装glut库,以下是从www.linux.com找到的编译glut库的手册。

Install GLUT 3.7 Distribution (optional)

If you installed the MesaDemos/MesaLib package, then you have already installed GLUT 3.7 since it is included with MesaDemos. However, you may be interested in installing the GLUT

manpages and you can skip right to the "Install GLUT manual pages", below ...

Installing GLUT is a bit tricky. I'm not too familiar with imake, the program that it uses to manage the Makefiles, and didn't quite see how to get GLUT to install to where I wanted it (/usr/lib,

but MesaDemos will do this without any trouble though). It can be done manually anyhow:

cd /usr/src
tar -xvzf glut-3.7.tar.gz
cd glut-3.7

Read the file: README.linux
cd linux
READ the file: README
cp Glut.cf ..
cd ..
Edit Glut.cf: remove any Mesa references.
Replace any -lMesaGL -lMesaGLU with -lGL -lGLU if needed.
In particular, replace:
  OPENGL = $(TOP)/../lib/libMesaGL.so
  GLU = $(TOP)/../lib/libMesaGLU.so
with:
  OPENGL = -lGL
  GLU = -lGLU

./mkmkfiles.imake
cd lib/glut
cp /usr/src/glut-3.7/linux/Makefile .
Edit the Makefile: remove any Mesa references.
Replace any -lMesaGL -lMesaGLU with -lGL -lGLU if needed.
In particular, replace:
  OPENGL = $(TOP)/../lib/libMesaGL.so
  GLU = $(TOP)/../lib/libMesaGLU.so
with:
  OPENGL = -lGL
  GLU = -lGLU

make
ln -s libglut.so.3.7 libglut.so
ln -s libglut.so.3.7 libglut.so.3
cp -d libglut.* /usr/lib
cd ..
cd gle
# make a shared lib for libgle
make
gcc -shared -o libgle.so.3.7 *.o
ln -s libgle.so.3.7 libgle.so
ln -s libgle.so.3.7 libgle.so.3
cp -d libgle.* /usr/lib
cd ..
cd mui
# make a shared lib for libmui
make
gcc -shared -o libmui.so.3.7 *.o
ln -s libmui.so.3.7 libmui.so
ln -s libmui.so.3.7 libmui.so.3
cp -d libmui.* /usr/lib

        # Install the GLUT manual pages (not included with MesaDemos)
cd /usr/src/glut-3.7
make SUBDIRS=man Makefile
cd man/glut
make install.man
ldconfig

cd ../../progs/demos/ideas
# edit the Makefile, change OPENGL = -lGL and GLU = -lGLU
make
./ideas
# test compiling some demos
# take a look at which libraries have to be linked (-lX11 ...) in
# the Makefiles.  Qt's tmake program available at www.troll.no
# is a quick way to make a Makefile but you have to edit it
# and add the -l needed.
ideas如果运行成功的话,说明glut已经可以用了。

上面的几步中,下载的glut包放在/usr/src目录下,如果放在其他目录下,将/usr/src改为相应的目录即可。
此外应该注意的是两个Makefile文件的修改

·  OPENGL = $(TOP)/../lib/libMesaGL.so
  GLU = $(TOP)/../lib/libMesaGLU.so

  OPENGL = -lGL
  GLU = -lGLU
因为所指定的目录中没有libMesaGL.so和libMesaGLU.so。

之后是tmake的配置,后面我们可以用它来生成pro工程文件和makefile文件。

先将下载的tmake解压缩,tar  -zxvf  tmake-1.8.tar.gz
得到tmake-1.8目录,之后设置两个环境变量:PATH和TMAKEPATH
PATH=$PATH:/usr/src/tmake-1.8/bin
export PATH
TMAKEPATH=/usr/src/tmake-1.8/lib/linux-g++
export TMAKEPATH

新建一个测试目录test,将glut-3.7目录下的progs/redbook目录下的hello.c复制到test目录中

之后生成一个pro文件:progen  -o hello.pro

然后生成makefile文件:tmake hello.pro -o Makefile

编辑生成的Makefile文件,在加载动态连接库的行里面加入 -lglut -lXi -lXmu

保存,make。

./hello 可以看到运行结果就可以了。


[/code:1]
对于以上的我下载了!大至的意思也明白,不过我不敢试,因为我的系统有个SDL的,glut 同SDL不知会不会有冲突,所以前来问清楚先!
希望通过这个问题,可以引出更多关于linux下游戏开发的讨论!
发表于 2005-6-26 23:31:36 | 显示全部楼层
glut和SDL没有冲突的
回复

使用道具 举报

发表于 2005-6-27 16:18:46 | 显示全部楼层
同上。

SDL可支持glut,即SDL程序中也可以使用glut的函数来实现3D绘图。
回复

使用道具 举报

 楼主| 发表于 2005-6-29 14:31:02 | 显示全部楼层
哦,多谢两位
回复

使用道具 举报

发表于 2005-6-29 15:26:02 | 显示全部楼层
hobby是想学OpenGL编程吧,有个网站推荐你看一下:

http://nehe.gamedev.net/
回复

使用道具 举报

 楼主| 发表于 2005-6-29 23:53:25 | 显示全部楼层
多谢楼上的大哥!
我在这里也放一个地址:一个译网,很好用,可能有朋友很早就知了!不过我还是放出来,给楼下的朋友,希望大家用得上!
http://www.babelfish.altavista.com/babelfish/tr
回复

使用道具 举报

 楼主| 发表于 2005-6-29 23:59:06 | 显示全部楼层
其实,有时对一些EN新文等,我是先用上面的译网,如果出现质量问题型,就会用星际译王(在本论坛上有),值得推荐
回复

使用道具 举报

 楼主| 发表于 2005-7-4 14:54:17 | 显示全部楼层
在下面我想讨论一下opengl的库:
出除了opengl基本(核心)库之外,还有一些用于处理专门操作的附加库.opengl实用函数(opengl utility GLU)提供发一些例程,可以设置观察和投影矩阵,利用线条和多边形近似法来描述复杂对象,使用线性近似法显示二次曲线和样条曲线,处理表面绘制操作,以及完成其他的复杂任务
回复

使用道具 举报

 楼主| 发表于 2005-7-4 15:00:58 | 显示全部楼层
第一个oprngl实现中都包括GLU库,所有GLU函数均用前缀glu开头.
还有一个成称为open inventor的基于opengl的面向对象工具包,它为交互式三维应用提供函数和预定义的对象形状.
回复

使用道具 举报

 楼主| 发表于 2005-7-4 15:13:25 | 显示全部楼层
还有一点是:为了用opengl建立一个图形,必要先在视频屏幕上设置显示窗口.它是一个屏幕上简单矩形,图形将在其中显示.不能直接使用基本的opengl函数来创建显示窗口,因为该库中只有与设备无关的函数,且窗口管理操作依赖所用的计算机.但是,有多个支持各种计算机上的opengl函数的窗口系统接口,有:GLX(X窗口系统),AGL(apple系统的),WGL(microsoft系统的)
回复

使用道具 举报

 楼主| 发表于 2005-7-4 15:19:54 | 显示全部楼层
最后的就是pengl实用函数工具包(opengl utility toolkit)提供了与任意屏幕窗口系统进行交互的函数库,这个库中也有描述与绘制二次和样条曲线的方法.
由于GLUT是一个与其它依赖设备的窗口系统的接口,可以利用GLUT使得程序成为与设备无关的!
回复

使用道具 举报

 楼主| 发表于 2005-7-4 15:25:27 | 显示全部楼层
这里有一个问题:拿初始化来说,是用glutInit()还是用SDL 的SDL_Init ()!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-5 17:31 , Processed in 0.047554 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表