I am wondering about something like this and need help to consider if it’s doable, and if so, is it a good idea (you might have a better one?)
I have an orthogonal tile system. Let’s say it’s grass plains.
On those grass plains we have various terrain objects like rock, chairs, flowers and such.
Those items are represented by tiles (Just a bit of a texture put on a generated plain object.)
Now I can also generate a mesh to calculate lighting and shadows(those would be 3D, but very simple and untextured(no bumpmapping))
Now after I’ve done that I would cast a few lighting sources(sun/moon, the fireplace) and get realistic lighting/shadows.
Then overlay those lighting results multiplicatively over my previous scene.
Would that work?
If so, then what would be the best way to incorporate that system into the basic Unity? Or do I need the Unity PRO for this?
Lighting is quite easy if you have normal maps for your tiles.
I’ve never seen 2D shadows work well though. It’s just missing the 3D information required to generate believable shadows.
That is kind of my point - If I generated a simple set of 3d meshes to generate shadows, and rendered them normally as a solid thing but set them to be rendered after everything else and made a multiplicative shader on them, would that work?
(I’m going after a nice, 2d, drawn surfaces but with believable lighting and shadows:)
The problem I had trying such a setup previously was that the 3D shadow casters’ edges need to line up exactly with the 2D sprites. If there’s any overlap you get ugly artifacts, which severely limits the styles you can achieve.
Kind of defeats the purpose as you might as well just use 3D objects directly.
yes, unless you blur the lighting edges a bit. Also, yes, it’s not that simple, but going full 3D would give me a totally different feeling.
I mean - 2D pixel based graphics(retro some might call it) has a certain vibe to it that I would want and going 3D would take away instead of add to this. And thank You for that tip about edges. Will keep that in mind:)
Thanks:)