Updated Projected textures (markdown)

Blixibon 2019-08-26 10:41:15 -05:00
parent d3020f235e
commit cff62e2410

@ -4,7 +4,7 @@ A **projected texture** projects a texture onto the surfaces of brushes/models a
In most Source games, only one shadow-casting projected texture could be active at the time, including the player's flashlight. It also suffered from several noticeable bugs in earlier branches of the engine, including Source 2013.
In Mapbase, projected textures have become more stable, more flexible, and much more usable. Most of the bugs they suffered from in Source 2013 have been fixed and up to 5 shadow-casting projected textures can be active at a time, including the player's flashlight.
Mapbase's projected textures are a mix of [Insolence's implementation of Alien Swarm projected textures](https://github.com/95Navigator/insolence-2013/commits/master), [City 17: Episode One's projected textures](https://github.com/KyleGospo/City-17-Episode-One-Source), [G-String's projected textures](https://github.com/Biohazard90/g-string_2013), [the VDC fixes](https://developer.valvesoftware.com/wiki/Env_projectedtexture/fixes), and Mapbase's own adjustments. It sounds like a nightmarish projected Frankenstein, but overall, they've become more stable, more flexible, and much more usable. Most of the bugs they suffered from in Source 2013 have been fixed and up to 5 shadow-casting projected textures can be active at a time, including the player's flashlight. However, you could use the "-numshadowtextures" launch parameter before starting the game to set the shadow map limit yourself. This is based on the Gmod launch parameter of the same name.
Most of the work involved is based off of the Alien Swarm SDK, meaning env_projectedtextures use a lot of Alien Swarm I/O/KV and features, like the "Always Update" spawnflag. There's some other new features as well, like the ability to set the FOV's width and height separately, a feature from City 17: Episode One.
@ -12,7 +12,7 @@ Most of the work involved is based off of the Alien Swarm SDK, meaning env_proje
## Shader changes
Mapbase uses shader code from Insolence's repository, which includes projected texture stuff ported from Alien Swarm. This fixes the reverse projection bug, adds a reflection, changes the way projected textures fade out, and more.
Mapbase uses shader code from the aforementioned projects, including Alien Swarm, G-String, City 17: Episode One, etc. The shader changes alone fix most of the bugs the VDC fixes couldn't fix, including the "reverse projection" bug and the bug with decals not receiving casted shadows. It also adds a "reflection" on brush surfaces and changes the way projected textures fade out, among other things.
<p align="center"><i>The projected textures in the following pictures have had their brightness scaled by 5 to make them more visible.</i></p>
<p align="center">
@ -24,22 +24,10 @@ Mapbase uses shader code from Insolence's repository, which includes projected t
---
Mapbase's projected textures are a mix of [Insolence's implementation of Alien Swarm projected textures](https://github.com/95Navigator/insolence-2013/commits/master), [City 17: Episode One's projected textures](https://github.com/KyleGospo/City-17-Episode-One-Source), [the VDC fixes](https://developer.valvesoftware.com/wiki/Env_projectedtexture/fixes), and Mapbase's own adjustments.
By default, Mapbase uses a shadow map resolution of `2048` with a filter size of `0.5`. This can be changed in `imaterialsystem.h`. See [this section on the Valve Developer Community](https://developer.valvesoftware.com/wiki/Env_projectedtexture/fixes#Lowering_the_amount_of_.22grain.22_on_shadows) for more information.
(talk about stuff here)
## Other new options
From old article:
---
Even though the vast majority of these changes come from other projects, Mapbase still has its own changes that help with env_projectedtexture itself. Here's some new I/O/KV that were not ported from other projects and are not known to exist elsewhere:
<p align="center">
<img src="https://i.imgur.com/RiYso9A.jpg" width="256"/>
<img src="https://i.imgur.com/z57RxZl.jpg" width="256"/>
</p>
For the most part, Insolence's code was just gathered from Alien Swarm and other (credited) projects for its own purposes, but the vast majority of Mapbase's projected texture code--including all of the shader changes--were cherry-picked from Insolence commits.
Most of the work involved is based off of the Alien Swarm SDK, meaning env_projectedtextures use a lot of Alien Swarm I/O/KV and features, like the "Always Update" spawnflag. There's some new features as well, like the ability to set the FOV's width and height separately. (this causes shadow bugs, so be careful)
**In Mapbase, up to 5 projected textures with shadows enabled can be active at one time, including the player's flashlight.** However, you could use the "-numshadowtextures" launch parameter before starting the game to set the projected texture limit. This is based on the Gmod launch parameter of the same name.
By default, Mapbase uses a shadow map resolution of `2048` with a filter size of `0.5`. This can be changed in `imaterialsystem.h`. See [this section on the Valve Developer Community](https://developer.valvesoftware.com/wiki/Env_projectedtexture/fixes#Lowering_the_amount_of_.22grain.22_on_shadows) for more information.
(Always Draw)