Opengl es 如何在three.js中检测与顶点着色器中展开的线的交互?

Opengl es 如何在three.js中检测与顶点着色器中展开的线的交互?,opengl-es,three.js,shader,intersection,Opengl Es,Three.js,Shader,Intersection,我正在做一个three.js项目,它需要清晰、粗的2D线条 由于,Windows上的WebGL渲染器不允许使用LineBasicMaterial的粗线条 为了解决这个问题,我正在使用展开顶点着色器中的多段线。这是通过将BufferGeometry与简单的ShaderMaterial配对来实现的 从视觉上看,我对结果很满意 现在,我想检测鼠标与这些行的交互。通常的Raycaster技术不起作用。我怀疑这是因为我的线条缺少three.js能够理解的几何体(因为我正在着色器中展开) 我的问题:拾取这些

我正在做一个three.js项目,它需要清晰、粗的2D线条

由于,Windows上的WebGL渲染器不允许使用
LineBasicMaterial
的粗线条

为了解决这个问题,我正在使用展开顶点着色器中的多段线。这是通过将
BufferGeometry
与简单的
ShaderMaterial
配对来实现的

从视觉上看,我对结果很满意

现在,我想检测鼠标与这些行的交互。通常的
Raycaster
技术不起作用。我怀疑这是因为我的线条缺少three.js能够理解的几何体(因为我正在着色器中展开)


我的问题:拾取这些线的选项是什么?我需要在着色器外部挤出,还是有其他好的选项?

一个解决方案是以着色器相同的方式展开线。“本地化后,进行某种剔除以确定哪些线段是可相交的,然后计算扩展曲面并根据该曲面进行测试。”pailhead说。这绝对是一个选择。像这样的东西可能会有帮助。仍在调查中。如果没人能打败我,我会回来报到的。哇,从没见过这个图书馆,看起来真的很酷。我只是避免在整个多段线上执行此操作,首先进行消隐,仅在一个线段上执行此操作(不过您可能需要执行3次,您的+上一次+下一次),否则它会破坏在着色器解决方案中扩展它的目的,即以着色器相同的方式扩展线。“本地化后,进行某种剔除以确定哪些线段是可相交的,然后计算扩展曲面并根据该曲面进行测试。”pailhead说。这绝对是一个选择。像这样的东西可能会有帮助。仍在调查中。如果没人能打败我,我会回来报到的。哇,从没见过这个图书馆,看起来真的很酷。我只需要避免在整个多段线上执行该操作,首先进行消隐,仅在一个线段上执行该操作(不过您可能需要执行3次,您的+上一次+下一次),否则将无法在着色器中扩展它