标签: optix

Optix在有效负载中动态调整大小的数组

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

struct PerRayData_radiance
{
 float3 result;
 float  importance;
 int depth;
 float stuff[N];
};
Run Code Online (Sandbox Code Playgroud)

我根据一些用户参数将数组大小调整为N大小.

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

cuda raytracing nvidia optix

5
推荐指数
1
解决办法
497
查看次数

QGLWidget - 发生失真

我想在QGLWidget中显示OptixSDK的sample6.

我的应用程序只有3个QSlider围绕X,Y,Z轴和QGLWidget旋转.

根据我的理解,每当我的QSlider或Mouseevents 调用updateGL()时,都会调用paintGL().然后我初始化一个旋转矩阵并将此矩阵应用于PinholeCamera,以便用新变换的cameracoordinates追踪场景,对吧?

跟踪完成后,我得到outputbuffer并使用glDrawPixels()绘制像素,就像在OptiX框架中给出的GLUTdisplay.cpp一样.

但我的问题是图像偏斜/扭曲.例如,我想要显示一个球,但球是极端的,但旋转工作正常.当我缩小时,图像似乎在水平方向上比在垂直方向上缩放得慢得多.

我几乎可以肯定/希望它必须对gl ......()函数做一些没有正确使用的东西.我错过了什么?有人可以帮我吗?

为了完整性,我发布了paintGL()updateGL()代码.

void MyGLWidget::initializeGL()
{
glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
m_scene = new MeshViewer();
m_scene->setMesh( (std::string( sutilSamplesDir() ) + "/ball.obj").c_str());                                  
int buffer_width, buffer_height;
    // Set up scene
    SampleScene::InitialCameraData initial_camera_data;
    m_scene->setUseVBOBuffer( false );
    m_scene->initScene( initial_camera_data );
    int m_initial_window_width = 400;
    int m_initial_window_height = 400;

    if( m_initial_window_width > 0 && m_initial_window_height > 0)
        m_scene->resize( m_initial_window_width, m_initial_window_height );

   // Initialize camera according to scene params
    m_camera = …
Run Code Online (Sandbox Code Playgroud)

opengl qt nvidia optix

5
推荐指数
1
解决办法
100
查看次数

memcpy.asm 未找到错误

我正在 Optix 使用 Visual studio 2013 平台工作,我已经工作了一个多月了,突然我得到了这个错误,“memcpy.asm not found”。

我在 Visual Studio 文件夹中找到了这个文件,但它显示“源文件与构建模块时不同”

c++ optix

5
推荐指数
1
解决办法
7798
查看次数

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

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

cuda optix

2
推荐指数
1
解决办法
4301
查看次数

使用 Nvidia Optix 和开放资产导入库 (assimp) 进行光线追踪 - 渲染多个网格

我尝试将开放资产导入库(读取各种 3D 模型文件类型)的多功能性与 NVidia Optix 光线追踪相结合来渲染模型。

到目前为止,只要我渲染的模型由单个网格组成,它就可以工作。当我尝试渲染具有多个网格的文件时,我只得到部分结果。我无法缩小问题所在,寻找一些见解。相关代码在这里:

使用 assimp 导入器加载文件并创建 optix 缓冲区:

int loadAsset(const char* path)
{
Assimp::Importer importer;

scene = importer.ReadFile(
    path,
    aiProcess_Triangulate
    //| aiProcess_JoinIdenticalVertices
    | aiProcess_SortByPType
    | aiProcess_ValidateDataStructure
    | aiProcess_SplitLargeMeshes
    | aiProcess_FixInfacingNormals
    );

if (scene) {
    getBoundingBox(&scene_min, &scene_max);
    scene_center.x = (scene_min.x + scene_max.x) / 2.0f;
    scene_center.y = (scene_min.y + scene_max.y) / 2.0f;
    scene_center.z = (scene_min.z + scene_max.z) / 2.0f;

    float3 optixMin = { scene_min.x, scene_min.y, scene_min.z };
    float3 optixMax = { scene_max.x, scene_max.y, scene_max.z };
    aabb.set(optixMin, optixMax);

    unsigned …
Run Code Online (Sandbox Code Playgroud)

c++ mesh nvidia assimp optix

2
推荐指数
1
解决办法
830
查看次数

BGRA - > RGBA和垂直翻转,OptiX

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

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

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

// bgra is an  unsigned char*

int width = 1366;
int height = 768;    

unsigned char* rgba = new unsigned char[width * height * 4];

for(int y = height - 1; y >= 0; y--)
{
    for(int x = 0; x < width; x++)
    {
        rgba[(x * y * 4)]     = bgra[(x * y * 4) + 2];
        rgba[(x * y * 4) + 1] = bgra[(x * y * 4) + 1];
        rgba[(x * y * …
Run Code Online (Sandbox Code Playgroud)

c++ graphics cuda rgba optix

1
推荐指数
1
解决办法
859
查看次数

标签 统计

optix ×6

c++ ×3

cuda ×3

nvidia ×3

assimp ×1

graphics ×1

mesh ×1

opengl ×1

qt ×1

raytracing ×1

rgba ×1