开发平台(Platform): (Ex: VC++, GCC, Linux, ...)
VC++
额外使用到的函数库(Library Used): (Ex: OpenGL, ...)
optix、cuda
问题(Question):
修改optix范例来贴图
喂入的资料(Input):
预期的正确结果(Expected Output):
model有贴图
程式码加上cuda程式有点多,所以附在最后面
想请问对于Optix、cuda熟悉的板友
我目前用progressivePhotonMap这个范例程式修改
会读入一个obj档,但是不确定要怎么改texture才会贴上去
目前我研究其他范例在贴图时会有下面code的形式
在一般的cpp档内
GeometryInstance GI;
GI["diffuse_map"]->setTextureSampler(loadTexture(..));//读进贴图
在.cu档内
rtTextureSampler<float4, 2> diffuse_map;
rtDeclareVariable(PerRayData_tex, prd, rtPayload, );
rtDeclareVariable(float3, texcoord, attribute texcoord, );
RT_PROGRAM void closest_hit_radiance()
{
const float3 uv = texcoord;
prd.result = make_float3( tex2D( diffuse_map, uv.x, uv.y ) );
}
在progressivePhotonMap这个范例中,他会实作ray tracing
而实作ray tracing跟读进texcoord的cu档不同
(以上述例子来说就是prd跟texcoord在不同的.cu档)
所以无法参考其他范例来把贴图贴上并产生ray tracing的效果
曾经尝试把texcoord丢到ray tracing的cu档
但结果VS在compile过程中当掉(无法终止compile
想请问对Optix、cuda熟的板友是否可以帮忙解惑一下
或者可以推荐参考教学,网络上连英文教学都少得可怜QQ
对不起我描述得很烂,但我对Optix、cuda真的超级新手Orz
程式码
https://www.dropbox.com/sh/8wl0o28kxpu93oi/AADqETYtID2kypTMNiIZHG-Ra?dl=0
如果有任何问题我可以尽量描述更细
但怕我自己也是一知半解囧>