gluPickMatrix:http://blog.csdn.net/augusdi/article/details/7282336

void gluPickMatrix(GLdouble x,GLdouble y,GLdouble width,GLdouble height,GLint viewport[4]);

它是用来根据当前鼠标选择区域生成一个相应的投影矩阵的。这里面头两个参数不是这个选择区域的左上角位置,而是整个区域的中心位置。如果错把它当成左上角,选择的区域就会斜向上有个偏移。OpenGL红宝书上没有区域选择的例子,只有一个通过鼠标点击选择的程序,因而没有说明这个问题。

opengl 拾取与选择 :http://blog.csdn.net/lcphoenix/article/details/6588033

glGetIntegerv(GL_VIEWPORT, viewport);
glSelectBuffer(mesh_.n_vertices(), &selectBuf[0]);
glRenderMode(GL_SELECT);
glInitNames();
glPushName(mesh_.n_vertices());glMatrixMode(GL_PROJECTION);
glPushMatrix();
glLoadIdentity();gluPickMatrix(cenX, cenY, detX, detY, viewport);glMultMatrixd(projection_matrix());
draw_scene(draw_mode());
glMatrixMode(GL_PROJECTION);
glPopMatrix();
glFlush();hits = glRenderMode(GL_RENDER);
processPickHits(hits, &selectBuf[0], _event->modifiers() == ControlModifier, singlePick);

gluProject函数:http://blog.csdn.net/kaizitop/article/details/4158521;http://www.opengl.org/sdk/docs/man/xhtml/gluProject.xml

关于winz的说法:理论上说 winz=0和1分别表示 near 和 far clipping plane,http://bbs.gameres.com/showthread.asp?threadid=107040

gluUnProject函数:http://www.opengl.org/sdk/docs/man/xhtml/gluUnProject.xml;http://www.opengl.org/sdk/docs/man/xhtml/glReadPixels.xml

http://blog.sina.com.cn/s/blog_4ff085000100eoaj.html

关于文中的保留变换(可能和原文意思不一样):

glMatrixMode( GL_MODELVIEW );
glLoadIdentity();glTranslatef(t[0], t[1], t[2]);
glRotated( _angle, _axis[0], _axis[1], _axis[2]);glMultMatrixd(modelview_matrix_);
glGetDoublev(GL_MODELVIEW_MATRIX, modelview_matrix_);

渲染的时候:

glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);glMatrixMode( GL_PROJECTION );
glLoadMatrixd( projection_matrix_ );
glMatrixMode( GL_MODELVIEW );
glLoadMatrixd( modelview_matrix_ );render();SwapBuffer();

关于glPushMatrix和glPopMatrix的解释:

http://bbs.gameres.com/thread_90188.html

转载于:https://www.cnblogs.com/USTC-fuxm/archive/2012/08/16/2641943.html

在3D模型上选择顶点相关推荐

  1. 基于ThreeJS实现3D模型上的室内灯光效果模拟

    基于ThreeJS实现3D模型上的室内灯光效果模拟 示例描述与操作指南 示例效果展示 实现步骤 示例描述与操作指南 当前示例用于展示室内灯光的多角度光影效果. 示例效果展示 实现步骤 第一步 创建聚光 ...

  2. 如何在3D模型上实现太阳光照模拟?

    如何在3D模型上实现太阳光照模拟? 示例描述与操作指南 示例效果展示 实现步骤 示例描述与操作指南 当前示例用于模拟太阳光照效果. 示例效果展示 实现步骤 第一步 添加屏幕炫光 /*** @descr ...

  3. ResNet也能用在3D模型上了,清华「计图」团队新研究已开源

    鱼羊 发自 凹非寺 量子位 报道 | 公众号 QbitAI 用AI处理二维图像,离不开卷积神经网络(CNN)这个地基. 不过,面对三维模型,CNN就没有那么得劲了. 主要原因是,3D模型通常采用网格数 ...

  4. 清华大学胡事民是计算机视觉,ResNet也能用在3D模型上了,清华「计图」团队新研究已开源...

    鱼羊 发自 凹非寺 量子位 报道 | 公众号 QbitAI 用AI处理二维图像,离不开卷积神经网络(CNN)这个地基. 不过,面对三维模型,CNN就没有那么得劲了. 主要原因是,3D模型通常采用网格数 ...

  5. 清华大学胡事民是计算机视觉,ResNet也能用在3D模型上了,清华“计图”团队新研究已开源...

    鱼羊 发自 凹非寺 量子位 报道 | 公众号 QbitAI 用AI处理二维图像,离不开卷积神经网络(CNN)这个地基. 不过,面对三维模型,CNN就没有那么得劲了. 主要原因是,3D模型通常采用网格数 ...

  6. 全民打枪!在3D模型上的2D血条如何实现?

    大家好,我是「杨宗宝」,穿越来到了现代!很高兴你能认识到我,因为我现在不喜欢舞枪弄棒,而痴迷于敲代码,特别是游戏代码! 虽然我参与过触控的"捕鱼打人3",但好像没什么感觉!唯一有感 ...

  7. 自己做的3D模型上传成功以后要多久才可以在thingjs中使用呢?

    看客户端"DIY模型库-已上传的模型"目录,显示"转换完成"差不多就可以了 具体时间和您模型复杂度.平台模型服务繁忙程度相关 @Black 这种情况,弹窗纯用代 ...

  8. BundleTrack:无需实例或类级别3D模型的6D姿态跟踪算法(IROS2021)

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 作者丨paopaoslam 来源丨泡泡机器人SLAM 标题:BundleTrack: 6D Pose ...

  9. Cesium学习笔记(五):3D 模型 (http://blog.csdn.net/umgsoil/article/details/74572877)

    Cesium支持3D模型,包括关键帧动画,皮肤的改变还有单个节点的选择等,Cesium还提供了了一个基于网络的工具,将COLLADA模型转换为glTF,方便和优化模型添加 还记得我们在实体添加的时候添 ...

最新文章

  1. ASP.NET【4】--ASHX
  2. 内部类、包、修饰符、代码块
  3. 除了修改WEBCONFIG会导致WEB服务重启外,还有其他的什么操作会导致重启?
  4. 攻击人脸识别,最高奖励10万 | 微众银行第二届金融科技高校技术大赛正式启动...
  5. 【需求对接】ATR“春雨”博士后联合基金指南
  6. bootstrape实战案例_bootstrap 实战入门教程(一)
  7. 强化学习的数学基础4---Q-Learning进阶
  8. Python实战—CSDN自动登录及评论
  9. fotify php审计,Fortify下载-代码审计工具Fortify SCA下载v20.1.1 最新版-西西软件下载...
  10. Win7 64位系统安装SQL Server2005
  11. 史上最全法则、效应大全,看一遍受用终身!
  12. 【Verilog基础】卡诺图化简要点总结
  13. linux 检查系统丢包,Linux系统网络丢包问题解决
  14. Unity3D眼镜Shader技术实现
  15. OJ 2306 Problem C Banana
  16. BNUOJ 4140 Video Game Troubles
  17. 【凯子哥带你学Android】Andriod性能优化之列表卡顿——以“简书”APP为例
  18. 使用PIL包给图片增加水印
  19. 蓝牙电话协议HFP(Hands-Free Profile) SCO建立/释放/在通话中Audio transfer
  20. IDEA中WEB项目结构和Artifacts设置

热门文章

  1. Perl -- 使用Perl 读取和发送邮件
  2. 使用python开发网页游戏_四大游戏编程网站,边玩游戏,边学Python,拒绝枯燥快乐编程...
  3. urlos 阻止访问ip_URLOS使用流程
  4. Java并发包下的CAS相关的原子操作
  5. select count(1)什么意思_Python VS MySQL,我发现了select和print之间的“相通点”!
  6. 为什么java要你写static,java static关键字理解
  7. 小米互联通信服务_时隔六年,小米NFC碰碰贴复活,碰一下自动亮灯、联网、投屏...
  8. ssm上传文件获取路径_ssm框架实现图片上传显示并保存地址到数据库(示例代码)...
  9. oracle存储过程传整数,oracle存储过程传参数
  10. oracle hibernate 自动创建表,自动创建表时,多了一张表hibernate_sequence,为什么?