| 209 | } |
| 210 | |
| 211 | void RenderEngineWindow::TilePathGUI(Properties &props, bool &modifiedProps) { |
| 212 | PathGUI(props, modifiedProps); |
| 213 | |
| 214 | bool bval; |
| 215 | float fval; |
| 216 | int ival; |
| 217 | |
| 218 | if (ImGui::CollapsingHeader("Sampling", NULL, true, true)) { |
| 219 | ival = props.Get("tilepath.sampling.aa.size").Get<int>(); |
| 220 | if (ImGui::InputInt(("x" + ToString(ival) + " Anti-aliasing").c_str(), &ival)) { |
| 221 | props.Set(Property("tilepath.sampling.aa.size")(ival)); |
| 222 | modifiedProps = true; |
| 223 | } |
| 224 | LuxCoreApp::HelpMarker("tilepath.sampling.aa.size"); |
| 225 | } |
| 226 | |
| 227 | if (ImGui::CollapsingHeader("Tiles", NULL, true, true)) { |
| 228 | if (props.IsDefined("tile.size.x") || props.IsDefined("tile.size.y")) { |
| 229 | ival = props.Get("tile.size.x").Get<int>(); |
| 230 | if (ImGui::SliderInt("Tile width", &ival, 8, 512, "%.0f pixels")) { |
| 231 | props.Set(Property("tile.size.x")(ival)); |
| 232 | modifiedProps = true; |
| 233 | } |
| 234 | LuxCoreApp::HelpMarker("tile.size.x"); |
| 235 | |
| 236 | ival = props.Get("tile.size.y").Get<int>(); |
| 237 | if (ImGui::SliderInt("Tile height", &ival, 8, 512, "%.0f pixels")) { |
| 238 | props.Set(Property("tile.size.y")(ival)); |
| 239 | modifiedProps = true; |
| 240 | } |
| 241 | LuxCoreApp::HelpMarker("tile.size.y"); |
| 242 | } else { |
| 243 | ival = props.Get("tile.size").Get<int>(); |
| 244 | if (ImGui::SliderInt("Tile size", &ival, 8, 512, "%.0f pixels")) { |
| 245 | props.Set(Property("tile.size")(ival)); |
| 246 | modifiedProps = true; |
| 247 | } |
| 248 | LuxCoreApp::HelpMarker("tile.size"); |
| 249 | |
| 250 | if (ImGui::Button("Separate tile horizontal and vertical size")) { |
| 251 | props.Set(Property("tile.size.x")(32)); |
| 252 | props.Set(Property("tile.size.y")(64)); |
| 253 | modifiedProps = true; |
| 254 | } |
| 255 | } |
| 256 | |
| 257 | bval = props.Get("tile.multipass.enable").Get<bool>(); |
| 258 | if (ImGui::Checkbox("Multi-pass rendering", &bval)) { |
| 259 | props.Set(Property("tile.multipass.enable")(bval)); |
| 260 | modifiedProps = true; |
| 261 | } |
| 262 | LuxCoreApp::HelpMarker("tile.multipass.enable"); |
| 263 | |
| 264 | if (props.Get("tile.multipass.enable").Get<bool>()) { |
| 265 | fval = props.Get("tile.multipass.convergencetest.threshold256").Get<float>(); |
| 266 | if (ImGui::SliderFloat("Convergence test threshold", &fval, 0.f, 256.f)) { |
| 267 | props.Set(Property("tile.multipass.convergencetest.threshold256")(fval)); |
| 268 | modifiedProps = true; |