我创建了一个包含不同颜色和材质的多个管道(阀门,人孔)的3D场景。现在我想用鼠标选取它们并获取它们的属性(颜色,材质)。我试图使用glupushmatrix,这是OpenGL API提供的方法,当视点几乎在管道前面时它就工作了。但是当从不同的视角看时,比如从(0,1,1)到(0, 0,0),它不能这样做。更重要的是,在glupushmatrix之前我没有找到函数glulookat的投影设置。我也尝试使用基于光线追踪的数学方法,但是我发现很难用蛮力对每个管道进行相交测试。从任意角度拾取3d
回答
感谢您的关注。事实上,我使用了相同的技术。我跟着[教程链接](http://www.lighthouse3d.com/opengl/picking/),当你正好在对象前面时它就工作了(就像雪人的例子)。但是,从其他角度来看,如鸟瞰,它失败了。我不知道这是这种方法的局限性还是我的程序存在问题。 – Leoxu
@Leoxu:我在3D环境中使用了这种技术,效果很好。显示也许你的代码。绘图顺序是在选择模式下重写深度测试,如果我记得... –
@Leoxu:你的tuto想念一个[''glutPickMatrix'](http://www.opengl.org/sdk/docs/man2/xhtml/gluPickMatrix.xml )例子。它是帮助您设置正确的采摘矩阵。 –
- 1. 用Java拾取形状3D
- 2. C++ 3D角速度
- 3. 快速任意角度寻路
- 4. EasyBMP以任意角度旋转图像
- 5. 如何使用Scipy从3D卷中提取任意2D片段?
- 6. 从2D操纵杆获取3D旋转轴和角度
- 7. 从三个角度获取角度
- 8. 3D C++任意网格三角剖分库?
- 9. 以任意角度从墙上弹出一个球?
- 10. 为什么这种角度依赖不被拾取?
- 11. 角度服务/价值是不拾起从$(document).ready()
- 12. Rufus调度程序任务运行时拾取rspec
- 13. 角架构形式默认不拾取
- 14. API.ai意图不拾取实体
- 15. 从角度获取坐标
- 16. 从ModelViewMatrix获取角度
- 17. 提取任意度的算术根
- 18. 以立体角度计算3D物体的2D角度
- 19. Ansible在不拾取从
- 20. 任意精度包
- 21. OpenGL拾取后没有任何结果
- 22. 如何从android中获取任何地理位置的角度?
- 23. 从任意长度的字符串中提取子字符串
- 24. 从数组数组中读取任意长度的数组
- 25. iOS角度右/左3D效果
- 26. JavaFX 3D三角网与透明度
- 27. 如何在MATLAB中绘制3D角度
- 28. 3D相对角度总和计算
- 29. 将3d角度分成相等数量
- 30. CSS 3D变换角度问题
首先,'gluPushMatrix'不是OpenGL的规范的一部分。其次,ray * casting *(与追踪不同)很容易,即使使用了您所建议的“强力”方法,并且具有合理数量的形状以及一些广泛扑灭(AABB应该这样做)应该“对每个人都足够”。这就是说,显示用于基于颜色的选取的代码,因为现在我们知道的是它不起作用。 –