IrishKilter
01-11-2012, 10:43 AM
So just out of a bit of creative curiousity, I've been interseted in allowing a more detailed setup for players to adjust their Texture settings in depth to try and get the game to run best on their computer as possible. To do this, I really wanted to give players a bit of in-depth control on what textures to adjust, allowing Player Characters and Enemy characters to have their own LOD Group, plants to have their own LODGroup, same with Water textures.
The only way I can do this, is by adding my own TextureGroups/LODGroups, which means I would have to edit Texture.UC file. I know that your not suppose to modify scripts, and instead extend off of them. But this is one of those few cases that I don't believe I can extend off of, I would have to actually modify the original script and then adjust the Config file DefaultEngine to accept adding onto the texture group,.
// @warning: if this is changed
// update BaseEngine.ini SystemSettings
// update BaseCompat.ini AppCompatBucket 1 2 3
// update Game's DefaultEngine.ini SystemSettings
// update Game's BaseCompat.ini AppCompatBucket 1 2 3
// update Texture.uc TextureGroupContainer
// order and actual name can never change (order is important!)
//
// TEXTUREGROUP_Cinematic: should be used for Cinematics which will be baked out and want to have the highest settings
enum TextureGroup
{
TEXTUREGROUP_World<DisplayName=World>,
TEXTUREGROUP_WorldNormalMap<DisplayName=WorldNormalMap>,
TEXTUREGROUP_WorldSpecular<DisplayName=WorldSpecular>,
TEXTUREGROUP_Character<DisplayName=Character>,
TEXTUREGROUP_CharacterNormalMap<DisplayName=CharacterNormalMap>,
TEXTUREGROUP_CharacterSpecular<DisplayName=CharacterSpecular>,
TEXTUREGROUP_Weapon<DisplayName=Weapon>,
TEXTUREGROUP_WeaponNormalMap<DisplayName=WeaponNormalMap>,
TEXTUREGROUP_WeaponSpecular<DisplayName=WeaponSpecular>,
TEXTUREGROUP_Vehicle<DisplayName=Vehicle>,
TEXTUREGROUP_VehicleNormalMap<DisplayName=VehicleNormalMap>,
TEXTUREGROUP_VehicleSpecular<DisplayName=VehicleSpecular>,
TEXTUREGROUP_Cinematic<DisplayName=Cinematic>,
TEXTUREGROUP_Effects<DisplayName=Effects>,
TEXTUREGROUP_EffectsNotFiltered<DisplayName=EffectsNotFiltered>,
TEXTUREGROUP_Skybox<DisplayName=Skybox>,
TEXTUREGROUP_UI<DisplayName=UI>,
TEXTUREGROUP_Lightmap<DisplayName=Lightmap>,
TEXTUREGROUP_RenderTarget<DisplayName=RenderTarget>,
TEXTUREGROUP_MobileFlattened<DisplayName=MobileFlattened>,
TEXTUREGROUP_ProcBuilding_Face<DisplayName=ProcBuilding_Face>,
TEXTUREGROUP_ProcBuilding_LightMap<DisplayName=ProcBuilding_LightMap>,
TEXTUREGROUP_Shadowmap<DisplayName=Shadowmap>,
TEXTUREGROUP_ColorLookupTable<DisplayName=ColorLookupTable>,
TEXTUREGROUP_Terrain_Heightmap<DisplayName=Terrain_Heightmap>,
TEXTUREGROUP_Terrain_Weightmap<DisplayName=Terrain_Weightmap>,
TEXTUREGROUP_ImageBasedReflection<DisplayName=ImageBasedReflection>,
TEXTUREGROUP_Bokeh<DisplayName=Bokeh>,
};
That's the original code, I was hoping to simply add to the end of it something such as
TEXTUREGROUP_EnemyCharacter<DisplayName=Enemy>,
TEXTUREGROUP_EnemyCharacterNormal<DisplayName=EnemyNormal>,
TEXTUREGROUP_EnemyCharacteSpecr<DisplayName=EnemySpecular>,
TEXTUREGROUP_Foliage<DisplayName=Foliage>,
TEXTUREGROUP_Water<DisplayName=Water>
Allowing me to control simlpy any water texture alone through LODGroups. The only problem I can see cropping up is that I wouldn't be able to update to any future versions of UDK without having to remodify Texture.UC everytime, but to be honest I'm pretty happy with the October build I'm at and unless something magical is added, I don't see myself upgrading from this point on.
So any thoughts? Primarily on problems you may see cropping up from doing this?
The only way I can do this, is by adding my own TextureGroups/LODGroups, which means I would have to edit Texture.UC file. I know that your not suppose to modify scripts, and instead extend off of them. But this is one of those few cases that I don't believe I can extend off of, I would have to actually modify the original script and then adjust the Config file DefaultEngine to accept adding onto the texture group,.
// @warning: if this is changed
// update BaseEngine.ini SystemSettings
// update BaseCompat.ini AppCompatBucket 1 2 3
// update Game's DefaultEngine.ini SystemSettings
// update Game's BaseCompat.ini AppCompatBucket 1 2 3
// update Texture.uc TextureGroupContainer
// order and actual name can never change (order is important!)
//
// TEXTUREGROUP_Cinematic: should be used for Cinematics which will be baked out and want to have the highest settings
enum TextureGroup
{
TEXTUREGROUP_World<DisplayName=World>,
TEXTUREGROUP_WorldNormalMap<DisplayName=WorldNormalMap>,
TEXTUREGROUP_WorldSpecular<DisplayName=WorldSpecular>,
TEXTUREGROUP_Character<DisplayName=Character>,
TEXTUREGROUP_CharacterNormalMap<DisplayName=CharacterNormalMap>,
TEXTUREGROUP_CharacterSpecular<DisplayName=CharacterSpecular>,
TEXTUREGROUP_Weapon<DisplayName=Weapon>,
TEXTUREGROUP_WeaponNormalMap<DisplayName=WeaponNormalMap>,
TEXTUREGROUP_WeaponSpecular<DisplayName=WeaponSpecular>,
TEXTUREGROUP_Vehicle<DisplayName=Vehicle>,
TEXTUREGROUP_VehicleNormalMap<DisplayName=VehicleNormalMap>,
TEXTUREGROUP_VehicleSpecular<DisplayName=VehicleSpecular>,
TEXTUREGROUP_Cinematic<DisplayName=Cinematic>,
TEXTUREGROUP_Effects<DisplayName=Effects>,
TEXTUREGROUP_EffectsNotFiltered<DisplayName=EffectsNotFiltered>,
TEXTUREGROUP_Skybox<DisplayName=Skybox>,
TEXTUREGROUP_UI<DisplayName=UI>,
TEXTUREGROUP_Lightmap<DisplayName=Lightmap>,
TEXTUREGROUP_RenderTarget<DisplayName=RenderTarget>,
TEXTUREGROUP_MobileFlattened<DisplayName=MobileFlattened>,
TEXTUREGROUP_ProcBuilding_Face<DisplayName=ProcBuilding_Face>,
TEXTUREGROUP_ProcBuilding_LightMap<DisplayName=ProcBuilding_LightMap>,
TEXTUREGROUP_Shadowmap<DisplayName=Shadowmap>,
TEXTUREGROUP_ColorLookupTable<DisplayName=ColorLookupTable>,
TEXTUREGROUP_Terrain_Heightmap<DisplayName=Terrain_Heightmap>,
TEXTUREGROUP_Terrain_Weightmap<DisplayName=Terrain_Weightmap>,
TEXTUREGROUP_ImageBasedReflection<DisplayName=ImageBasedReflection>,
TEXTUREGROUP_Bokeh<DisplayName=Bokeh>,
};
That's the original code, I was hoping to simply add to the end of it something such as
TEXTUREGROUP_EnemyCharacter<DisplayName=Enemy>,
TEXTUREGROUP_EnemyCharacterNormal<DisplayName=EnemyNormal>,
TEXTUREGROUP_EnemyCharacteSpecr<DisplayName=EnemySpecular>,
TEXTUREGROUP_Foliage<DisplayName=Foliage>,
TEXTUREGROUP_Water<DisplayName=Water>
Allowing me to control simlpy any water texture alone through LODGroups. The only problem I can see cropping up is that I wouldn't be able to update to any future versions of UDK without having to remodify Texture.UC everytime, but to be honest I'm pretty happy with the October build I'm at and unless something magical is added, I don't see myself upgrading from this point on.
So any thoughts? Primarily on problems you may see cropping up from doing this?