这只是一个关于光线(和/或线段或边缘等)及其在软件渲染的 3d 引擎中的位置的大问题,该引擎正在/不执行光线跟踪操作。我正在学习基础知识,我是第一个承认我对这些东西不太了解的人,所以请善待。:)
我想知道为什么不使用参数化线而不是射线(或者它们是??)。我查看了互联网上的一些 cpp 文件,发现有几个资源定义了一个 Ray.cpp 对象,一个带有顶点和一个向量,另一个使用了一个点和一个向量。我很确定您可以定义一条只有法线或向量的无限线,然后沿着该线定义相交点以创建一条线段作为该无限线的子集。当前是否有任何引擎以这种方式实现线路,或者是否有更好的方法来解决这个问题?
为了增加进一步的复杂性(或简单性?)维基百科说,在向量空间中,线段的端点通常是向量,特别是 u -> u + v,如果在空间中用向量而不是用向量定义线,这很有意义与已经定义的无限线相交,但我也找不到任何实现,这让我怀疑在 3d 引擎中应用它时我的想法的有效性,甚至在查看 Flash 3D 引擎 Papervision 时会产生更复杂的情况,我查看了 Ray 类,它采用 6 个单独的数值作为参数,然后将它们作为 2 个不同的 Number3D(Papervision 等效于 Vector)、数据类型返回?!?
我很想看到一个实际使用正确方法来实现这些低级部分的实现,这些低级部分按照它们的真实定义。