| 65 | } |
| 66 | |
| 67 | void MERLMaterial::init(const MERLFile& merlFile) |
| 68 | { |
| 69 | mPath = merlFile.getDesc().path; |
| 70 | mBRDFName = merlFile.getDesc().name; |
| 71 | mData.extraData = merlFile.getDesc().extraData; |
| 72 | |
| 73 | // Create GPU buffer. |
| 74 | const auto& brdf = merlFile.getData(); |
| 75 | FALCOR_CHECK(!brdf.empty() && sizeof(brdf[0]) == sizeof(float3), "Expected BRDF data in float3 format."); |
| 76 | mpBRDFData = mpDevice->createBuffer(brdf.size() * sizeof(brdf[0]), ResourceBindFlags::ShaderResource, MemoryType::DeviceLocal, brdf.data()); |
| 77 | |
| 78 | // Create sampler for albedo LUT. |
| 79 | Sampler::Desc desc; |
| 80 | desc.setFilterMode(TextureFilteringMode::Linear, TextureFilteringMode::Point, TextureFilteringMode::Point); |
| 81 | desc.setAddressingMode(TextureAddressingMode::Clamp, TextureAddressingMode::Clamp, TextureAddressingMode::Clamp); |
| 82 | desc.setMaxAnisotropy(1); |
| 83 | mpLUTSampler = mpDevice->createSampler(desc); |
| 84 | |
| 85 | markUpdates(Material::UpdateFlags::ResourcesChanged); |
| 86 | } |
| 87 | |
| 88 | bool MERLMaterial::renderUI(Gui::Widgets& widget) |
| 89 | { |
nothing calls this directly
no test coverage detected