rotating instance is causing different light brightness?

Avatar
PortalCombat
306 Posts
Posted Dec 02, 2011
Hey there.

I have 4 instances with the same vmf.
Each of them is facing the middle of the room.

But each of them has different light brightness, which seems to depend on the angle of the instance.
Here are 3 screenshots - each screenshot is showing 1 wall of the room.

180 degree rotated:
img

90 / 270 degree rotated:
img

not rotated:
img

What the hell is wrong with this?

Advertisement
Registered users don’t see ads! Register now!
Avatar
MasterLagger
1,695 Posts
Posted Dec 02, 2011
Replied 3 hours later
Did you have a light entity when taking these pictures?
Avatar
PortalCombat
306 Posts
Posted Dec 02, 2011
Replied 2 hours later

MasterLagger wrote:
Did you have a light entity when taking these pictures?

  • the wall you can see is a panel 64x64x2 units
  • it is parented to an robot arm at map spawn
  • behind this panel, there is an light (within the instance)

  • the room itself does not have any lights for this test map.

  • so the light from the screenshots must be the "light" entity within the instance.
  • but when I rotate the instance, it gets displayed like this. :sad:
  • but its same effect when the room has more light itself.
Avatar
MasterLagger
1,695 Posts
Posted Dec 02, 2011
Replied 1 hour later
So it's a panel with light behind it and it shows up differently depending on how it's rotated. Huh, this is weird. Any chance you could stick a light in front of the tile to cover up this strange phenomenon?
Avatar
Another Bad Pun
516 Posts
Posted Dec 02, 2011
Replied 35 minutes later
I think the reason this is happening is because The Source Enginge calculates light during compile. Lighting is pre-caculated in Source, which means that if a face is lit up at the start of a map it will stay that way. Even if the brush face is turned, it will stay the same. You could try collapsing the instance to remove the light. If you still want there to be light behind the room, try using the blocklight texture to block the light before it reaches the face. An env_projected texture should help too.
Avatar
PortalCombat
306 Posts
Posted Dec 02, 2011
Replied 1 hour later
At the moment I solved it with creating 4 instances.
Each of them is rotated as I need it (0, 90, 180, 270).

This works fine for me. But as soon as I rotate any of my instances, lights are starting to act strange. :thumbdown:
And of course - it's 3 times more work to change the instance vmf. :sad:

Avatar
Lpfreaky90
2,842 Posts
Posted Dec 02, 2011
Replied 22 minutes later
Could you just place a blocklight texture just like 2 pixels behind the panel so that the light from inside the instance isn't projected?
(don't need to change this in the instance :wink:)
Advertisement
Registered users don’t see ads! Register now!
Avatar
Mr. P. Kiwi
97 Posts
Posted Dec 03, 2011
Replied 2 hours later
I had a similar problem, and just like Another Bad Pun said, I discovered source calculates the lighting for each surface during the compile. So if that surface ought to move source won't know that; in other words, the lighting on a surface is determined on it's default position - before any movement. I'd suggest placing a light entity behind the brush so that Source will calculate the surface lighting through this entity. Your goal will be for it to have about the same atmosphere as the rest of your map. To do this simply change it's color and intensity, compile, check and repeat until you're happy with the result. Another way is to use dynamic lights in your map, which calculate lighting in real time (they're really expensive, so try not to use them unless necessary).
Hope this helps.