raytracing相关内容

没有递归光线追踪就不可能实现反射和折射?

我正在使用 GLSL 计算着色器编写基于 GPU 的实时光线追踪渲染器.到目前为止,它工作得非常好,但是当涉及同时具有反射和折射时,我偶然发现了一个看似无法解决的问题. 我的逻辑告诉我,为了在物体(例如玻璃)上产生反射和折射,光线必须分成两股,一条光线从表面反射,另一条光线通过表面折射.然后,这些光线的最终颜色将根据某些函数进行组合,并最终用作光线源自的像素的颜色.我遇到的问题是我无法在着色 ..
发布时间:2022-01-30 16:22:13 C/C++开发

如何在“A Fast Voxel Traversal Algorithm for Ray Tracing"中初始化 t 变量?

我正在尝试实现本文中解释的算法,用于沿直线遍历网格单元,这对于光线追踪很有用: http://www.cse.yorku.ca/~amana/research/grid.pdf 论文将算法描述为两部分:初始化和迭代遍历.我可以理解迭代遍历部分,但我无法理解初始化部分中的一些变量是如何计算的. 我需要帮助初始化 tMaxX、tMaxY、tDeltaX &tDeltaY.它们的初始化 ..
发布时间:2022-01-18 09:49:02 其他开发

优雅/干净(特殊情况)直线网格遍历算法?

我正在清理我的一个旧项目.它必须做的一件事是 - 给定一个笛卡尔网格系统,以及网格上的两个正方形,找到连接这两个正方形中心的一条线将通过的所有正方形的列表. 这里的特殊情况是所有起点和终点都被限制在正方形/单元格的确切中心. 这里有一些示例——带有成对的示例起点和终点.阴影方块是相应函数调用应返回的方块 删除了无效的 ImageShack 链接 - 示例 起点和终点由它们所 ..
发布时间:2022-01-14 15:52:28 其他开发

光线追踪半球

我目前正在使用 C 开发一个基本的光线追踪程序,并且我已经设法制作了一些简单的形状使用 phong 照明为它们着色. 但我的问题是我可以掌握如何对半球进行光线追踪,比如是否有一个定义半球的方程组如果这样启发我,因为我找不到任何,还是有我想不通的固定方法. 我也尝试过用平面切割球体,只显示上半部分,但没有奏效(我对这一切还很陌生,所以我的理解可能是错误的). 编辑:好的,我很抱歉,因为 ..
发布时间:2022-01-14 15:49:11 其他开发

android中的球形过滤器

我必须在 android 中的图像上应用球形滤镜,我已经附加了输入和预期的输出图像.输出图像将从输入图像的平方中心区域处理,并将其映射到球体.知道如何在 Android 中执行此操作.我是否必须使用 openGL 来执行此操作,或者仅使用 2D 转换来完成任务. 解决方案 以下代码 鱼眼镜头用于创建球体并应用一些修改来缩放球体和背景生成,它主要适用于方形图像. ..
发布时间:2022-01-09 09:12:44 移动开发

编写光线追踪器的文献和教程

我有兴趣在有关编写光线跟踪器的书籍、可在网上看到的简单清晰的光线跟踪实现以及有关介绍性光线跟踪的在线资源中找到推荐. 理想情况下,该方法应该是渐进式和教程式的,从基础开始解释编程技术和基础数学. 解决方案 由 Kevin Suffern 撰写的“从头开始的光线追踪". 由 Matt Pharr 和 Greg Humphreys 撰写的“基于物理的渲染",在您熟悉基础知识后,可对 ..
发布时间:2021-12-30 18:45:27 其他开发

2D Raytracer 算法

我想在 Java 中做一个程序化的 RayTracer 用于演示目的,同时给出关于光线追踪的一般介绍(还提到 3D,这个 2D 模型应该只用于更容易理解,并训练我的一般 Java 知识). 我的问题是,我不知道从哪里开始这整件事. 我要尝试的第一件事是使用向量从给定坐标(例如鼠标光标的位置)跟踪屏幕上的每个像素.然后我会计算向量是否与多边形相交,然后我会在那里停止向量并仅将其绘制到该特 ..
发布时间:2021-12-21 13:27:02 Java开发

精确的亚像素画线算法(光栅化算法)

我需要一种比 Bresenham 画线算法慢的算法 但必须更准确.使用“精确"我的意思是:应该打印每个触摸的像素.不多,也不少!这意味着使用更粗的线条或类似的线条不是一种选择,因为会涉及太多像素.此外,我不需要图形框架或类似的框架 询问 之前,我需要算法!该应用程序实际上并不是在“图形"中,而是在 地理区域,其中像素是“瓷砖". 对我来说,主要问题是我需要亚像素精度,这意味着一条线可以从 0 ..
发布时间:2021-12-06 19:59:34 其他开发

没有递归光线追踪就不可能反射和折射?

我正在使用 GLSL 计算着色器编写基于 GPU 的实时光线追踪渲染器.到目前为止,它运行得非常好,但是当涉及同时具有反射和折射时,我偶然发现了一个看似无法解决的问题. 我的逻辑告诉我,为了在物体(例如玻璃)上进行反射和折射,光线必须一分为二,一条光线从表面反射,另一条光线通过表面折射.这些光线的最终颜色将根据某个函数进行组合,并最终用作光线源自的像素的颜色.我的问题是我不能在着色器代码中分 ..
发布时间:2021-12-01 15:19:52 C/C++开发

光线追踪器反射颗粒状

我刚刚在我的光线追踪器中实现了反射,这是处理反射的代码,但是我将所有代码上传到了 github 存储库 以便更好地阅读: Color finalColor =closestObjectMaterial.GetColor() * AMBIENTLIGHT;//将环境光添加到计算中//反射if(closestObjectMaterial.GetSpecular() > 0 &&closestObje ..
发布时间:2021-11-25 04:17:43 C/C++开发

光线追踪三角形

我正在用 Java 编写光线跟踪器,并且能够跟踪球体,但我相信我跟踪三角形的方式有问题. 这是我理解的基本算法: 首先确定射线是否与三角形所在的平面相交. 剪切所有点,使它们与三角形位于同一平面上(例如,以 xy 平面为例). 根据沿新平面以任意方向发出射线时所穿过的多边形边数,确定潜在交点是落在三角形内部还是外部. 现在,这是我的实现(特别是第一点): public Ve ..
发布时间:2021-11-25 03:47:41 Java开发

有效计算视线和一组对象之间的第一个交点的最佳方法是什么?

例如: 一种有效计算视线与一组三个对象之间的第一个交点的方法:一个球体、一个圆锥体和一个圆柱体(其他 3D 基元). 解决方案 您正在寻找的是空间分区方案.处理这个问题有很多选择,并且在这方面也进行了大量研究.Christer Ericsson 的实时碰撞检测是一本很好的读物. 该书中介绍的一种简单方法是定义一个网格,将所有对象分配给它相交的所有单元格,然后沿着与线相交的网格单 ..
发布时间:2021-11-25 03:38:01 C#

折射矢量(光线追踪)

我正在进行光线追踪,并使用以下关系进行光线的折射(我从名为“光线追踪中的反射和折射"的 PDF 中得到它): 但我在另一个 PDF 中看到它如下: 你能解释一下为什么吗? 我如何确定我计算的折射矢量是正确的? 谢谢 解决方案 最新的“Ray Tracing Gems 2"中有一个确定的(而且写得很好!)介绍性章节,介绍了反射和折射公式;书;在 https://lin ..
发布时间:2021-11-25 03:20:25 C#

从 2D 投影映射回 3D 点云

我有一个由点顶点 (XYZ) 和最终三角形面组成的 3D 模型.使用 OpenGL 或相机视图矩阵投影,我可以将 3D 模型投影到 2D 平面,即具有 m*n 分辨率的视图窗口或图像. 问题是如何确定 2D 投影计划中的像素与其对应的原始 3D 模型中的顶点(或面)之间的对应关系. 也就是说, 对于来自 2D 投影的给定像素,3D 模型中最近的顶点是什么? 这听起来像是在选择 op ..
发布时间:2021-11-25 02:33:07 C#

计算机图形学:光线追踪和编程 3D 渲染

我注意到许多顶尖大学都开设了课程,让学生学习与计算机图形学相关的计算机图形学专业.遗憾的是,这不是我的大学提供的东西,我真的很想在未来几年的某个时候进入. 我从一些大学发现的一些项目很棒,但我最感兴趣的是两件事: 光线追踪: 我想在未来两年内编写一个光线追踪器.我需要知道什么?我还不是一个出色的程序员(Java、C 和 Prolog 是我今天的主要语言)但我每天都在慢慢学习.此外,我 ..
发布时间:2021-11-25 02:31:35 C#

Raytracer - 计算眼线

我正在写一个光线追踪器(主要是为了好玩),虽然我过去写过一个,并花了相当多的时间搜索,但似乎没有教程阐明计算眼睛光线的方法透视投影,不使用矩阵. 我相信我最后一次这样做是通过使用 Quaternion 类(可能)低效地将眼睛向量从相机方向向量旋转 x/y 度.这是用 C++ 写的,我用 C# 写的,虽然这不是那么重要. 伪代码(假设 V * Q = 变换操作) yDiv = fovy ..
发布时间:2021-11-25 02:07:01 C#

光线追踪 - 软阴影

我正在将自己的光线追踪器实现为学校项目的 iPad 应用.目前结果如下: 我需要添加最后一个要求,软阴影,但我在任何地方都找不到完整的参考.如果我理解得很好,要实现此功能,我必须从交点向 mt 光源发射许多光线.这个必须是区域灯.假设我使用一个球体,我的问题是: 我必须使用球体上的哪个点来计算阴影射线? 如何平均结果? 解决方案 你站在局部表面法线为 N 的点 P 处,需要找 ..
发布时间:2021-11-25 01:33:31 C#

将 javascript 用于自定义目的

我正在编写一个光线追踪器,作为我完整 3d 引擎的一部分.我计划使用 javascript 作为脚本语言,而不是自己编写.问题是我该如何使用它?顺便说一下,光线追踪器和 UI 是用 C# 编写的. 解决方案 这里展示了 Javascript 和 c# 之间的双向交互. Javascript 调用 c# 方法 C# 获取 Javascript 中表达式的结果 - Type s ..
发布时间:2021-11-25 00:39:15 C#/.NET

使用 C# 检测二维空间中的光投影

光源是位于单个坐标中的 2D 空间中的实体. 在不同的位置周围有多个光源,每个光源在N、S、E、W、NW、NE、SW、SE方向发出8束光线.所有灯的坐标都是已知的. 给定一个随机点(x, y),我需要确定它是否被光线击中. int width = 10000;整数高度 = 10000;列表灯 = 一堆随机放置的光源.点位置 = 新点(8888, 5555); 现在我需要迭代 lig ..
发布时间:2021-11-24 22:28:08 C#/.NET

使用 C# 检测二维空间中的光投影和交叉点

光源是位于单个坐标中的 2D 空间中的实体. 在不同位置周围有多个光源,每个光源发出 N、S、E、W、NW、NE、SW、SE 方向的 8 束光线.所有灯的坐标都是已知的. 我需要计算网格内这些射线的所有交点. long width = int.MaxValue;//2D 网格宽度.长高 = int.MaxValue * 3;//二维网格高度.列表灯 = 一堆随机放置的光源.列表交叉点 ..
发布时间:2021-11-24 22:22:21 C#/.NET