mirror of
https://github.com/mapbase-source/source-sdk-2013.git
synced 2025-03-27 04:49:04 +03:00
Updated Graphical Changes (markdown)
parent
ed8764a831
commit
17c2449310
@ -1,4 +1,4 @@
|
||||
Although Mapbase aims to improve the mapping experience and we often talk about not changing the graphics, there are a few major exceptions. These exceptions are usually toggle-able by the mapper and/or necessary.
|
||||
We often talk about Mapbase not changing the graphics, but most of the graphics changes listed here are either for the good of modding or were simply necessary. Most of them are controlled by the mapper as well.
|
||||
|
||||
### Projected Textures
|
||||
---
|
||||
@ -7,19 +7,23 @@ Although Mapbase aims to improve the mapping experience and we often talk about
|
||||
<img src="https://i.imgur.com/z57RxZl.jpg" width="256"/>
|
||||
</p>
|
||||
|
||||
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. The majority of this is Insolence's work, so please thank them the most.
|
||||
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. Insolence was just porting over code from other projects for the most part, but Insolence's commits were used to cherry-pick code and files over to Mapbase and almost all new projected texture code is from that.
|
||||
|
||||
These changes involve the game DLLs as well as the shaders. Most of the work involved is based off of the Alien Swarm SDK, meaning env_projectedtextures use Alien Swarm I/O/KV and features, like the "Always Update" spawnflag or BBox visibility tests. These changes also fix some classic projected texture bugs that go beyond the VDC patches, like the "reverse projection" bug or decals not receiving shadows correctly.
|
||||
These changes involve the game DLLs as well as the shaders. Most of the work involved is based off of the Alien Swarm SDK, meaning env_projectedtextures use Alien Swarm I/O/KV and features, like the "Always Update" spawnflag or BBox visibility tests. These changes also fix some classic projected texture bugs that go beyond the VDC fixes, like the "reverse projection" bug or decals not receiving shadows correctly.
|
||||
|
||||
In Mapbase, up to 4 projected textures 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.
|
||||
|
||||
<strong style="margin-left:1em; color:#D31B1B; white-space:nowrap;"><img src="https://developer.valvesoftware.com/w/images/c/cb/Warning.png"/> Warning: </strong> Some of the fixes require materials to use a new shader. See (put page here) for more information.
|
||||
|
||||
### env_global_light
|
||||
---
|
||||
(put images here)
|
||||
|
||||
env_global_light is an orthographic projected texture, like an env_projectedtexture that only casts shadows in one direction. This is another thing Insolence ported that ended up being gleaned into Mapbase. I have taken a few liberties with it, like setting the offset cvars to 0 and turning them into keyvalues so mappers can control it, but it's a bit disappointing and I don't really expect it to be used very much.
|
||||
env_global_light is an orthographic projected texture, like an env_projectedtexture that only casts shadows in one direction. This is another thing Insolence ported from Alien Swarm that ended up being gleaned into Mapbase. I have taken a few liberties with it, like setting the offset cvars to 0 and turning them into keyvalues so mappers can control it, but it's a bit disappointing and I don't really expect it to be used very much.
|
||||
|
||||
Like the projected textures, this requires the material shader changes to take advantage of certain fixes.
|
||||
|
||||
### Dynamic RTT shadow angles
|
||||
---
|
||||
@ -30,3 +34,9 @@ env_global_light is an orthographic projected texture, like an env_projectedtext
|
||||
Mapbase uses [Saul Rennison's dynamic RTT shadow angles from the VDC](https://developer.valvesoftware.com/wiki/Dynamic_RTT_shadow_angles_in_Source_2007), based directly on [Insolence commits](https://github.com/95Navigator/insolence-2013/commit/410bcbcc1d5d413bd7a19875b200d30134030aa3). Dynamic RTT shadows angles are off by default and must be enabled through an input/keyvalue in shadow_control, an option which Insolence seems to have added themselves. It still has the same problems it did before, like visibly lerping from light to light.
|
||||
|
||||
Fun fact: These were originally implemented by accident.
|
||||
|
||||
### Brush phong (phong on LightmappedGeneric)
|
||||
---
|
||||
(put image here)
|
||||
|
||||
This was originally from City 17: Episode One. I wouldn't normally aim to implement something like this, but it was implemented by request and due to its proximity to the projected texture stuff. It's only activated through specific VMT parameters and masks anyway.
|
Loading…
x
Reference in New Issue
Block a user