Jump to content
ACEfanatic02

ACE's BATs and Blender Tutorials

23 posts in this topic Last Reply

Highlighted Posts

Posted:
Last Online:  
 

Hey, all!  Figured it was time to start a thread of my own.  This thread will focus on my active BAT projects as well as Blender tutorials to help folks getting into Blender for the first time for BATting.  (Why yes, I am stealing Jasoncw's format.)  Any work I do on BAT4Blender, or my light rig, will still be posted to the main BAT4Blender thread as well. 

Note that I do not intend to do basic explanations of Blender UI or modeling.  There are tons of existing tutorials on Youtube that do a much better job than I ever could in that respect.  (I personally enjoy Grant Abbitt's videos, for example.)  Instead, I want to focus on more intermediate tutorials about how to setup materials, and procedural setups with material layering (and possibly some Geometry Nodes stuff?), specifically in the context of creating BATs.

Table of Contents:
[RESERVED FOR FUTURE USE]

-----

STEX Releases:
[RESERVED FOR FUTURE USE]

-----

Works in Progress:

BATs:
Art Moderne building at Main & Water St. in Harrisonburg VA.  (Name TBD)
oasis_002.png

John P. Taylor Apartments (Based on building 3 of the Troy Housing Authority project in Troy NY.)
tha_001.png

Public pools pack (original / collage designs)
pool_001.png

Tutorials:
Glass Materials in Blender [1/? complete]
How To Use Downloaded PBR Textures [0/1 complete]
Material Layering [0/1 complete]

------

A general warning / caveat:  I have a demanding day job and ADHD.  I make no guarantees about the frequency of updates or releases.  For now, BATting is a nice outlet for my creative needs; if it becomes a stressful thing (or if the special interest wheel just happens to land somewhere else) I will stop.  Please do not be a jerk.  Asking for a status update about a project that has not been mentioned in a while is perfectly acceptable.  However, demanding that I work on or release a particular BAT is not acceptable behavior and will be ignored.  (Yes, I read other threads, I know how things tend to go here.)


(Mods:  preemptive apology for the impending double-post; I want the first tutorial to be separate from this intro.)

  • Like 8

I make the pixels go brrrrrrrrrr...

she/her

Share this post


Link to post
Share on other sites
  • Original Poster
  • Posted:
    Last Online:  
     

    Glass Materials in Blender (Part One):

    Glass is one of the most important materials in architecture.  This is particularly true for modern architecture, where the majority of a facade may be glass, with only incidental amounts of concrete or steel holding it all together.  But glass plays a big part in the majority of urban buildings, from Art Deco skyscrapers to the Chicago window to old Gothic cathedrals full of stained glass.

    Unfortunately, glass can be... tricky to model correctly in Blender.  Despite a built-in Glass BSDF shader, there are a number of surprising details that must be dealt with to render realistic glass.

    To begin with, let's make a basic glass shader:

    glass_basic_node.png.8435ff60d09461f51d6756f730610816.png

    You may note that I'm using a Principled BSDF for this instead of a Glass BSDF.  There's nothing really wrong with the Glass BSDF; they will produce identical results in the basic case.  However, there are a number of additional options available to the full Principled BSDF that make it more flexible, such as the coat layer, thin film, etc.  We'll get into those in a later tutorial.

    If you apply this to a basic cube and render.. it looks like glass.  Job done, nothing more to see here, right?

    ...

    Well, it's not that easy.  Place a plane under that cube and:

    glass_basic_shadow.png.70da31cbad1718c5142152bd71331734.png

    That sure is a very dark shadow being cast by this very transparent material!  Yeah, it turns out that Cycles shoots shadow rays to determine direct lighting (from lights, emissive materials and sky) and as far as these rays are concerned the glass is completely 100% opaque.  In practice this will mean that during a day render, the interiors of your buildings will tend to look very dark, even through a full wall of windows.

    Fortunately, Blender gives us the Light Path node, which allows us to change how we shade things for different types of rays.  The Transparent BSDF, unlike glass, is actually transparent to shadows, and so we can switch to using it for shadow rays.  (This is physically inaccurate, as it ignores refraction along the shadow ray.  Refraction breaks direct light sampling, so Cycles makes the tradeoff of reduced physical correctness in exchange for much better render times.)

    The node graph for this is relatively straightforward.  Notice I use a single RGB constant node to drive the color of both the glass and transparent shaders; this will allow us to have colored shadows if we have colored glass (important for stained glass windows!)

    glass_better_nodes.png.fee7d82e4aed1d2a7353ed09fda695de.png

    glass_better_shadow.png.3009489564dc31eb0c4f010b79be6403.png

    The next common issue is not actually about the material, but about the model itself.  For most surfaces, such as walls and floors, you can get away with only modeling the visible face.  The interior side of a wall is not really relevant to an exterior render (unless the building is thin enough that you can see all the way through it.)  However, glass is different, because of refraction.

    <BEGIN TECHNICAL DETAILS>

    When light hits a non-metallic surface (metals are slightly different), light can do one of two things:  bounce off (reflection) or enter the material (refraction).  When light enters a new material, it usually 'bends' as the speed of light depends on the density of the medium it is passing through.  This is how lenses work, and why old windows distort your view, etc.  The amount of bending is described by the Index of Refraction (IOR), which is the ratio between the speed of light in the new medium and the old one.  These ratios are generally provided as "Absolute IOR", which is the IOR relative to vacuum (or air, which is only slightly denser than vacuum as far as light is concerned.)

    A good place to look up absolute IOR (and really, a lot of properties) for various materials is https://physicallybased.info/.

    Cycles does not track the medium a ray is currently traveling within.  Instead, it assumes that if it hits the front of a face it is transitioning from air to your material, and if it hits the back of a face it is transitioning from the material to the air.  Among the consequences of this:  it is incredibly hard to render a physically accurate glass full of water in Blender.  This also makes glass with plastic tint coatings a bit harder.  We'll get into how to simulate these in a later tutorial.

    <END TECHNICAL DETAILS>

    The impact of thickness is easiest to just show.  Here:

    glass_spheres.png.cc98ec580469eb00189dfd484939a54a.png

    The sphere on the left only has external faces, and as such renders as if it were solid glass.  This significantly distorts the background.

    The sphere on the right, however, has a second, inner face.  It is hollow.  It still looks like glass, but does not have the major distortion of the solid sphere.

    Most buildings don't have big glass orbs hanging around (for good reason; they're a massive fire hazard), but they do have windows.  Look at the difference with a pair of window panes:

    window_panes.png.ee36c0f58e78a28692d2138d73e34ac5.png

    On the left, the window panes are a single plane each.  There's a significant amount of distortion caused by this.  In the middle example, we extrude the windows slightly.  Suddenly this looks a lot more like a real window!  It even does that thing where the edges of the glass pane look almost opaque (due to a phenomenon known as Total Internal Reflection.)  Finally, on the right we go even further, and model two panes of glass with an air gap between then, replicating the double-glazing of real windows.

    In practice, at the scale and angle we see windows in BATs, the effect of double-glazing isn't particularly noticeable.  However, the difference between a one-sided window pane and a two-sided window pane is huge.

    To more easily and consistently apply the window thickness, we can use a modifier.  Make sure all of the windows are separated into their own object (if they're not, select all of them in edit mode and press P to separate.)  Then, apply a Solidify modifier to the window object:
    solidify_modifier.png.cf692a9f4fa771f40adccc85acaa62a6.png

    There are a lot of things we can do in here (we'll come back to this in a later tutorial), but the basic things to modify are the Thickness and disabling Rim Fill.  I like to make windows around 5-10cm thick, which is actually reasonably accurate for windows in high-rises.  The amount of thickness ultimately controls the amount of visual distortion the windows cause.

    Disabling Rim Fill is important for two reasons:  First, the edges of the panes are usually hidden by the window frame, so no need to add geometry for them.  Second, these edge faces may end up overlapping the faces of the window frame itself.  Cycles really does not like exactly coplanar faces, they cause self-shadowing artifacts, so it's best to avoid them as much as possible.

    Now that we have the setup for glass, we'd like to make it reusable.  No sense repeating all this work every time we want a slightly different kind of glass, after all.  To do this, select the three Shader nodes as well as the Light Path node, and press Ctrl-G to split them out into a Node Group.

    Notice how, since we didn't select the RGB node that controls the color, that connection became an input to the group.  We can add additional inputs by dragging connections to the Group Input or Group Output nodes.  This allows you to expose various parameters in a reusable way.  For this example, you may want to expose Color, Roughness, and IOR:

    image.png.401b677d4954e5d3a62c3346a2363b6a.png

    On the side bar in the node editor (press N if it isn't visible), you can edit these inputs, changing things like their name, type, and the minimum / maximum / default values.

    Also in the side bar, up at the top, you can give the node group a name.  This is important!  Always do this!  Programmers learn this very early:  don't rely on your memory, document your stuff or you will regret it months or years down the road.  There's nothing worse than trying to understand a node graph where everything is named 'NodeGroup' or 'NodeGroup.012' or similar.

    You can now use this group the same way that you use any node in a material.  Node groups can contain other groups, so with a bit of experimentation you can build up some very complex materials without creating an incomprehensible mess of the graph.

    So there we go, a standard glass material.  It's worth noting that while this is effective for a plain window, or stained glass, it doesn't quite work for the tinted, reflective coated glass of many modern skyscrapers.  That requires a few more tricks... which we will cover next time.  Stay tuned!

    • Like 6

    I make the pixels go brrrrrrrrrr...

    she/her

    Share this post


    Link to post
    Share on other sites
  • Original Poster
  • Posted:
    Last Online:  
     

    Glass Materials in Blender (Part Two):

    This tutorial picks up from the end of Part One.  Make sure you've gone through that first, as this part will build on what we learned last time.  Additionally, from this point on I will be assuming you are using a recent version of Blender (at least 4.0) as there have been some important changes to the implementation and interface of some shader nodes (particularly the handling of Coat layers in the Principled BSDF.)

    Background:

    Last time, we covered how to create a basic, clear window glass material, and how to properly model window panes to avoid excessive distortion.  While this is an important building block, it doesn't quite match up with real-world window glass.  Especially in modern, International Style skyscrapers, windows are highly reflective, often with prominent tint colors.  (Most often green, blue, or black, but sometimes gold or even red.)

    There are multiple ways that this can be done IRL, but they all come down to some kind coating placed over the glass.  We will look at one of these in detail:  a tinted plastic film coating (which helps reduce the amount of heat entering the building through windows).  Afterwards, we'll talk a little bit about how to handle more metallic coatings, however my implementation there is a lot more ad-hoc.

    (Caveat:  I am not an architect; I make video games, not buildings.  So I may be getting some of the details about this wrong.)

    Looking at many skyscrapers from ground level, you might assume that these windows are effectively mirrors and completely opaque:

    one_east_pratt_baltimore.jpg.c071a56086bdf09f8f5a9abbfb6d67be.jpg
    (Google Maps screenshot of One East Pratt Street, Baltimore MD.)

    However, if you look closely, you can see the lights on the internal ceiling.  In other instances, you may notice that windows suddenly look more transparent when a shadow is cast on them.  And of course, all of these look more transparent at night.

    So, what's going on here?  These are examples of the one-way mirror illusion.  When looking at the window, you see both a reflection and a refraction.  However, because the interior of the building is so much darker than the exterior of the building, the reflection dominates and you can't see inside.  This is why only lights seem to punch through, and why the windows look transparent at night (when the exterior is darker.)

    From the aerial viewpoint of SC4, a few things make this effect less pronounced.  First, when looking through windows you're seeing the floor, not the ceiling, which is usually directly lit by windows and light fixtures and therefore may be brighter (although this is countered in most office and residential cases by darker materials on floors.)  Second, the windows reflect the ground when viewed from the air, rather than the sky.  This will generally mean the reflections are darker, and the windows more transparent.

    Between these effects, fully mirror windows are not really realistic.  Even metallic window coatings are still transparent (otherwise you wouldn't be able to look out of them), they just look more opaque because metals reflect a higher percentage of light.

    With that out of the way, let's get started.

    Plastic Film Tinting:

    Most window coatings, particularly in residential high-rises AFAICT, are a polyethylene terephthalate (PET) plastic film.  These are designed to filter and reflect infrared and UV light, and typically have some color tint to them as well.

    The glass shader we created last time has a base color of 100% white.  That is to say, it passes all light through.  While this is mostly true for plain glass, in practice the glass does absorb some light.  Reducing this to 95% white slightly darkens the interior without being too extreme:
    window_panes_darkened.png.9e009afe0e86d7ce039327e33859342c.png

    The checker pattern has been restricted to the area in front of the windows here to more clearly illustrate the differences in reflectivity between improperly-modeled one-sided glass (left), a single pane of thick glass (middle), and two panes of thick glass (right).  Notably, the additional surfaces cause more darkening of the interior, which in turn causes the reflection to appear brighter.

    It may be tempting at this point to set the base color to blue or green to mimic a tinted window.  However, this doesn't quite do the right thing.  The window color appears too saturated, even with the tint limited to 50% saturation:
    tint_basecolor.png.5a846dcf42df3aa61548d26254750556.png

    Instead, we want to use the Coat layer of the Principled BSDF to apply our tint.  Starting with the node group we made last time, drag out new inputs for the coat tint, weight, and IOR.  Setting the tint to a nice cyan (HSV: 0.5, 0.5, 1.0), the weight to 1.0, and IOR to 1.575 (the IOR of PET), we get this result:
    tint_coat_naive.png.08e56fabd1756256895d49239822449e.png

    Well that doesn't look right!  There are two issues.  First, we don't have any colored shadows like we do when we set the base color.  Second, we've got the same extreme saturation issue that we had with the base color tint.

    The shadows are easy enough to solve:  blend the base color and coat tint together with a Mix Color node set to multiply, and with the coat weight plugged into the factor.  When we turn the coat weight up, the shadows will now respond correctly.
    coat_shadow_fix_nodes.png.878203a0946da2f9f0655fdf8b322cb5.png

    The saturation issue is happening because the tint is being applied on all of the faces of the window.  So, when light hits the window, it goes through the coat layer on the outside, then the outside glass, then the inside glass, and finally through the inside coat layer.  The tint gets applied twice as a result, making it darker and more saturated than intended.  (Worse, there are more IOR transitions, meaning more reflections, which make the glass appear more opaque than it should.)

    To fix this, we want to apply the tint material only on the exterior surface of the glass.  If you've directly modeled the panes of glass, this is as simple as selecting the outside face and assigning it to a different material slot.  If you're using the Solidify trick mentioned in the previous tutorial, you can use the Material Offset option to select a different material slot for the extruded face.
    solidify_material_offset.png.386e1addbf1bceee6dfe9df9fe1c1899.png

    Note that for this to work, you must make sure you have two material slots on the object, and their relative positions in the material list need to stay the same:
    material_list.png.84c5a5b96498128d8ba26d1de35c549d.png

    In this case, since the tinted and untinted material slots are next to each other, assigning the tinted slot to the window and setting the Material Offset to 1 will assign the extruded face to the untinted glass.

    With these fixes, we now have a robust PET tint:
    tint_coat.png.e9836f7b076c0f720a1bc8156dd4b228.png

    A few things to note:  there are multiple reflections occuring here.  The primary reflection is off of the coat layer, and it will not include the tint color.  The secondary reflections occur off of the glass, and they will include the tint.  This causes the reflection to take on a bit of the tint color, which is part of why using coat for tinting looks better than base color.

    To make the windows appear more reflective and opaque, simply lower the value of the tint color.  The (untinted) reflection will dominate.  For example, setting the tint to 20% grey does a very good job of creating the one-way mirror effect:
    tint_dark_grey.png.555551642bfc88b597d4557d2aa1843a.png

    This window is still transparent, though, and so things like night lighting Just Work:
    tint_dark_grey_night.png.a43c5b5bfacfcb0430af0e9de056e51e.png

    Metallic Coating:

    Sometimes windows have a distinctly metallic appearance.  There are two properties that sort separate metals from non-metals.  (Visually, that is; obviously there are a lot of differences in the rest of the physics.)
    - Metals have extremely high base reflectance; looking at glass or plastic or really any non-metal straight-on, it will reflect somewhere between 2-8% of light.  Metals, on the other hand, tend to have reflectances in the range of 50-90%.  (Both approach 100% when looking at a shallow angle.  If you don't believe me, go look at a piece of cardboard edge-on and be amazed at how mirror-like it can be.)
    - Metals have strongly tinted reflections.  Non-metals can usually be separated into a specular layer with untinted, relatively weak reflection, and a diffuse layer with strongly saturated color.  If you shine a white light on an apple, the apple will look red, but the highlight will still be white.  Metals, on the other hand, tint their specular reflection and don't have a diffuse layer.  So if you shine a white light on gold, it will appear... well, gold.

    These result in noticeably different behavior as a window coating.  The high reflectivity means that metals do a much better job of making a window appear opaque in sunlight (while still allowing them to be transparent from the inside).  It's also not uncommon for these to use colored metals.  For an example, see the Market Square Center in Indianapolis.

    PBR renderers typically assume metals are opaque, so there's no real 'correct' way to simulate this effect.  What I've landed on instead is a bit of a hack.  By using the Layer Weight node to blend between our glass material and a metal material based on view angle, we can maintain a consistent mirror appearance (because at oblique angles the reflectance from the glass is also quite high.)

    The resulting node group is... a bit of a mess.  In hindsight, it'd probably be better to have separate node groups for PET and metal tints.  I'm not really happy with it, but here it is if you want to replicate it:

    image.png.6d2cd2f3610eb725558d6cc5d5f6b6c6.png

    The results are pretty nice, though:

    metal_coat_day.png.ae681d07545ac0fe13d5367054579b57.png

    As opaque as it looks during the day, when backlit at night it is appropriately transparent:

    metal_coat_night.png.df16dc68fea20a950c0cd9c6277e573a.png

    That's an awful lot of words about glass.  This concludes the glass tutorial.  Hopefully this was useful!

    • Like 5

    I make the pixels go brrrrrrrrrr...

    she/her

    Share this post


    Link to post
    Share on other sites
  • Original Poster
  • Posted:
    Last Online:  
     

    modular_001.png.1b73c1987eeeaf984455e0b392172934.png

    Experimenting with a different, hopefully better way of building facades.  Instead of directly modeling everything in-situ, this is modeled in parts and then instances of those models are assembled into the final facade.  Slightly better for workflow because you can solve the modeling / texturing issues (like those arches, which are a pain to UV) at small scale, then reuse them.  Also means that there's only a small amount of 'real' geometry in the scene (despite the detail there's only actually ~6000 triangles in memory for this render), which means both the editor and render run faster.

    Might write this up as a tutorial at some point, it seems really promising.

    • Like 8

    I make the pixels go brrrrrrrrrr...

    she/her

    Share this post


    Link to post
    Share on other sites
  • Original Poster
  • Posted:
    Last Online:  
     

    Fleshed out the basic roof structure (this is all unique geometry instead of modular pieces.)  Still need to do the ground floor, roof junk, back wall, and a lower extension filling out the back of the 1x2 lot.

    modular_002.png.d6bd82d99d9466a1a0e83c7b66311331.png

    This is loosely based on a real building, BTW, 53 Elizabeth St. in NYC's Chinatown.  Taking a few liberties to keep things better suited to SC4.  (Also modeled the windows in the arch incorrectly and I'm too lazy to fix it.)

    image.png.c8591b75e32bdf7e295f297781f49fe5.png

    • Like 8

    I make the pixels go brrrrrrrrrr...

    she/her

    Share this post


    Link to post
    Share on other sites
  • Original Poster
  • Posted:
    Last Online:  
     

    How many consecutive posts before I anger the mod team, I wonder...

    Finally modeled the shops (exteriors at least) on the first floor, along with the awnings on the second.  Only major detail missing from the facade now is the exterior lamps on each of the piers; will need to see if those actually look good at night though, if they cut off at the edge it may be better not to have them.

    modular_003.png.ebd172125d2d26cb99104eceada09a49.png

    And because I think it's interesting, here's all the modular pieces so far, separated out (the ground floor didn't have a whole lot of reuse going on):

    modular_004.png.43003c55358b72d2dde6276eed2b9703.png

    Front row here are some low-poly props for the apartment interiors.  Might be a bit overkill, but if these end up working well they'll be reusable for later projects as well.

    • Like 9

    I make the pixels go brrrrrrrrrr...

    she/her

    Share this post


    Link to post
    Share on other sites
  • Original Poster
  • Posted:
    Last Online:  
     

    Night lights for the front facade, and started on the roofjunk.  (The little AC unit farms on renovated old buildings always look funny to me...)

    modular_005.png.cf62ed9e2377bfa356e23d497c09e6f8.png

    Also started a grime pass, you can (sort of) see the results around the edges of the roof.  Using AO to blend in a procedural dirt material (which is a really fancy way of saying a noise texture fed through a color ramp.)  Really just there to ground things a bit, will make a bigger difference when I add the same layering to the other materials.

    I think the interiors worked out well, but I'm not sure if it'll be too out-of-place in the game.  Will definitely look weird next to Maxis stuff, might look okay together with more detailed BAT4Max renders?  I dunno.  Thoughts?

    • Like 6

    I make the pixels go brrrrrrrrrr...

    she/her

    Share this post


    Link to post
    Share on other sites
    Posted:
    Last Online:  
     

    I think the interior looks great (as does the rest). It's something I rarely take the time to do, but I do think it makes a difference, especially for a building like this with large floor to ceiling windows.

    • Like 1

    maritime.png.62faa45eda03ab57c0139c21d3dacef0.png

    Share this post


    Link to post
    Share on other sites
  • Original Poster
  • Posted:
    Last Online:  
     

    @Jasoncw:  Yeah, one of my hopes is that a combination of instancing and geometry nodes can make this process less painful.  (Like, model ~4-8 room layouts--or at least the bits near windows--and then have a random layout instanced at each room in the building.)  Still requires thinking about the internal floor plan a bit more than just modeling facades, but I don't think that's always a bad thing.

    @IDS2:  Thanks!  Ironically, your note about "floor to ceiling windows" really nailed what was bugging me about them.  They're large windows, but they're not supposed to be that large.  Double-checked, and in addition to making the beams a little too narrow, I completely forgot to model the lintel/cornice (I don't know architecture terms) detail above them.  Fixed those, modeled an interior sill, and I think it looks a lot better.  (Chalk up another point for modular buildings in that fixing this was easy.)

    Went and looked up this building on Zillow.  Turns out there aren't any apartments IRL, the entire thing is medical office space.  (I knew the second floor was a dentist office, but I assumed the upper floors weren't.)  Does explain why the layout doesn't work very well for apartments, though.  All of the ones I modeled are basically 1400+ sqft which is a little ridiculous for Manhattan.  (And also just really big in general.  My apartment's ~750 and it's pretty spacious.)

    Oh well.  Not gonna change it now.

    modular_006.png.eafef1ad3f5ba2baffaa416ec9ca88ff.pngmodular_007.png.6b56af5cd4c7c809170cbb2a8455ad6a.png

    Bunch of material tweaks.  Wood floors have a bit less contrast.  Added dirt layer to a bunch of the exterior.  Really helps sell the wear and weathering in a way that AO alone does not.

    Made night lights in the apartments brighter.  Don't want them to be completely washed out, but they should be overexposed if we're able to see details on the exterior.

    Did a bit of work on the side walls and started blocking out the back part of the building.  The sides deviate from reality a bit; IRL they're covered by a thin / damaged layer of paint or plaster, but every time I attempt to imitate that the results look too busy and distracting.  So:  plain brick.  (Different material from the facade brick, less even with wider mortar.)  May throw some subtle leaking stain decals on these later just to break it up a bit, though.

    • Like 7

    I make the pixels go brrrrrrrrrr...

    she/her

    Share this post


    Link to post
    Share on other sites
  • Original Poster
  • Posted:
    Last Online:  
     

    First pass at the rear side of the building:

    modular_008.png.9e02c3932f294488ca703a7f1baa6747.png

    Modeled a nice little modular kit for the fire escape... and basically all of it is hidden.  Oh well.  The bounce light in that area is really neat though.

    The little outdoor patio is real (although I've changed the layout), but the windows on the extension building are completely nonsensical IRL and not clearly visible from satellite view anyway so I've just made something up.  Floor plan doesn't make a whole lot of sense but... eh, it's fine.

    This is pretty close to done, now.  Some lights for the back, and a few decals to liven up some of these bare walls and I think it'll be good to go.  (Which means I need to learn how to lot in PIM-X, ugh.  Anyone want to do that part for me?)

    • Like 7

    I make the pixels go brrrrrrrrrr...

    she/her

    Share this post


    Link to post
    Share on other sites
    Posted:
    Last Online:  
    Currently: Viewing Topic: Show us your Downtown!
     
    1 hour ago, ACEfanatic02 said:

    First pass at the rear side of the building:

    modular_008.png.9e02c3932f294488ca703a7f1baa6747.png

    Modeled a nice little modular kit for the fire escape... and basically all of it is hidden.  Oh well.  The bounce light in that area is really neat though.

    The little outdoor patio is real (although I've changed the layout), but the windows on the extension building are completely nonsensical IRL and not clearly visible from satellite view anyway so I've just made something up.  Floor plan doesn't make a whole lot of sense but... eh, it's fine.

    This is pretty close to done, now.  Some lights for the back, and a few decals to liven up some of these bare walls and I think it'll be good to go.  (Which means I need to learn how to lot in PIM-X, ugh.  Anyone want to do that part for me?)

    Speaking as a lotter, PIM-X is pretty easy to pick up and work with! But if you have any issues, just post your question and any number of us Simtropolians can help you out!

    If you really want to outsource the PIM-X work, you can send me a message!

    • Like 3

    Share this post


    Link to post
    Share on other sites
  • Original Poster
  • Posted:
    Last Online:  
     

    Night lights for the back, and some water damage decals to liven up the walls a bit.  (Might still be a bit too intense, could lower the opacity on those...)

    This area doesn't have full interiors, just walls and floor; I don't think the windows are large enough to justify it.  Put a Voronoi texture on the walls to give some amount of fake detail, but very little of it is really visible.

    modular_009.png.699f9ddb421d608d6480da650e58faac.png

    Looking at this now, I maybe want some exterior lights around the patio.  Otherwise, I think this is... done?  Maybe?  I dunno.  Am I missing anything?

    • Like 4

    I make the pixels go brrrrrrrrrr...

    she/her

    Share this post


    Link to post
    Share on other sites
    Posted:
    Last Online:  
     

    If you're looking for more exterior lights, maybe a wall sconce next to the patio door? Definitely not necessary though. I don't think you're missing anything.

    • Like 1

    maritime.png.62faa45eda03ab57c0139c21d3dacef0.png

    Share this post


    Link to post
    Share on other sites
  • Original Poster
  • Posted:
    Last Online:  
     

    Exported, lotted, and testing:

    image.png.b145dd5321dd13dfa2ea8df1214e73b9.png

    Apparently PIM-X has some rendering errors around sliced models, which made me panic and export repeatedly trying to fix it.  (I've got a decent gaming laptop but that's still ~15m each time.)  They don't show up in-game, so all of that was unnecessary. ¯\_(ツ)_/¯

    Immediate thoughts:  it feels a bit over-sized relative to other mid-rise buildings.  I don't think it actually is, though, but the only comparable Vanilla buildings are 3-story rowhouses.  (Which actually line up reasonably well.)  It's currently a stage 6, but it doesn't have any other stage 6's in the 1x2 footprint to compete with in Vanilla so it grows very enthusiastically.  Will need to tweak the filling degree, and I might even bump it up to stage 7 just so it doesn't completely wreak rowhouse neighborhoods?

    I'm excited!  I've never gotten this far with BATting before.

    • Like 6

    I make the pixels go brrrrrrrrrr...

    she/her

    Share this post


    Link to post
    Share on other sites
    Posted:
    Last Online:  
     

    Love to see the weathering, especially. This adds a lot of apparent realism to the buildings. Many BATs are just too sterile and clean, so they look like paper models.

    Regarding your instancing techniques, how does that fare with texturing? Would this mean that each instance also has the same textures and identical noise patterns?

    I'm also looking forward to your pools pack. There's a striking lack of quality public pools for the game, even though every real city has them. I've played around with caustics and pool water before as well, taking the approach of faked caustics using procedural noise, in the hopes of saving on rendering time. I found it difficult to correctly size them though. I think the caustic patterns would often be a bit smaller (example), but that also makes them less visible in the game.

    Share this post


    Link to post
    Share on other sites
  • Original Poster
  • Posted:
    Last Online:  
     
    7 hours ago, memo said:

    Love to see the weathering, especially. This adds a lot of apparent realism to the buildings. Many BATs are just too sterile and clean, so they look like paper models.

    Regarding your instancing techniques, how does that fare with texturing? Would this mean that each instance also has the same textures and identical noise patterns?

    I'm also looking forward to your pools pack. There's a striking lack of quality public pools for the game, even though every real city has them. I've played around with caustics and pool water before as well, taking the approach of faked caustics using procedural noise, in the hopes of saving on rendering time. I found it difficult to correctly size them though. I think the caustic patterns would often be a bit smaller (example), but that also makes them less visible in the game.

    Instance texturing:  yes and no.  UV maps are the same between all instances, as are many of the procedural coordinates (generated and object-space, in particular.)  However, there are shader tricks you can do to produce unique coordinates from these.  For example, in the case of 3D texture sampling via object-space coordinates, you can instead use a vector transform to sample with world-space coordinates:
    image.png.dab5794c7674a3e1afe35cd54f96f9a5.png

    In the more general case with UVs, you can potentially use an Object Info node to offset your coordinates according to the object position (which will be unique for instances placed in different locations).  This one takes some care to avoid misalignment for structured textures (i.e., not splitting bricks in half), so I don't really bother with it.

    Overall I think you can just get away with not doing any of this in the majority of cases.  Where an area is visually dependent on unique texturing, like the sides of this W2W building, you usually don't have much geometric detail.  In that case, we don't need to build it from modular pieces, and we can give the entire wall unique UVs.  OTOH, where the modular pieces are useful you tend to have a lot of geometric detail.  Those hide some of the repetition, and they also are where procedural layers of dirt will show up, further disguising any issues.  Being careful with the contrast of these textures also goes a long way.

    This BAT has some texture repetition if you know where to look for it, but it doesn't really stick out, and it's no worse than using a tiling base texture to begin with.

    Pools:  agreed, we need more of these.  Especially up here in the northeast they seem to be everywhere.

    Interestingly, the caustics are the easier part of water shading.  Blender has approximate directly-sampled caustics via MNEE that you can turn on (it's sort of a pain, though, you have to enable them on the light source, the caustic caster and all of the caustic receivers for them to work.)  Use a subdivision and ocean modifier on the water plane to model waves, and it will generate plausible caustics for you.  Where this is a problem, though, is that these caustics are incompatible with volumetric rendering.  So if you want proper water absorption, you have to fake it in the shader:

    image.png.ec8b55a13d0aa3a368dda8969eeb9c67.png

    This just uses Beer's law to compute the absorption and multiplies it into the base albedo color.  Which is not correct, to be clear (it does the wrong thing for specular light off the base of the pool), but is close enough.  I did a couple days of research trying to find the 'correct' absorption coefficients to use, but while there is some data out there the actual color varies wildly depending on what's in the water (chlorine or dirt or algae, etc.)  So really just want the absorption to kill most of the red light, some of the green, and eyeball it from there, hence the reddish-orange extinction color.

    All of this is a massive pain, and my hacks only work in specific cases.  Refraction and volumetric rendering are one of the areas Blender is really lagging behind in, relative to a lot of other renderers.  (Which is not really a complaint; I'm a graphics programmer, I know exactly how really goddamn hard this problem is.)  Fortunately BATs make it easy enough to cheat.

    • Like 1

    I make the pixels go brrrrrrrrrr...

    she/her

    Share this post


    Link to post
    Share on other sites
  • Original Poster
  • Posted:
    Last Online:  
     

    Reexported 35 Elizabeth St. again with a reduced scale (133% instead of 136%).  I think it feels slightly better in-context now relative to Maxis R$$:
    image.png.1cfb26db7ffd2314b6bc39865e8a38b6.png

    Not sure if this is a matter of floor heights or just the inconsistent scaling on the Maxis side (lol, look at the differences in stairs between those rowhouses), but this feels better even if it's less 'correct'.  My windows are also just generally larger than on Maxis stuff, which I think contributes a lot.

    Still overly enthusiastic and grows too much, so will need to redo the modding, but I think it's getting better.

    • Like 2

    I make the pixels go brrrrrrrrrr...

    she/her

    Share this post


    Link to post
    Share on other sites
  • Original Poster
  • Posted:
    Last Online:  
     

    And now for something completely different:

    sgshack_001.png.2aa44dc1e147cdbaeb799a037772b783.pngsgshack_002.png.3bb9177457626866285d901270ae9a8b.png

    Did a wiki-walk from reading about NY tenements and ended up at Shotgun house, and these seemed quite charming and also simple to model.  Ideally a competitor to the Vanilla R$ stage-3 duplexes.  This particular one is loosely based on some in Mobile, Alabama.

    • Like 7

    I make the pixels go brrrrrrrrrr...

    she/her

    Share this post


    Link to post
    Share on other sites
  • Original Poster
  • Posted:
    Last Online:  
     

    Didn't do a whole lot this weekend, but I whipped up another variation of the shotgun house:

    sgshack_003.png.946ceac9c4950f1d208229032b7896b7.pngsgshack_004.png.32991b24aed3cc1e3b38525a077b16d2.png

    Both variants will come with a bunch of color schemes (I have about 6-8 setup right now), but rendering all of those out and lotting them is kind of a pain so I haven't bothered yet.

    And because I cannot focus on a single thing (ADHD wooooo), another experiment tonight:

    wwelem_001.png.3259c326639ee5dd41b598cd37952c5d.png

    Playing around with a modular kit and seeing how reasonably you can fit a suburban school into a 4x4 lot.  Answer:  not quite.  Missing a place for a library and doesn't have quite as much classroom space as you'd want for a realistic capacity.  It's more plausibly scaled than the Maxis elementary school, but that's not saying a whole lot.  From measuring references in Google Maps, this _should_ be somewhere between 5x7 and 8x10.

    OTOH, this is much nicer than the Chinatown building I did earlier from a workflow perspective, because everything here (with the exception of the sign, roof and interior floor) is modular.  So it's totally reasonable to take the same kit and build out a few different schools of various sizes.

    I like the general feel of it though.  Aiming for the sort of generic institutional architecture that almost every school I ever attended was built with.

    • Like 6

    I make the pixels go brrrrrrrrrr...

    she/her

    Share this post


    Link to post
    Share on other sites
    Posted:
    Last Online:  
     

    Nothing useful to say here, just wanted to say I love everything here and will absolutely apply some of these techniques and ideas whenever my mental health improves.

    • Like 1

    Share this post


    Link to post
    Share on other sites
    Posted:
    Last Online:  
     

    It can be tricky to get the scaling right on those single story buildings. On one hand, if you're going for realism, something like 5x7-8x10 is accurate. On the other hand, sometimes a smaller form factor can still look "correct" in the game. Look at JBSimio's schools as an example - they're mostly 4x4 or 5x4, but a lot of people still use them (although I've had to stop using them because I can't unsee the scaling issues). 

    One thing I've found is especially noticeable with single story buildings is that you often need to over-scale them a bit more than usual so that they don't look too squished relative to houses, sims, etc. The game camera already squishes things, but it's definitely more apparent when you don't have multiple floors.

    I really like the modular modeling approach. Also makes it easy to do color variations.

    • Like 1

    maritime.png.62faa45eda03ab57c0139c21d3dacef0.png

    Share this post


    Link to post
    Share on other sites
  • Original Poster
  • Posted:
    Last Online:  
     
    4 hours ago, IDS2 said:

    It can be tricky to get the scaling right on those single story buildings. On one hand, if you're going for realism, something like 5x7-8x10 is accurate. On the other hand, sometimes a smaller form factor can still look "correct" in the game. Look at JBSimio's schools as an example - they're mostly 4x4 or 5x4, but a lot of people still use them (although I've had to stop using them because I can't unsee the scaling issues). 

    One thing I've found is especially noticeable with single story buildings is that you often need to over-scale them a bit more than usual so that they don't look too squished relative to houses, sims, etc. The game camera already squishes things, but it's definitely more apparent when you don't have multiple floors.

    I really like the modular modeling approach. Also makes it easy to do color variations.

    Yeah, I think the sims are sort of the "original sin" of SC4's art direction.  (In terms of consequences, I'm not actually sure it was the wrong choice.)  I was actually doing some tests this weekend to see if I could match the scale of the sims in Blender (using the human base meshes Blender released a few years back).  Turns out the sims are about 1.5x larger than they should by (after accounting for the 136% vertical scale to compensate for the perspective.)  AFAICT cars are not scaled up the same (they're closer to realistic sizes), which makes things even weirder.  I assume the sims got scaled up just to keep them visible out to Z3 (which seems to be the sort of 'default' play condition), but some subset of buildings are scaled accordingly and others are not -- for example the rowhouses I showed a few posts ago are too small, the sims are taller than the doors.  I'm guessing the decision to make sims bigger happened mid-development.  Or maybe there just wasn't consistent art direction around it, who knows?

    Maybe a thing to do would be to replace the various sim sprites with reasonably scaled versions.  For Science.

    • Like 1

    I make the pixels go brrrrrrrrrr...

    she/her

    Share this post


    Link to post
    Share on other sites

    Sign In or register to comment...

    To comment in reply, you must be a community member

    Sign In  

    Already have an account? Sign in here.

    Sign In Now

    Create an Account  

    Sign up to join our friendly community. It's easy!  

    Register a New Account


    ×

    Thank You for the Continued Support!

    Simtropolis depends on donations to fund site maintenance costs.
    Without your support, we just would not be in our 24th year online!  You really help make this a great community. *:thumb:

    But we still need your support to stay online. If you're able to, please consider a donation to help us stay up and running. This helps sustain a platform where we can share our community creations for years to come.

    Make a Donation, Get a Gift!

    Expand your city with the best from the Simtropolis Exchange.
    Make a Donation and get one or all three discs today!

    STEX Collections

    By way of a "Thank You" gift, we'd like to send you our STEX Collector's DVD. It's some of the best buildings, lots, maps and mods collected for you over the years. Check out the STEX Collections for more info.

    Each donation helps keep Simtropolis online, open and free!

    Thank you for reading and enjoy the site!

    More About STEX Collections