MCPcopy Create free account
hub / github.com/RenderKit/embree / Material__eval

Function Material__eval

tutorials/pathtracer/pathtracer_device.cpp:847–871  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

845}
846
847inline Vec3fa Material__eval(ISPCMaterial** materials, unsigned int materialID, unsigned int numMaterials, const BRDF& brdf, const Vec3fa& wo, const DifferentialGeometry& dg, const Vec3fa& wi)
848{
849 Vec3fa c = Vec3fa(0.0f);
850 auto id = materialID;
851 {
852 if (id < numMaterials) // FIXME: workaround for ISPC bug, location reached with empty execution mask
853 {
854 ISPCMaterial* material = materials[id];
855 switch (material->type) {
856 case MATERIAL_OBJ : c = OBJMaterial__eval ((ISPCOBJMaterial*) material, brdf, wo, dg, wi); break;
857 case MATERIAL_METAL: c = MetalMaterial__eval((ISPCMetalMaterial*)material, brdf, wo, dg, wi); break;
858 case MATERIAL_REFLECTIVE_METAL: c = ReflectiveMetalMaterial__eval((ISPCReflectiveMetalMaterial*)material, brdf, wo, dg, wi); break;
859 case MATERIAL_VELVET: c = VelvetMaterial__eval((ISPCVelvetMaterial*)material, brdf, wo, dg, wi); break;
860 case MATERIAL_DIELECTRIC: c = DielectricMaterial__eval((ISPCDielectricMaterial*)material, brdf, wo, dg, wi); break;
861 case MATERIAL_METALLIC_PAINT: c = MetallicPaintMaterial__eval((ISPCMetallicPaintMaterial*)material, brdf, wo, dg, wi); break;
862 case MATERIAL_MATTE: c = MatteMaterial__eval((ISPCMatteMaterial*)material, brdf, wo, dg, wi); break;
863 case MATERIAL_MIRROR: c = MirrorMaterial__eval((ISPCMirrorMaterial*)material, brdf, wo, dg, wi); break;
864 case MATERIAL_THIN_DIELECTRIC: c = ThinDielectricMaterial__eval((ISPCThinDielectricMaterial*)material, brdf, wo, dg, wi); break;
865 case MATERIAL_HAIR: c = HairMaterial__eval((ISPCHairMaterial*)material, brdf, wo, dg, wi); break;
866 default: c = Vec3fa(0.0f);
867 }
868 }
869 }
870 return c;
871}
872
873inline Vec3fa Material__sample(ISPCMaterial** materials, unsigned int materialID, unsigned int numMaterials, const BRDF& brdf, const Vec3fa& Lw, const Vec3fa& wo, const DifferentialGeometry& dg, Sample3f& wi_o, Medium& medium, const Vec2f& s)
874{

Callers 1

renderPixelFunctionFunction · 0.85

Calls 11

OBJMaterial__evalFunction · 0.85
MetalMaterial__evalFunction · 0.85
VelvetMaterial__evalFunction · 0.85
DielectricMaterial__evalFunction · 0.85
MatteMaterial__evalFunction · 0.85
MirrorMaterial__evalFunction · 0.85
HairMaterial__evalFunction · 0.85
Vec3faClass · 0.50

Tested by

no test coverage detected