游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2116|回复: 1

请问高手如何进行opengl 的选择模式

[复制链接]

1

主题

1

帖子

5

积分

新手上路

Rank: 1

积分
5
发表于 2007-9-29 19:55:00 | 显示全部楼层 |阅读模式
我最近做了一个化工塔的模型,想在鼠标点中的地方显示对应点的坐标,由于opengl没有函数可以从鼠标点中的地方可以取坐标(估计是深度不能确定),所以选择用opengl的选择模式,可是我每次选择的时候
hits := glRenderMode(GL_render);
中的hits始终都是0,不知道怎么回事
我使用delphi编的
程序如下
   点击选择:
    glGetIntegerv(GL_VIEWPORT, @viewport);
  // 设置选择缓冲区并切换到选择模式
  glSelectBuffer(BUFSIZE, @selectBuf);
  glRenderMode(GL_SELECT);
  // 初始化名字堆栈,然后将首记录填充一个无意义的值
  // 因为一个空堆栈将导致调用glLoadName()函数失败
  glInitNames;
  glPushName(1000);
  // 设置拾取所用的视见体
  glMatrixMode(GL_PROJECTION);
  glLoadIdentity;
  glPushMatrix;
    gluPickMatrix(x, viewport[3]-y, 1, 1, viewport);
    glPushMatrix;
    draw(GL_SELECT);
  glPopMatrix;
  glPopName;
  glFinish;
  hits := glRenderMode(GL_render);
   msg := '命中: '+ IntToStr(hits) + #13#10;
    names := selectBuf[0];
    msg := msg + #13#10 + '命中名字数 = ' + IntToStr(names);
  

2

主题

429

帖子

435

积分

中级会员

Rank: 3Rank: 3

积分
435
发表于 2007-9-29 23:20:00 | 显示全部楼层

Re:请问高手如何进行opengl 的选择模式

鼠标拾取,dx也没有函数可以直接用,需要自己写,这个网上资料很多,你搜搜就有。

至于选择模式。。。请看红宝书或opengl超级宝典,有详细的说明及示范。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-6-21 04:58

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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