1

私は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

、そして、このように描画するためのテクスコードを与えます。

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 モデルをレイ トレーシングで表示する方法を教えてもらえますか? Google でチュートリアルが見つかりません。目標を達成するために、助けや指示が本当に必要です。ありがとうございました。

4

1 に答える 1