问题标签 [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 投票
1 回答
834 浏览

opengl - cuda 中的 3d 建模(光线跟踪前期)

我正在尝试使用 CUDA 实现一个简单的光线跟踪代码。

我被困在建模部分。我试图弄清楚如何用对象建模 3d 空间(从一个简单的 3d 空间开始,中间包含一个 3d 立方体)。

我读过关于 openGL 和 CUDA 的混合项目,但这些文章太笼统了——正如我所说,我对此很陌生。

是否有任何库/代码可以实现这样的 3d 模型?

0 投票
1 回答
1966 浏览

visual-studio - 如何在同一个 Visual Studio 项目中编译 CUDA C 文件和 Nvidia OptiX 文件

我目前在 Visual Studio 上使用 Optix 光线追踪引擎。我的问题包括计算数据并使用 Optix 渲染它们。

我已经编写了一个纯 C CUDA 程序来计算数据,但我无法将它集成到我的 Optix 项目中。

我使用 SDK 的 CMakeLists.txt 编译了我的 Optix 项目并对其进行了修改。关于如何让我的项目在同一个 VS 项目中编译 C CUDA 文件(.cu)以及 Optix 内核(也是 .cu)的任何见解?

0 投票
6 回答
3168 浏览

cuda - 将结果写入 CUDA / Optix 中的文本文件

我想知道是否可以编写在我的程序 Cuda / Optix 中计算的变量的文本文件。那是变量在我的 .cu 文件中,因此不能由 CPU 写入。

0 投票
1 回答
622 浏览

cuda - 有效载荷中的 Optix 动态大小数组

有没有办法在 optix 中声明一个动态大小的数组有效负载?我搜索并阅读了 Optix 文档,却发现 Optix 不允许使用 malloc。有什么办法可以做类似以下的事情吗?

我是否根据某些用户参数将数组的大小调整为 N 大小。

我尝试在 NVIDIA 论坛上搜索过去的问题,但似乎由于一些安全问题它已被关闭。

0 投票
1 回答
1368 浏览

cuda - 英伟达 OptiX 几何组

您好,我正在使用 Nvidia OptiX 创建 RayTracer。我使用示例程序“sample0”和“tutorial”来设置一个简单的跟踪器。

在我的 C++ 代码中,我设置了 Everything:

我的 .cu 程序如下所示:

就像我发布的那样,它工作正常并且可以看到彩色图片,但您可能已经注意到 //_context["target"]->set(geomGrp); 在 C++ 代码中。如果我取消注释程序在 _context->compile(); 中出现异常;

Box Program 与所有示例中的相同。

当我想将目标设置为 _context 时,有谁知道出了什么问题。

_context 的类型与 #include 类似。

最好的祝福

编辑:了解有关异常的更多信息:

是一个捷径

在 optixx_namespace.h 中 checkError 检查的返回结果是 RT_ERROR_INVALID_VALUE 。

0 投票
1 回答
229 浏览

graphics - cuda中渐进光子映射的透明度

我正在开发一个基于 optix 的项目。我需要使用渐进光子映射,因此我尝试使用样本中的渐进光子映射,但没有实现透明材料。我用谷歌搜索了很多,还试图了解其他包含透明材料的样本(例如 Glass、Tutorial、whitted)。最后,我得到了如下解决方案;

  1. 找到命中点(交点)(下面的h)
  2. 从该点生成另一条射线
  3. 使用新生成点的颜色

通过关注,您还可以找到该部分的代码,但我不明白为什么我会为新生成的光线(上面的第 3 部分)得到黑色(.0f,.0f,0.f)。

任何想法将不胜感激。请注意,在使用函数 rtTrace() 之后, refr_prd.attenuation应该包含一些颜色。我已经提到了反射和反射颜色来帮助你更好地理解这个过程。你可以简单地忽略它们。

0 投票
1 回答
1097 浏览

c++ - BGRA -> RGBA 和垂直翻转,OptiX

我有一个缓冲区,其中包含一个“原始”BGRA 纹理,每种颜色一个字节。线条是相反的顺序(纹理是颠倒的)。

BGRA 缓冲区全为绿色 (0, 255, 0, 255)。

我需要将其转换为 RGBA 并翻转纹理线。我试过这个:

但是渲染时的结果不是全绿屏,而是:

我在这里可能做错了什么?

0 投票
1 回答
684 浏览

cuda - OptiX 中的多个 GPU(可以异步启动?)

我的硕士论文遇到了一些挑战,希望您能帮助我,或者为我指明正确的方向。

我正在使用 Knaus 和 Zwicker ( http://www.cs.jhu.edu/~misha/ReadingSeminar/Papers/Knaus11.pdf ) 使用 OptiX 的新方法实现渐进式光子映射。这种方法使得 PPM 的每个迭代/帧独立,更适合多 GPU。

我所做的(使用单个 GPU)是使用 OptiX 跟踪许多光子,然后将它们存储在缓冲区中。然后,使用 CUDA 和推力将光子分类为空间哈希图,永远不会离开 GPU。我想在 GPU 上创建空间哈希图,因为它是我的渲染器的瓶颈。最后,在间接辐射估计期间使用此缓冲区。所以这是一个多通道算法,包括光线追踪、光子追踪、光子图生成和最后创建图像。

我了解 OptiX 可以支持多个 GPU。每个上下文启动都在 GPU 上进行划分。对缓冲区的任何写入似乎都被序列化并广播到每个设备,以便它们的缓冲区内容相同。

我想做的是让一个 GPU 做一帧,而第二个 GPU 做下一帧。然后我可以组合结果,例如在 CPU 或 GPU 中的一个组合通道上。如果我可以在每个设备上并行执行每个通道(在每个通道之间同步),这也是可以接受的。这有可能吗?

例如,我是否可以在两个不同的主机线程上创建两个 OptiX 上下文映射到每个设备。这将允许我像以前一样生成 CUDA/推力空间散列图,假设光子在一个设备上,并在管道末端合并两个生成的图像。但是,编程指南声明它不支持多线程上下文处理。我可以使用多个进程,但是进程间通信有很多混乱。这种方法还需要在创建场景几何体、编译 PTX 文件等方面进行重复工作。

谢谢!

0 投票
1 回答
708 浏览

cuda - cuda 内核在什么设备上运行

有什么方法可以从内核(GPU 代码)找出代码在哪个设备上运行?您可以找到 blockIdx、threadIdx、blockDim 和 gridDim,但有什么方法可以找到 CUDA 设备 ID?

对于那些想知道的人,我计划在 OptiX 程序中使用它来更好地控制 OptiX 缓冲区。

0 投票
1 回答
2220 浏览

cuda - 安装 Nvidia Optix SDK 3.0.0 Ubuntu 12.04

您好我正在尝试在 Ubuntu 上安装 nVidia OptiX SDK 版本 3.0.0 für linux64。

我已经下载了 .run 文件。执行完成后,我得到一个名为 ~/NVIDIA-OptiX-SDK-3.0.0-linux64/ 的文件夹

它在我的主文件夹中。

预编译的示例工作正常,但是当我尝试编译自己的代码时,编译器似乎将 .cu 文件作为 CUDA 文件处理并尝试将它们编译为 .cu.o。我的程序错误的一个输出是:

通常这些文件应该编译成某种 ptx 文件?

以下错误是:

找不到该功能_rt_buffer_get_64让我觉得有些东西没有正确安装。

该文件夹中有名为 doc 的子文件夹,包括 lib64 SDK SDK-precompiled-samples 我所做的是将 include 的内容复制到 /usr/local/include 并将 lib64 的内容复制到 /usr/local/lib

有任何想法吗?问候