Visual Effects Studio I
Journal
This is a brief journal that will catalogue my progress between classes. For the most part, I will be providing screen captures of what the building looks like at the start of that class, as well as a snapshot of what the parameters look like (so the development can more easily be seen).
Class 1
Presented my project proposal to the class. I included reference photographs as well as a basic project timetable for deadlines. Overall goal is to create a procedural system for this penitentiary that does as much as possible procedurally with controls to pseudo-artistically control stuff, including lights, number of cells and open doors, door types, etc. Everything is created in Houdini, the majority uses ForEach nodes, and Python scripts will be developed as necessary.
A lot of source photography reference for how I want the light to look, as well as texture and detail references can be seen in my personal photographs of Eastern State Penitentiary.
Week 1 |
Procedural Structure |
Week 2 |
Procedural Structure |
Week 3 |
Procedural Lights |
Week 4 |
Procedural Texturing |
Week 5 |
Flex Time |
Week 6 |
Artistic Lighting |
Week 7 |
Procedural Texturing |
Week 8 |
Non-Procedural Details |
Week 9 |
Rendering and Post-Production |
Week 10 |
Troubleshooting and Breakdown |
Class 2
Basic build of building getting template in place. Have controls to rotate wings correctly and create a second floor. Modifies roof accordingly.
Class 3
Refinements of buildings shape and size. Addition of tower and tower controls.
Class 4
Details added. Cutout for skylights (bad cookies). Center tower details. Finner controls and refinements created.
Full view of parameters here. |
Class 5
Many errors and issues fixed. Troubleshooting of all parameters to reduce errors or unexpected results - fixed anything that was wrong. More accurate details and controls overall. More intuitive controls of parameters with complete functionality of logical disabling (i.e. if a parameter shouldn't be allowed to be changed due to another parameter, it doesn't allow you to modify the first parameter).
Full view of parameters here. |
Class 6
Overall modeling completed (with few exceptions).
Full view of parameters here. |
Initial development of light instancing controls which take points created from the geometry and reads them in to an instance node. Lights with full controls are created for every light type. Not functioning, simply built the parameters. Everything is done using Python scripts on a HDA.
Below are the controls for all of these instanced lighs. At the top are "master" controls that will, if enabled, make all lights of the same type (regardless of wing) the same. Below are individual controls for the lights, per wing. Each group has seperate controls. Everything is created from the click of the "Update All" button. It reads information from the parameters of the penitentary as well as from the Python script. Everything is intuitively created (i.e. if there is no second floor for a wing, the 5th light type will not be created for that wing's controls).
Example of high-level controls for a wing with only 4 types of lights. |
Example of high-level controls for a wing with all 5 types of lights. |
Quick rendered light test. Render was over 30 minutes (way too long).
Class 7
Continued development, refinement, and optimization of procedural lights (render tests down to 1-3 minutes per frame). Created an "Render Optomize" button that querries the values of all of the parameters that were created from the "Update All" button to see if light is being emitted, if not, points of that light type are deleted. This saves render times dramatically, likely because each point that wasn't casting light isn't trying to calculate shadows for that point, or do the calculations for the light per point. The script attached to that button will set up the Delete node in the network correctly.
Two new buttons: "Render Optomize" and "Store Light Values" |
Network level three: "/obj/instance2/light_insted" Delete node added and updated correcly for optomized renders. |
To work around the issue of parameters being deleted on any modification or load of the asset I started development on a way to write out the light values to an external file. The "Store Light Values" button performs this task. Another button will need to be developed to read the values back into Houdini.
Class 8
Class 9
Fixed issue with light instanced parameters that weren't functioning properly. It was a result of a miss-named parameter within a multiparm block (my mistake). Even though I no longer had a need for the "Store Light Values" button/script and it's counterpart, I finished the scripts and both buttons work properly. Note: it will not manage animated values - values are written out based on the current frame.
Finalized "Store Light Values" and "Read In Light Values From File" buttons and scripts. |
Example of the changes to the parameters for the Delete node. |
Finalized all Python functions for the instanced light controls. Cleaned up and fully commented my code. Promoted high-level, reused values outside of each function. Light instancing scripts.
Continued development of procedural UV'ing and texturing.
Class 10 -- MIDTERM
Presented my project for the class for midterm view. Had lighting and texturing progress across the entire system.
Overview of UV's across the peitentiary. Everything (except for the center tower) has been procedurally UV'ed. |
|
View of UV's from persepctive of the camera. |
Lighting, texturing, and render progress with comparisons. Quick, high-level experiment with using a global illumination (GI) light to fill out the blacks some.
Render. |
Photograph. |
Render. |
Photgraph. |
Quick Review:
Modeling needs: stairs to second floor, ledge and walkway for second floor, railings for walkway for second floor, bed frames for cells, gates and doorways near the passageway from the center tower.
Lighting needs: experiment with lighting methods, experiment more with global illumination lights, experiment with area or portal lights to get the "cut off" look of the lights.
Texturing needs: find out why the ceiling texture is not showing up as strongly as it should - is it light or texture based, texture the interior center rotundra for the center tower, continue refinements of specularity of all materials.
Misc needs:Continue to optomize and reduce render times as much as possible. Concider baking out geometry of penitentiary to reduce cook times pre-render.
Class 11
Developed pair of scripts to help speedup look development workflow. One set will toggle materials throughout a network (to help determine what is ligh and what is material in the final renders, and to render optomize test). The other set will toggle displacement on and off for all material nodes in a SHOP network.
Materials enabled. |
Materials disabled. |
Discovered that "Read in Light Values from File" script didn't work (I must have messed something up from when it was working a week ago). Wasn't able to fix before class time.
Class 12
Fixed "Read in Light Values from File" script.
--Include pictures of building overview and paramater list, plus a brief description of progress.--
Class 13
--Include pictures of building overview and paramater list, plus a brief description of progress.--
Class 14
--Include pictures of building overview and paramater list, plus a brief description of progress.--
Class 15
--Include pictures of building overview and paramater list, plus a brief description of progress.--
Class 16
--Include pictures of building overview and paramater list, plus a brief description of progress.--
Class 17
--Include pictures of building overview and paramater list, plus a brief description of progress.--
Class 18
--Include pictures of building overview and paramater list, plus a brief description of progress.--
Class 19
--Include pictures of building overview and paramater list, plus a brief description of progress.--
Class 20
--Include pictures of building overview and paramater list, plus a brief description of progress.--
---------------------------------------------------------
This class allows for the development of one complete, demo reel worthy project. I took the opportunity to revisit my Houdini procedural modeling skills while expanding on Houdini multi-parms, assest/parameter development (specifically through Python), the ForEach node, and light instancing.