From 431f1bdd65c6d5cbbf8c331261186561d63e6041 Mon Sep 17 00:00:00 2001 From: Ben Heasly <benjamin.heasly@gmail.com> Date: Mon, 13 Feb 2017 18:05:07 -0500 Subject: [PATCH] code cleanup for Car example --- .../Car/{MakeCar.m => rtbMakeCar.m} | 110 +++++++++--------- ...deller.m => rtbMakeCarMexximpRemodeller.m} | 0 ...emodeller.m => rtbMakeCarPBRTRemodeller.m} | 0 3 files changed, 56 insertions(+), 54 deletions(-) rename ExampleScenes/IsetbioExamples/Car/{MakeCar.m => rtbMakeCar.m} (53%) rename ExampleScenes/IsetbioExamples/Car/{MakeCarMexximpRemodeller.m => rtbMakeCarMexximpRemodeller.m} (100%) rename ExampleScenes/IsetbioExamples/Car/{MakeCarPBRTRemodeller.m => rtbMakeCarPBRTRemodeller.m} (100%) diff --git a/ExampleScenes/IsetbioExamples/Car/MakeCar.m b/ExampleScenes/IsetbioExamples/Car/rtbMakeCar.m similarity index 53% rename from ExampleScenes/IsetbioExamples/Car/MakeCar.m rename to ExampleScenes/IsetbioExamples/Car/rtbMakeCar.m index d600eb5..5155598 100644 --- a/ExampleScenes/IsetbioExamples/Car/MakeCar.m +++ b/ExampleScenes/IsetbioExamples/Car/rtbMakeCar.m @@ -1,72 +1,62 @@ -%%% RenderToolbox3 Copyright (c) 2012-2013 The RenderToolbox3 Team. -%%% About Us://github.com/DavidBrainard/RenderToolbox3/wiki/About-Us -%%% RenderToolbox3 is released under the MIT License. See LICENSE.txt. +% Render a Mercedes SLS and display as an isetbio optical image. +% +% Henryk Blasinski -%% Scene description -% Henryk Blasinski +%% Initialize. + +% tbUse('isetbio'); + close all; -clear all; +clear; clc; ieInit; -%% Simulation parameters +%% Choose simulation parameters. filmDiag = 20; targetDistance = 5000; - - nSamples = 256; -conditionsFile = 'MakeCarConditions.txt'; -%% - -parentSceneFile = fullfile('Models','Mercedes SLS','sls_amg.obj'); -% parentSceneFile = fullfile('Models','Renault Megane RS','exportedMegane.obj'); - -% Renderer options. -hints.imageWidth = 640; -hints.imageHeight = 480; -hints.renderer = 'PBRT'; % We're only using PBRT right now -hints.recipeName = 'MakeCar'; -hints.copyResources = 1; +%% Choose Batch Render Options. +hints.imageWidth = 320; +hints.imageHeight = 240; +hints.renderer = 'PBRT'; +hints.recipeName = 'Car'; hints.batchRenderStrategy = RtbAssimpStrategy(hints); -hints.batchRenderStrategy.remodelPerConditionAfterFunction = @MakeCarMexximpRemodeller; -hints.batchRenderStrategy.converter.remodelAfterMappingsFunction = @MakeCarPBRTRemodeller; +hints.batchRenderStrategy.remodelPerConditionAfterFunction = @rtbMakeCarMexximpRemodeller; +hints.batchRenderStrategy.converter.remodelAfterMappingsFunction = @rtbMakeCarPBRTRemodeller; -% Change the docker container +% change the docker container hints.batchRenderStrategy.renderer.pbrt.dockerImage = 'vistalab/pbrt-v2-spectral'; -resources = rtbWorkingFolder('folderName','resources', 'hints', hints); -root = rtbWorkingFolder('hints',hints); - - +parentSceneFile = fullfile(rtbRoot(), 'ExampleScenes', 'IsetbioExamples', ... + 'Car', 'Models', 'Mercedes SLS', 'sls_amg.obj'); +resources = rtbWorkingFolder( ... + 'folderName', 'resources', ... + 'hints', hints); +conditionsFile = fullfile(resources, 'rtbMakeCarConditions.txt'); -%% Save data to resources folder +%% Save data to resources folder. [waves, daylight] = rtbReadSpectrum('D65.spd'); rtbWriteSpectrumFile(waves,1e4*daylight,fullfile(resources,'SunLight.spd')); -%% Choose files to render - - +%% Load the scene. [scene, elements] = mexximpCleanImport(parentSceneFile,... - 'ignoreRootTransform',true,... - 'flipUVs',false,... - 'exrToolsImage','hblasins/imagemagic-docker',... - 'convertToLeftHanded',true); - % 'toReplace',{'tga'},... - % 'targetFormat','exr',... - - + 'ignoreRootTransform',true,... + 'flipUVs',false,... + 'exrToolsImage','hblasins/imagemagic-docker',... + 'convertToLeftHanded',true, ... + 'workingFolder', resources); -%% Start rendering +%% Write conditions file and scene files. condition = {'clear'}; daylight = {'off'}; headlights = {'on'}; @@ -102,27 +92,39 @@ for d=1:length(daylight) end end - rtbWriteConditionsFile(conditionsFile,names,values); nativeSceneFiles = rtbMakeSceneFiles(scene, 'hints', hints, ... - 'conditionsFile',conditionsFile); -%% + 'conditionsFile',conditionsFile); + + +%% Render! radianceDataFiles = rtbBatchRender(nativeSceneFiles, 'hints', hints); - + + +%% Display as an isetbio optical image. + +% TODO: Ideally, we want to use BuildOI here. Unfortunately, we don't have +% the "oiParameters" structure anymore. In RTB4, this structure held +% information about the film distance, diagonal, etc. We could then use +% this information to fill in parameter info in the OI, such as the +% F-number or the FOV. Now all that info is held in the remodeler. How +% should we move that info out from the remodeler into the oi? + for i=1:length(radianceDataFiles) radianceData = load(radianceDataFiles{i}); - - % Create an oi - oiParams.lensType = 'pinhole'; - oiParams.filmDistance = values{i,4}; - oiParams.filmDiag = 20; + photons = radianceData.multispectralImage; + oiName = sprintf('%s_%i',hints.recipeName,i); - oi = BuildOI(radianceData.multispectralImage, [], oiParams); - oi = oiSet(oi,'name',values{i,1}); + % Create an oi + oi = oiCreate; + oi = initDefaultSpectrum(oi); + oi = oiSet(oi, 'photons', single(photons)); + oi = oiSet(oi, 'name',oiName); - ieAddObject(oi); - oiWindow; + vcAddAndSelectObject(oi); end +oiWindow; + diff --git a/ExampleScenes/IsetbioExamples/Car/MakeCarMexximpRemodeller.m b/ExampleScenes/IsetbioExamples/Car/rtbMakeCarMexximpRemodeller.m similarity index 100% rename from ExampleScenes/IsetbioExamples/Car/MakeCarMexximpRemodeller.m rename to ExampleScenes/IsetbioExamples/Car/rtbMakeCarMexximpRemodeller.m diff --git a/ExampleScenes/IsetbioExamples/Car/MakeCarPBRTRemodeller.m b/ExampleScenes/IsetbioExamples/Car/rtbMakeCarPBRTRemodeller.m similarity index 100% rename from ExampleScenes/IsetbioExamples/Car/MakeCarPBRTRemodeller.m rename to ExampleScenes/IsetbioExamples/Car/rtbMakeCarPBRTRemodeller.m -- GitLab