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