Simulation 二维光线跟踪

Simulation 二维光线跟踪,simulation,raytracing,Simulation,Raytracing,我正在编写一个程序,演示各种镜头的工作原理,以及我所需要的 二维库或算法 我搜索光线跟踪,主要是找到用于在3D中创建场景的东西,而我的要求是一个简单的交互式镜头模拟 因此,任何关于2D光线跟踪算法或库的观点都是受欢迎的。我正在使用Python 这个问题有两部分: 找出射线击中了什么 计算折射后的光线 为了找出光线击中的物体,我将离散透镜的形状。所以你只需要测试直线 查找第一次命中的伪代码: Line hitLine=null; double minA=+Infinity; foreach(lin

我正在编写一个程序,演示各种镜头的工作原理,以及我所需要的 二维库或算法

我搜索光线跟踪,主要是找到用于在3D中创建场景的东西,而我的要求是一个简单的交互式镜头模拟


因此,任何关于2D光线跟踪算法或库的观点都是受欢迎的。我正在使用Python

这个问题有两部分:

  • 找出射线击中了什么
  • 计算折射后的光线
  • 为了找出光线击中的物体,我将离散透镜的形状。所以你只需要测试直线

    查找第一次命中的伪代码:

    Line hitLine=null;
    double minA=+Infinity;
    foreach(line in Lines)
    {
      Solve (Ray.Start + a*Ray.Direction) == (line.P1+b*(line.P2-line.P1)) for a and b
      if(0<=b<=1) //hit the line-piece
      {
        if(0<=a<minA)
        {
          minA=a;
          hitLine=line;
        }
      }
    }
    
    Line hitLine=null;
    双米纳=+无穷大;
    foreach(一行接一行)
    {
    求解a和b的(光线开始+a*光线方向)=(线P1+b*(线P2线P1))
    
    如果(0我开始这个小组是因为我对这种事情感兴趣


    在这里您可以找到一个(非详尽的)python光线跟踪器列表,这些光线跟踪器应该可以为您指出正确的方向。我还有一个用python编写的光线跟踪器,它可以满足您的需要,但尚未发布!

    因此,您希望在光折射率取决于位置的材质中进行光线跟踪?光折射率变化的地方是否存在硬边界,或者它是一个arbitr位置的三元函数?不,它是用于2D镜头演示的,从简单的凸面和凹面镜头到菲涅耳镜头。有硬边界和多种材质(玻璃-水-空气等),但在单个对象内没有变化。您好。您有没有制作过2D镜头演示?还有我的网站,我记得其中一些人在等待。