当物体的层次信息已经记录在其他地方时,openGL的层次式挑选还有意义吗?
假设每个物体都有ID,需要挑选的物体直接用其ID作为挑选时的名字。而且已知ID,就能知道物体所处的层次。在这种情况下,还有必要用openGL的glPushName来进行层...
假设每个物体都有ID,需要挑选的物体直接用其ID作为挑选时的名字。
而且已知ID,就能知道物体所处的层次。
在这种情况下,还有必要用openGL的glPushName来进行层次式挑选吗?
比如:太阳1,地球2,月亮3;层次关系:3依附于2,2依附于1。层次关系记录在某个结构中。
即使我不用glPushName,而只是用glLoadName(),当我最终查询拾取记录时也能根据名字查找到相应物体的ID,再在记录层次关系的结构中查找这个物体所处的层次。
如果这样做,是不是不需要用到openGL的层次式挑选了? 展开
而且已知ID,就能知道物体所处的层次。
在这种情况下,还有必要用openGL的glPushName来进行层次式挑选吗?
比如:太阳1,地球2,月亮3;层次关系:3依附于2,2依附于1。层次关系记录在某个结构中。
即使我不用glPushName,而只是用glLoadName(),当我最终查询拾取记录时也能根据名字查找到相应物体的ID,再在记录层次关系的结构中查找这个物体所处的层次。
如果这样做,是不是不需要用到openGL的层次式挑选了? 展开
2个回答
展开全部
大哥你好又是我来回答问题,来百度知道问稍微专业一点的问题,是没有人会回答的,大家都去csdn了,前不久挂了个opengl的关键词,所以老是看见你提问~
更多追问追答
追答
首先你说的层次是不是指一个物体的多重命名? glpushname只会给将要绘制的物体多加一个名字,比如push(动物) push(猪) draw() pop pop,这样如果你选择到猪的时候会给另一个名字-》动物,两个名字同时存到我们上回讨论的selectbuffer。 glloadname是push和pop的组合,所以本身这些函数并没有提供分层功能。
如果你想在外面建一个mapping也是可以的,问题就是这样做没有意义,因为会增加查找复杂度,而直接用pushname可以将改物体的多个名字根据namestack绘入缓冲,时间复杂度为1。
2015-01-18
展开全部
朋友去 周年庆 吧看置顶帖领100M免费流量和手套米键吧,人人有份我已经领了~沤车讣
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询