文档中说
启动 Dandelion,加载 cube.obj 并进入建模模式 (model mode) 就可以看到用箭头表示的半边。直接点击某条半边就可以选中它,此时点击 Local Operations 一栏下的 Inverse, Next, Previous 等按钮就可以在这条半边连接的元素之间切换(如图 1.5 右侧所示)。
但是我无法选中
文档中说
启动 Dandelion,加载 cube.obj 并进入建模模式 (model mode) 就可以看到用箭头表示的半边。直接点击某条半边就可以选中它,此时点击 Local Operations 一栏下的 Inverse, Next, Previous 等按钮就可以在这条半边连接的元素之间切换(如图 1.5 右侧所示)。
但是我无法选中
请问各位大佬有没有遇到类似的问题?
或者正确的操作方式是什么?
我试着分析一下:
perform picking
记录,说明射线打出去了,求交过程是存在的,但没求到交点。dandelion 的拾取功能是基于射线求交的,而射线又是根据投影矩阵构造的。在实现正确的透视投影矩阵之前,打出去的射线位置与屏幕上点击的位置会有不小的偏差,所以求交很容易出错。而具体的偏差值与窗口大小和视角位置有关,所以特定的屏幕上选不中是有可能出现的问题。
我建议这样试一遍:
Camera::projection
) 。而且不难发现如果改了 CMakeLists.txt 里的#debug dandelion-ray-debug #optimized dandelion-ray
链接库,并且在 utils/ray.cpp 里的 generate_ray
函数在实验中没有正确实现,也会影响结果。