问题标签 [optix]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
58 浏览

3d - 平行于相机视图的区域光

我正在尝试渲染图像,并且我知道相机的坐标和观察对象。我想在相机后面创建一个区域光(平面),但与相机视图平行。

我想我应该使用相机的右和上向量。但我不知道该怎么做。让我向您展示一些代码示例:

然后我从github复制了一些代码来生成区域光:

使用上面的 v1 和 v2,我只能在天花板上创建区域光。

这是createParallelogram功能:

我想知道如何设置 v1 和 v2 以便平面图可以平行于相机视图以照亮对象(观察方向)。先感谢您!!

更新1:

根据@Blindman67 所说,我尝试设置createParallelogram((eye - look_dir)* .1, right * 2.0, newup * 0.5)后发现图片很暗,我将其更改为createParallelogram( -(eye - look_dir)* .1, right * 2.0, newup * 0.5),现在我的区域光正对着物体[图1],并且更亮了。但是,当我设置 时createParallelogram((eye - look_dir)* .7, right * 2.0, newup * 0.5),我可以在渲染图像中看到区域光(矩形)。我不想看到这个形状。你知道我应该如何控制这个灯的大小或位置吗?谢谢!

图1

0 投票
0 回答
37 浏览

c++ - VS 19 的 CMake 中标准输出目录的变量

当谈到 CMake 时,我绝对是个菜鸟,并且在过去的三天里一直被困在这个问题上。我正在开发的 OptiX 应用程序读取从 .cu 文件编译的 .ptx 文件。我正在努力将文件编译到与 .exe 相同的目录中。

我没有设置 CMake 文件,所以我正在尝试调整 SDK 示例。.exe get 编译成 bin/release/ 或 bin/debug 没有问题。

我希望根据 VS 中的构建模式将 .ptx 编译为 bin/release/ptx 或 bin/debug/ptx。是否有一个变量可以让我访问 bin/release bin/debug 路径?我能做的最好的事情是 ${CMAKE_RUNTIME_OUTPUT_DIRECTORY} 让我得到 bin/ 文件夹。(如果有帮助,根CMakeLists.txt的 pastebin ,第 252 行:

谢谢你的帮助,我希望我能把自己说清楚!

0 投票
1 回答
249 浏览

c++ - optix 6.0.0 示例代码中的运行时异常

下载optix6.0.0 sdk并编译包含的示例项目后,我在运行任何示例项目(例如optixHellooptixWhitted)时遇到运行时异常,并显示错误消息:

我的环境是:vs2015, cuda11.0.

代码对于(cmake、compile、runtime)来说工作得很好ooptix sdk 7.0.0,并且大多数预编译的示例项目工作得很好。.exesdk 6.0.0

0 投票
1 回答
269 浏览

raytracing - 有没有办法遍历 OptiX 7 加速结构来找到最接近给定点的几何图形?

我知道这不是 OptiX 的主要目标,但是当光线行进(球体行进)标记距离场时它是相关的,所以我想我会尝试。我最初为此创建了自己的 BVH,但我希望从最近的所有光线追踪工作和​​ RTX 加速中受益。

我假设对 OptiX 7 API 有一些基本的了解。

我最初的尝试涉及将optixTrace光线方向设置为,{0, 0, 0}但这只会触发光线原点位于 AABB 内部的形状的交叉点(有意义)。{inf, inf, inf}然后,我设置似乎触发每个基元的相交调用的光线方向,无论 AABB 距离或报告tMax值如何。

我尝试了其他一些光线方向和tMax/tMin值的组合,我考虑了各种OPTIX_RAY_FLAGS但似乎没有任何效果。

理想情况下,最好只查询tMax距离射线原点不远的边界框。这显然是与 ray-aabb 交叉点不同的检查,但我很好奇是否可能有一些我遗漏的 API 标志/掩码/功能允许这样做。直接访问加速结构层次结构在这里也可以提供帮助,但我在编程指南中没有看到任何相关内容。

0 投票
1 回答
117 浏览

c++ - 如何设置 Visual Studio 2017 以正确识别 Optix 项目中的 Cuda 代码

我尝试进入 Optix 项目,但在识别 Visual Studio 2017 中的 Cuda 代码时遇到问题。我可以构建和执行代码(甚至是 .cu 文件中的代码),但 .cu 文件中的变量和函数, 被标记为无法识别(红色)。有可能解决这个问题吗?

0 投票
0 回答
71 浏览

clion - 使用 CLion 时 optix 和 cuda 的问题

我只是下载了 OptiX SDK (7.1),显然已经安装了 CUDA (11)。在 CLion 中打开示例项目时,一切都按原样运行,但是,IDE 不知道所有 optix 库。你知道吗?

在此处输入图像描述

0 投票
1 回答
198 浏览

cuda - CUDA 和其他 OptiX 组件中固有的射线三角形相交

有没有什么方法可以在不使用OptiX的情况下直接在CUDA中使用硬件加速的射线三角相交?这类似于如何在 CUDA 中直接使用张量核进行小矩阵乘法,请参阅https://developer.nvidia.com/blog/programming-tensor-cores-的 CUDA 9.0 中对张量核的编程访问部分cuda-9/ . 似乎这至少应该可以使用内联 PTX 以不受支持的方式实现(可能通过 OptiX 二进制文件的一些逆向工程)。

更一般地说,OptiX 的任何子组件是否可以在不使用完整管道的情况下使用?就像 OptiX 可以只用于生成单独使用的加速度数据结构吗?或者可以使用 RT 内核来遍历不是由 Optix 从设备代码中生成的自定义 BVH?

0 投票
2 回答
254 浏览

nvidia - 正确创建 Optix 7.1 TLAS 实例加速结构

我正在尝试弄清楚如何正确构建 TLAS。使用 OptiX 7.1 附带的示例和Ingo Wald 的 Optix 7 示例,从三角形开始(只是保存几何的 BLAS),它工作正常(将 SDK 的三角形示例移动到 Wald 的示例框架)。接下来,我介绍了一个带有一个实例(即之前的 BLAS)的 TLAS,并在着色器中使用了该 TLAS,但我没有得到任何结果。我做错了什么?

我没有使用上面函数的返回值,而是将它提供给下面的 TLAS 创建函数,并在着色器中使用它的输出句柄:

作为参考着色器代码(当 OptixTraversableHandle 来自上面的第一个函数时,它工作得很好:

}

0 投票
1 回答
544 浏览

c++ - 在获取 OptiX 的 CUDA 上下文时未定义对“cuCtxGetCurrent”的引用

我正在尝试学习如何在我的 C++ 项目中实现 OptiX。第一步是获取当前的 CUDA 上下文cuCtxGetCurrent(&some_CUcontext_variable),但是我收到一个编译时错误,说我对cuCtxGetCurrent.

这是我所拥有的:

  • 我正在关注此 repo中的代码以了解 OptiX,并且我在示例 2 中(您可以在其中获得 CUDA 上下文)。
  • 在我的代码 ( main.cpp) 中,我包含了cuda_runtime.hdevice_launch_parameters.hoptix.hoptix_stubs.h,但在编译时我仍然收到错误消息。
  • 有趣的是,我的 IDE,JetBrains 的 CLion,没有显示任何未定义的参考错误/警告内联。错误仅在我编译时出现。
  • 在我的CMakeLists.txt,我曾经find_package(CUDAToolkit REQUIRED)得到 CUDA。然后我用来target_link_libraries{ ... CUDA::cudart}链接CUDA。

我相信这个错误与链接器有关,所以我假设我在我的 CMakeLists 中遗漏了一些东西,但我不知道是什么。请让我知道如何解决此问题!

提前感谢您的帮助!


更新 #2:已解决

正是这样的时刻让我大吃一惊:我所要做的就是将cuda我的目标链接库放入其中。不是-lcudaCUDA::cuda,只是cuda。不知何故,它链接在驱动程序中,现在看起来正在编译。


[旧,但仅供参考] 更新 #1:这是我的CMakeLists.txt.

抱歉,我的原始帖子中缺少代码。我试图避免粘贴大块任意代码。

0 投票
1 回答
194 浏览

cuda - Cuda/Optix 是否提供硬件加速的最小/最大光线投射?

我想知道是否可以在 Cuda 或 Optix 中加速计算沿 3D 体积中从一个点投射到另一个点的线/射线的最小值和最大值。

如果没有,Nvidia GPU 上是否有任何特殊硬件可以加速此功能(特别是在 Volta GPU 或 Tesla K80 上)?