我对 optix 和 cuda 很陌生。我正在尝试修改 optix SDK 示例以呈现带有光线追踪的 3D 模型。我修改了“progressivePhotonMap”示例。由于缺乏optix / cuda知识,我不知道如何在3D模型上绘制纹理,熟悉SDK示例的任何人都可以帮助我吗?
我阅读了其他绘制纹理示例,例如“swimmingShark”或“cook”,并尝试找出使用的线索。然而,这些例子似乎有不同的方式来绘制纹理。
从现在开始,我知道我必须在 cpp 文件中加载纹理
GeometryInstance instance = m_context->createGeometryInstance( mesh, &m_material, &m_material+1 );
instance["diffuse_map"]->setTextureSampler(loadTexture( m_context, ... );
并在 cuda 文件中创建 TextureSampler
rtTextureSampler<float4, 2> diffuse_map; // Corresponds to OBJ mtl params
,并给他们 texcoord 来绘制,像这样,
float3 Kd = make_float3( tex2D( diffuse_map, texcoord.x*diffuse_map_scale, texcoord.y*diffuse_map_scale ) );
但是,我找不到 texcoord 在 cuda 文件中获取纹理坐标数据的位置。.cpp文件中似乎应该有一些这样的代码
GI["texcoord"]->setBuffer(texcoord)
谁能教我 texcoord 在哪里获取纹理坐标数据,以及如何匹配坐标数据和纹理以呈现带有光线追踪的 3D 模型?我在谷歌上找不到教程,我真的需要帮助或指导才能达到我的目标。谢谢你。