I’m thinking about really high detailed terrain, and I thought about how much easier it would be to place things like patches of dirt, or a little stone path, or something if I just used _decal, the only problem is, decal will pass through everything.
If we had a _decalstyle and say your terrain is set up like
_decalstyle “terrain”
and the _decals are set up as
_decal
_decaltarget “terrain”
Then it wouldn’t hit say, a house or a tree that’s on the terrain, just the ground itself.
Me slaps Matt w/ rotten Trout… but realizes that Matt lives in Phx too… Me retreats back out of the sun to work on PC tan!
Common now… Paypal? Hopefully ydnar shoudnt get that desperate. If he does, then he should apply for a job in the games industry and get paid for it that way.
To expand the idea, how about a target/targetname kind of approach. Say you target the _decal entity to a func_group or terrain group etc (any brushwork entity) and it only applies itself to the targetted entity. If the target is a null then it does the usual projection.
I have another idea. How about a func_* with a key like “decalShadow” where all shadows cast on the object become decals, and are merged with the entity? Then you could have shadows move with entities without the hassle of making your own decal. I can’t see it being that hard, either.
I was wondering about this, by the way, because ydnar’s name is no longer on the SD employee’s page, and he hasn’t had a SD avatar for a while now. Ydnar, I imagine you’re doing work for all of the Id partners now?
That’s not needed, the original thing I posted in the first post, would do all that work.
One thing I wanted this for, was to do large cloud shadows going across multiple surfaces, without having to add lines to every shader.[/quote]
Well, you’d actually want to add lines to your shaders. Projecting a decal over large amounts of surfaces will double the amount of geometry to store and draw. One additional shader pass is the cheapest way to do it.
That’s not needed, the original thing I posted in the first post, would do all that work.
One thing I wanted this for, was to do large cloud shadows going across multiple surfaces, without having to add lines to every shader.[/quote]
Well, you’d actually want to add lines to your shaders. Projecting a decal over large amounts of surfaces will double the amount of geometry to store and draw. One additional shader pass is the cheapest way to do it.
y[/quote]
That wouldn’t be the same thing at all, and for some scenarios, I would sacrifice FPS for the effect.
Look at it this way:
If I wanted to project cloud shadows over the entire map, and I wanted them to be distorted in some areas (like on steep slopes) then I would NEED to do it as a decal projection. Otherwise, it would literally take years to properly stretch and position each shader, where the decal would do it correctly. Also, if I only wanted those cloud shadows on buildings, but not the terrain around them, I could group them and have the decal be targeted only at them. Get it?
If lightmap shadows were converted to _decal entities, then you could get “static” shadows falling onto dynamic-but-stationary brush entities, like func_rotating entities. That could be cool, maybe. Could also be a huge pain in the ass.