I’m building a dynamic rendering engine with optix and I have any questions about textures.
1)I create material per geometry/instance and then I create the variable to set the sampler. If I want create a material and after change, removing the bind sample to this instance, how I can do this? set null not working.
- create material
- load sampler
- declare variable and set sampler
- create geometry/instance and bind material (OK, working)
- get variable from previous instance
- set (null) (not working)
- I have a geometry with diffuse and normalmap textures working great. If I insert a new geometry with new material with only diffuse but not normalmap and inside of device code I test a specific variable with information about textures exists and not execute the tex2D of normalmap the exception throws error.
//the program not enter here but return exception in tex2D
if (xUseDiffuseNormalSpecular & 2)
float3 normalMapT = make_float3(tex2D(xNormalTexture, texcoord.x, texcoord.y));
3)What the best option for performance:
- Dynamic branching or new program, in the previows question I could create separated programs for all combinations diffuse, diffuse-normal, normal, nothing. And set to material.
Thanks and sorry the bad english.