raytracing

    0热度

    2回答

    我正在写一个射线跟踪器在Java中,我试图实现折射,但我对我在这个问题上找到的信息感到困惑。如果我有一个用于入射光线的三维矢量,那么表面法线作为三维矢量给出,并且这两种介质的折射率是指我需要应用哪些操作才能获得透射光线的矢量?

    3热度

    1回答

    使用三角形网格进行光线跟踪具有众所周知的解决方案和大量资源。还有一种涉及光线追踪与已知的参数公式,诸如表面的相关的问题: S(u,v) = (cos(u), sin(u), v) 其表示对准于Z轴的单元圆柱体。我的问题是:将光线追踪应用于这种表面的最有效方法是什么?一个显而易见的解决方案是从公式生成近似网格,然后应用射线追踪,但是我的问题是,是否存在针对这种特定情况的最适合的解决方案 - 特别

    2热度

    2回答

    如果光线的定义由Ray = origin + t(direction)给出,那么术语t假设代表什么?找不到任何明确描述这些内容的教程。刺伤黑暗我认为这可能是距离,但据我了解,如果这是用于射线追踪这是否意味着t实际上是射线的起源与我检查它是否与相交的平面之间的距离?

    9热度

    1回答

    上学期我们不得不为学校的课程开发光线跟踪器。学校正在完成,我试图用它来摆弄一下。 我想看看如果将所有浮点计算从双精度浮点计算更改为浮点精度(所有计算都使用双精度来完成),会发生什么变化。所以我改变了每个变量的类型为float,并简单地将从Math方法返回的每个double转换为float。在几个场景中测试我的光线追踪器显示出相当不错的性能提升。 在网上搜索我发现了各种原因,为什么float会更快,

    2热度

    1回答

    我在3D空间中有两个平面,如下所示。 “E”点上平面2表示从点“P”通过基准面1,并具有“S”的方向矢量的线的交点。设P为平面1 哪些是“e”的点的坐标(XE,咋,0)相对于它所属(平面2)的平面的坐标系统的边缘,使用numpy的? 我有下列资料:每个平面的中心 坐标相对于全球坐标系中的“C”。 x = np.array([x1, x2]) y = np.array([y1, y2]) z = n

    1热度

    1回答

    我能得到一个射线追踪的启动代码的在线和启动代码有两个“几何图形”: 类球体 类三角形 我明白三角形,因为代码使用三角形创建网格,并从每个像素获取三角形与射线之间的交点。但是球体是如何发挥作用的? 所以我做了一些在线研究,其中很多人讨论了三角形交叉和球形交叉。但我们如何在网格中使用球体?

    2热度

    1回答

    我们一直在尝试在WebGL中渲染3D云域时进行大量工作。我们迄今采用的方法概述为here - 每个射线的开始位置是体积立方体前面的当前位置,并且结束位置是根据前一遍计算的,该前一遍将xyx vales编码为背面质地。 当摄像机位于音量范围内时,我们该如何扩展此功能?我们是否需要立即创建更小的体积立方体?我们能否改变着色器从摄像头开始行进,而不是从正面进入,然后投影到立方体的背面? 我们不确定从哪里

    0热度

    2回答

    我在X-Y网格上有一个曲面Z,为此我想用一条线找到交点。我至今使用该代码寻找交集: x_ray = x_source + t * x_dir y_ray = y_source + t * y_dir z_ray = z_source + t * z_dir height_above_plane = @(t) z_source + t * z_dir - interp2(X, Y, Z, ..

    0热度

    2回答

    我想跟踪由长时间运行的光线追踪过程处理的总像素和光线。如果每次迭代都更新共享变量,则由于同步,进程会明显减慢。我想跟踪进展情况,并在最后获得准确的计数结果。有没有办法使用OpenMP进行循环? 这里是有问题的循环的一些代码: void Raytracer::trace(RenderTarget& renderTarget, const Scene& scene, std::atomic<int>&

    0热度

    1回答

    所以我想写一个光线追踪器作为个人项目,并且我已经获得了基本的递归,网格几何和光线三角形交集。 我试图从中得到一个合理的图像,但遇到所有像素行相同的问题,给我直线垂直线。我发现从相机功能生成的所有像素位置在y轴上都是相同的,但是在这里找不到我的向量数学的问题(我也使用我的顶点结构作为向量,它的惰性我知道): void Renderer::CameraShader() { //comput