gpt4 book ai didi

opengl - OpenGL CUDA互操作的内部格式

转载 作者:行者123 更新时间:2023-12-01 14:12:05 25 4
gpt4 key购买 nike

我使用 CUDA 表面引用来编写和阅读这篇文章后面的 OpenGL 3D 纹理 Write to 3D OpenGL textures in CUDA ... .

有一个问题让我很困惑。比如这个函数

glTexImage3D(GL_TEXTURE_3D, 0, GL_INTENSITY, volDim_.x, volDim_.y
, volDim_.z, 0, GL_LUMINANCE, getVolumeTypeGL(vol), vol->getData());

第三个参数是内部格式。

在CUDA内核中,我需要写入或读取纹理,如下面的代码,

ElementType v;
surf3Dread(&v,surfaceRef,x*sizeof(ElementType),y,z);
surf3Dwrite(&v,surfaceRef,x*sizeof(ElementType),y,z);

我不知道如何将内部格式与 ElementType 匹配。示例

glTexImage3D(GL_TEXTURE_3D, 0, GL_INTENSITY, volDim_.x, volDim_.y
, volDim_.z, 0, GL_LUMINANCE, GL_UNSIGNED_BYTE, vol->getData());

在主机内存中,卷数据类型是unsigned char。我应该选择哪种 ElementType?

uchar4 or uchar ,or float

我的一些代码可以在这里找到My GitHub

更新:

我已经解决了这个问题。

GL_RGBA32F ---- float4

GL_RGBA ---- uchar4

GL_INTENSITY -- uchar

最佳答案

如果glTeximage3D的内部格式为GL_INTENSITY,则surf3Dreadsurf3Dwrite的元素类型为unsigned char . GL_RGBA32F 匹配 float4 并且 GL_RGBA 匹配 uchar4

关于opengl - OpenGL CUDA互操作的内部格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33340736/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com