文件名称:3D-Ray-Mesh-Intersection
文件大小:4KB
文件格式:ZIP
更新时间:2024-05-22 01:47:54
JavaScript
3D射线网格相交 内容:顶点着色器几何着色器片段着色器3屏幕截图目标:检测射线是否击中了网格。 网格上的任何命中点都将标记为红色顶点。 光线从相机中心发出,长度为5个单位。 工作原理:如果光线与场景相交,代码将检查场景中绘制的每个三角形.. [Ray-Triangle相交] 步骤:1-在单个三角形中在两个向量(p1-p0)和(p2-p0)之间产生叉积2-获取对应于cameraPosition的矢量到顶点3-在相机顶点矢量和三角形的法线之间制作负点积,称其为a 4-在三角形的法线和射线投射之间制作点积5-如果b的绝对值<0.0000001,那么我们知道射线没有达到这个三角形6-然后我们尝试通过将a划分为b来生成交点射线三角形7-如果r小于0或大于5个单位,则三角形已经位于光线的后面[r <0]或光线太短而无法到达三角形[r <5] 8-然后我们尝试获取射线与平面的交点,该交点等于camera
【文件预览】:
3D-Ray-Mesh-Intersection-master
----feedback.fs(931B)
----feedback.vs(670B)
----feedback.gs(7KB)
----README.md(2KB)