请教OpengGL程序发布问题,高手请进

zhangyan_qd 2002-07-08 05:54:37
我用VB开发了一个OpenGL程序,2000下。
打包时是否需要把opengl32.dll、glu.dll和glut.dll一起打进去?(类型库已打进去了)?我打进去了。
在98下安装之后,说opengl32.dll找不到,发现opengl32.dll无法注册(需要注册吗?),从别的机器上拖了一个opengl32.dll过来,注册时说没有函数导出接口?!
但是程序正常了,就是画不出东西来......
又拖了一个opengl.dll过来,不知道这个opengl.dll和opengl32.dll有什么差别?
一番折腾之后终于发现了问题所在:我要画的东西实际是画出来了,但是好像景深很浅,稍稍后退一点之后原先看得见的东西就隐掉了,好像有雾化效果一样。但实际上我没有开过雾化!怀疑是视锥或者视点的问题,但几次改动之后始终不对。
我的设置:
投影区域:45度,x:y=1,前截面0.1,后截面1e20
视点用glutlookAt设的,我画的是十排柱子,相互之间间隔大概6000,但我只能看到一两排,后面的稍远一点就会渐渐隐掉。
Zbuffer的初值从1到1e20都试了,都不行。
请问,Zbuffer的初值是什么意思?是经过变换之后的0-1之间的Z值还是实际的Z值?我应该设成多少?(Z值最大的点大约是60000)
再请问,我的图里面有些地方消隐是错的,本来比较后面的面跑到前面来了,但有的地方是对的,请问可能是什么原因?我打开DepthTest了。

...全文
87 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
抬头看路 2002-07-15
  • 打赏
  • 举报
回复
你选择得像素格式有问题,可能根本就没有z-buffer
zhangyan_qd 2002-07-15
  • 打赏
  • 举报
回复
经过检查,发现实际是ZBuffer根本就没开,无论我怎么改变设置,总是最后画的一个在最前面。
请问,zbuffer不起作用可能是因为什么原因?我的配置可以看楼上的帖子。关键在于我在机器上用别人的程序和玩Q3都没什么问题,别告诉我Q3没用zbuffer:)
fastbit 2002-07-12
  • 打赏
  • 举报
回复
你检查一下glClearDepth和glClear的返回值,看两个函数是否真的调用功。
你最好也检查glDepthFunc和glDepthRange函数特别是glDepthFunc,看传的
参数是否符合你自己的目的,建议用GL_LEQUAL参数

zhangyan_qd 2002-07-12
  • 打赏
  • 举报
回复
2000下用的是815E自带的i752,升级到最新的驱动,98下是ATI Rage 128(DELL原装P4带的,faint!)。
另,好像zbuffer的问题不是有错,而是ZBuffer完全不起作用,每个应该画出来的面无一漏网全画出来。如果关闭Culling,连背面都给我画出来了!
我学OGL时间不长,请问打开ZBuffer应该做哪几步?我做的是:
1.初始化的时候glEnable DepthTest
2.glClearDepth 1.0
3.绘制每帧之前glClear DepthBuffer
我还有什么没做的吗?ZBuffer和像素格式有关吗?
tangt 2002-07-11
  • 打赏
  • 举报
回复
柱子间隔降低,
近距截面0.0001,越小越好
源代码在98下调一下,因该容易查处问题所在,看和编译环境有无关
fastbit 2002-07-11
  • 打赏
  • 举报
回复
glut运行部分是需要的(至少WIn98系统下需要)
你的那些莫名其妙的错误可能来自显卡,不一定是程序的问题,告诉一下
你的卡名
zfnlj 2002-07-11
  • 打赏
  • 举报
回复
gz
wolfliu 2002-07-11
  • 打赏
  • 举报
回复
消隐错误是驱动程序本身错误的原因,你更新驱动程序就行了

另外glut.dll是需要的,我犯了个错误
抬头看路 2002-07-10
  • 打赏
  • 举报
回复
glut还是需要的,glut32.dll不是windows自带的,需要发布的时候包括。
wolfliu 2002-07-10
  • 打赏
  • 举报
回复
我认为不需要,因为OpenGL的驱动程序是Windows各个版本自带的,
而且不同的显示卡也有自己的驱动实现,你没有必要打包opengl32.dll、glu.dll和glut.dll,如果你这么做的话,反而会造成问题,因为不
同版本的 Windows的驱动是不同的,比如Windows 2000的OpenGL动态库
拷贝到 Windows 98下,会覆盖原来的库,你的程序就不能运行了
zhangyan_qd 2002-07-10
  • 打赏
  • 举报
回复
那么消隐错误也和驱动版本有关吗?在2k和98下都有这个问题。

8,303

社区成员

发帖
与我相关
我的任务
社区描述
游戏开发相关内容讨论专区
社区管理员
  • 游戏开发
  • 呆呆敲代码的小Y
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧