Monday, September 9, 2019

Lightbuild success!

It took all of Labor Day weekend, but subsequent testing has confirmed that the UHS: 1914 project no longer crashes when I build lighting! A technical narrative is at the bottom of this post. 

The fix involved a more detailed separation of actors to different streamed levels. One for the exterior walls, one for first floor props, one for interior static meshes, one for houses north of the building, etc. In all, the building and surrounding landscape are separated into over 30 streaming levels. As mentioned last month, this results in curious views:


The main building with interior walls and props hidden

This reminded me of how the White House looked during the renovation in the 1950s:


The Shell of the White House during the Renovation 05-17-1950
Auditorium with seats toggled off; also, walls for the main building are not loaded,
with only the wall shared by the gym remaining
To celebrate the successful light build, I decided to revisit the cement lamp poles from the front entrance. These fixtures were not actually present in 1914 when the building opened, but were installed some time in 1915, so I am justified to include them. 


Cement lantern photo reference

I say "revisit," because one of my first photogrametry attempts was to create these lamps. I incorrectly assumed I would be able to easily copy one of the sides to create the closed 4-sided figure: 


The only screenshot of the old, long since deleted lanterns from 10-22-2017. Buh-bye!
Instead, my new technique of mapping a photo onto a low-poly model, in combination with height and normal maps from Materialize, seems to create adequate results:


From left: solid, low-poly lantern model created from photo reference; same model, but displayed as a wireframe; the model wrapped with reference photo; height texture generated by Materialize


Finished lanterns, imported into UE4 with full textures. Subtle, but effective!

Getting back to the crashes, the crashes occurred during texture encoding following an otherwise successful light build. These were full crash-to-desktop situations, and according to the crash logs, I experienced over 70 of them since I first encountered it in May. The crash error was always the same: 


Assertion failed: LCI->GetResourceCluster()->UniformBuffer [File:D:\Build\++UE4\Sync\Engine\Source\Runtime\Renderer\Private\LightMapRendering.cpp] [Line: 49]

Opening "LightMapRendering.cpp" only shows on which line of code the error occured -- while the engine was trying to reference the UniformBuffer. My skill with C++ was not great enough to parse this directly, so I tried scaling down each layer by copy/pasting actors to new streaming levels until I could achieve a successful light build. As I mentioned earlier, after splitting the entire project into 30 levels, the light for the map will actually build without crashing (although it still gives a different light build error in the "messages" window following the build). 

This fixed the problem for the time being, but the error still remains. Because of copying actors from various areas of the map, there are several streaming levels that are empty, but if even one of them are active during a lightbuild, the Editor will crash. My best guess is that the old, empty levels retain some data of their previous builds, and when the Editor tries to encode lightmap textures from this data, it ends up being too big for the buffer. Without more working knowledge of UE4 and C++, this is all conjecture. 

Monday, August 19, 2019

Garrett house

Lately, I've had some lightbuild issues that crash the engine, and these types of errors are quite time consuming. So, while I have been troubleshooting this problem, I modeled the Garrett house, a farmhouse which once stood nearby the high school at 201 East Washington. The home was demolished in 2002 to make way for green space around the high school and middle school. 


Photo reference from the home's application to the Historic Register



The Garrett house recreated in UE4



Sunday, August 18, 2019

Grotesques and other details

Only a few more architectural details remain before I am ready to render v9.5 of the flythrough. The big items are the grotesques from the front facade (as seen below). I don't have enough source images of these carved limestone figures, so photogrametry is not possible at this time. Instead, I used the same technique I utilized on the main entrance foliage, and mapped a single photo over a manually modeled mesh. A height map created with Materialize adds a touch of tessellation. This method creates acceptable -- albeit temporary -- results. 

The grotesques, as shown in the original blueprints.

Photo reference of the north grotesque

Photo reference of the south grotesque

North grotesque in Blender. The photo on the right is mapped onto a lightly extruded model.
North grotesque in UE4

South grotesque in UE4
Compare to the deep relief from the photogrammetry results for the Student (on the center tower)
In addition, I completed the brick box ornaments on the rear elevations...


...and finished the wood/brick wainscot going up to the visitor's box in the gym. 

These stairs were still unfinished in the previous flythrough video

The difficulty was that the angle of the wood wainscot is 41º (not 45º, which would be easier)

Friday, August 16, 2019

Main entrance foliage

A small amount of stonework from the front facade of the building is still missing -- as in, I have yet to include it in the rendering. To expedite this, I am trying a new technique of 3D modeling. Some of the stone foliage is beyond my skills to model manually, so I am using Materialize from Bounding Box Software to generate texture files from photographs. I then create simple 2D outlines of items, then use the height maps created from Materialize to simulate depth (technically called "parallax displacement"). The results so far have been promising. 


Main entrance arch with stone foliage typical of English Gothic and Tudor styles.


The photo above, as imported into Materialize.

The same photo after processing with Materialize.
It doesn't look as impressive as a screenshot, but believe me --
those leaves look like they are popping out of the stonework now. 
Rough outlines of the leaves are traced in Blender, and UV mapped to match the original photo.
The extra vertices in the middle of the leaf are added because it makes the tessellation work better in UE4
(more opportunities for displacement, maybe?). 
Foliage added to the entrance arch in UE4. 
The software is open-source, and free to download. A YouTuber explains how to use it (https://youtu.be/vtnJToPxBNo), but it is mostly self-explanatory. 

Wednesday, August 14, 2019

Summer 2019 progress

Between now and my previous post in March, 2019, I have indeed worked on the UHS:1914 project, but not entirely in a way that can readily be presented in the blog. A majority of the work has been to write original music for the v9 video, and although the music is completed, the demo recording is not ready to be shared. There have been numerous items to correct/fix/add to the project, but since the music is complete, the timings for the camera cannot be changed. This means anything I add in the meantime will be fixes or additions that can be seen in the v9 video. These are some of the items added this summer:

Side and rear gable ornaments for the tower, including editing the stonework to look correct from the rear (it can be briefly viewed from the art room skylight in the video). I created a new version of the brick texture (originally from Polypixel) to make arranging fancy brickwork faster:

Side/Rear gable ornament traced in Blender using a newly created version of the brick texture

Brick ornament as seen imported into UE4

I finally found a solution to the square around the doorway arches. Previously, I used a square mesh that had one edge matching the arch, but this resulted in rendering errors. Now, the wall is seamless:

Wall above doorway arch before

Wall above doorway arch after
Cast iron balustrade remodeled to be more accurate:




Based on a photo from within a storage closet built in the former light well, I modeled the brick ornament on the exterior wall between the windows:


Balcony brick ornament in Blender, with reference photo

Balcony brick ornament imported into UE4
 Shower hardware rods in the Girls' Shower completed:

Screenshot of Girls' Showers from v9 video
Shower hardware completed
Gym balcony rail added around the entire perimeter:

Balcony rail
A redo of the brick texture on the gym stairs no longer results in bizarre streaks:

Brick around gym stairs before

Brick around gym stairs after
Bookshelves are added to the Board Room (not completely accurate, but these did not require the creation of a new bookshelf model):

Photo reference of the Board Room from the Rosemary
(this is the Echo staff posing for their yearbook photo)

The Board Room in UE4 with added props

Because of the automatic LOD (level-of-detail) creation, the proscenium always looked "spiky" from a distance. I corrected this by optimizing the original mesh, which turned out to include the unseen (but still rendered) backside of the arch. With over 1000 fewer vertices, there are no more spikes! Also seen in the following before/after screenshots -- the crest used to be "floating" from the proscenium, and now is attached.


Before, spikes from the LOD 01 and 02

After optimization, no spikes!
A bug cropped up in the UE4 project files causing the editor to crash unexpectedly when copying actors. My intention was to update the gym portion of the project by adding exterior details from the 1914 side of the building (trees, houses, corn, etc), but this kept making the editor crash. A time consuming solution fixed this, but it involved splitting the building into multiple sections. This meant copying every actor (UE4's name for separate items) to new levels that are ultimately viewed all at once, but can create cool/unsettling views mid-way. For example, below is a screenshot of the building with the exterior walls peeled away: 

Front facade hidden
...and here with the auditorium in various states of hidden-ness:

Exterior auditorium walls hidden

Entire auditorium hidden


When the music demo is ready, I will post it, along with the updated video. 

Monday, March 18, 2019

Gym entrance details

I have been holding out on completing the gym entrance because I hoped I would find a better photo of the stonework. Sadly, this photo is missing. I instead used a very low resolution photo to model the stone finials, and repeated the foliage from the Race street entrance. In addition, I cleaned up the indoors part of the entrance by modeling the wrought iron bars on the stairs and brick arch. 

Completed gym entrance

Stonework copied from the Race street entrance

Stone finials modeled after those on the Champaign County Courthouse (also a Royer building)

Ironwork, marble, and brick arch for the interior



Monday, March 11, 2019

Footlights

The original blueprints show a metal conduit for footlights in the auditorium. I remember that these were in place, but have little photographic evidence of them. This took a lot of guesswork, but the result is acceptable. Dimmers for theatrical lights had been invented by 1914, so I may add functionality to turn the lights on and off. 

Footlights as seen in 1914 blueprints
  



There was a free pack of fabric materials on the Epic marketplace , so I used that to update the fabric on the teaser to a more realistic velvet. The color also ended up being less saturated, and therefore more realistic. 


Finally, I added the correct trim to the science demo room, based entirely on photos from the Rosemary

Photo reference from the Rosemary.