C++_OpenGL选择模式理解.docxVIP

  • 5
  • 0
  • 约1.04万字
  • 约 14页
  • 2019-10-27 发布于湖北
  • 举报
在用OpenGL进行图形编程的时候,通常要用鼠标进行交互操作,比如用鼠标点选择画面中的物体,我们称之为拾取(Picking),在网上看了很多OpenGL拾取的文,但大多是只是介绍在OpenGL中如何拾取,如何利用OpenGL提供的一系列函数来完成拾取,最多再简单介绍下OpenGL的*名字栈(Name stack),拾取矩阵(PickingMatrix)*等等,但是拾取真正的原理确没有提到。所以,我在这里为大家详细介绍下OpenGL中拾取是怎样实现的,以及其背后的真正原理。 OpenGL中的拾取是对OpenGL图形管线的一个应用。所以OpenGL中的拾取并不是像D3D一样采用射线交叉测试来判断是否选中一个目标,而是在*图形管线*的*投影变换(Projection Transformation)*阶段利用拾取矩阵来实现的。为了理解这个过 程,先来复习一下OpenGL的图形管线。 总的来说,OpenGL图形管线大体分为上面的五个阶段。在编程的时候使用*glMatrixMode(GL_MODELVIEW),或者 glMatrixMode(GL_PROJECTION)*就是告诉OpenGL我们是要在那个阶段进行操作。先来看看投影变换,因为理解投影变换是理解OpenGL拾取的前提条件。为了简单起见,这里以*正交投影(Orthogonal Projection)*为例。在OpenGL中,使用正交

文档评论(0)

1亿VIP精品文档

相关文档