Page MenuHomeSchine - Phabricator

Starmade | Texture normal map is inverted on some faces in some orientations
Open, LowPublic

Description

Normal maps seem to be inverted (inside-out) on some block faces. The problem is not in the texture itself, as rotating the block during placement changes which face is affected.

Can be observed on a station or a ship. I tested in single-player mode with an existing build and world, and also with a fresh download and world. I used the latest "pre" build, 20170516_105555, but have no idea when the issue first appeared (not in this build I believe).

For my example screenshots I replaced t001.png in the Default texture pack with a solid gray image, to make the normal map more observable.

Details

Task Type
Bug
Testing Results
Affected Gamemode(s)
Single and Multi
Reproducible
Yes
Last tested (version)
0.199.535c
Category
Textures
First occurrence (version)
0.199.535
Hardware/Software/System
OS-Specific
No
Hardware-Specific
No
Video Card Vendor
NVIDIA
Video Card Model
GTX 670MX
User/Reporter/Contact
Username on Registry
0ldSkull
Steps to reproduce

On a station, place a weapon module (I used shield drain/supply beams as an example, but applies to other blocks too) in the default orientation.
Place another in the opposite orientation.
Use the astronaut flashlight to examine and compare lighting of the barrel-face of each block.
I found that the rear of the first block and the barrel-face of the second were affected.

Detected video (Graphicsinfo.txt)

Running on thread: main
Adapter: igdumdim64
Driver Version: 9.18.10.3071
Vendor: NVIDIA Corporation
OpenGL Version: 4.5.0 NVIDIA 361.75
Renderer: GeForce GTX 670MX/PCIe/SSE2
GLSL Ver: 4.50 NVIDIA

Serverconfig (server.cfg)
WORLD = testWorld //set world to use (set 'old' for using the old world). if no world exists a new one will be set automatically
PROTECT_STARTING_SECTOR = false //Protects the starting sector
ENABLE_SIMULATION = true //Universe AI simulation
CONCURRENT_SIMULATION = 256 //How many simulation groups may be in the universe simultaniously (performance)
ENEMY_SPAWNING = true //Enables enemy spawing
SECTOR_SIZE = 2000 //Sets the size of sectors in the universe **WARNING** scaling the size of an existing universe down may cause issues
BLUEPRINT_DEFAULT_PRIVATE = true //If true, set blueprints private as default (else they are public)
FLOATING_ITEM_LIFETIME_SECS = 240 //How much seconds items floating in space should be alive
SIMULATION_SPAWN_DELAY = 420 //How much seconds between simulation spawn ticks
SIMULATION_TRADING_FILLS_SHOPS = true //Trading guild will deliver stock to shops
SECTOR_INACTIVE_TIMEOUT = 20 //Time in secs after which sectors go inactive (-1 = off)
SECTOR_INACTIVE_CLEANUP_TIMEOUT = 10 //Time in secs after which inactive sectors are completely removed from memory (-1 = off)
USE_STARMADE_AUTHENTICATION = false //allow star-made.org authentication
REQUIRE_STARMADE_AUTHENTICATION = false //require star-made.org authentication (USE_STARMADE_AUTHENTICATION must be true)
PROTECTED_NAMES_BY_ACCOUNT = 10 //How many player names a player may protect with his account (if exceeded, the player name, that was logged in the longest time ago gets unprotected)
DEFAULT_BLUEPRINT_ENEMY_USE = false //Default option for blueprints not in catalog yet
DEFAULT_BLUEPRINT_FACTION_BUY = true //Default option for blueprints not in catalog yet
DEFAULT_BLUEPRINT_OTHERS_BUY = true //Default option for blueprints not in catalog yet
DEFAULT_BLUEPRINT_HOME_BASE_BUY = true //Default option for blueprints not in catalog yet
LOCK_FACTION_SHIPS = true //If true, ships of other factions cant be edited, activated, or entered
DEBUG_FSM_STATE = false //transfer debug FSM state. Turning this on may slow down network
PHYSICS_SHAPE_CASTING_TUNNELING_PREVENTION = false //Makes a convex cast for hight speed object to prevent clipping. High Cost. (Bugged right now, so dont turn it on)
CATALOG_SLOTS_PER_PLAYER = -1 //How many slots per player for saved ships (-1 for unlimited)
UNIVERSE_DAY_IN_MS = 1200000 //how long is a 'day' (stellar system rotation) in milliseconds (-1 to switch off system rotation)
FORCE_DISK_WRITE_COMPLETION = false //forces writing operations of raw data to disk directly after operation. For some OS this prevents raw data corruption
ASTEROIDS_ENABLE_DYNAMIC_PHYSICS = true //enables asteroids to be able to move in space
ENABLE_BREAK_OFF = false //debug (don't activate unless you know what you're doing)
COLLISION_DAMAGE = false //colliding into another object does damage
COLLISION_DAMAGE_THRESHOLD = 2.0 //Threshold of Impulse that does damage (the lower, the less force is needed for damage)
SKIN_ALLOW_UPLOAD = true //if off, skin uploading to server is deactivated
CATALOG_NAME_COLLISION_HANDLING = false //if off, saving with an existing entry is denied, if on the name is automatically changed by adding numbers on the end
SECTOR_AUTOSAVE_SEC = 300 //Time interval in secs the server will autosave (-1 for never)
PHYSICS_SLOWDOWN_THRESHOLD = 40 //Milliseconds a collision test may take before anti-slowdown mode is activated
THRUST_SPEED_LIMIT = 100 //How fast ships, etc. may go in m/s . Too high values may induce physics tunneling effects
MAX_CLIENTS = 32 //Max number of clients allowed on this server
SUPER_ADMIN_PASSWORD_USE = false //Enable super admin for this server
SUPER_ADMIN_PASSWORD = mypassword //Super admin password for this server
SERVER_LISTEN_IP = all //Enter specific ip for the server to listen to. use "all" to listen on every ip
SOCKET_BUFFER_SIZE = 12288 //buffer size of incoming and outgoing data per socket
PHYSICS_LINEAR_DAMPING = 0.05 //how much object slow down naturally (must be between 0 and 1): 0 is no slowdown
PHYSICS_ROTATIONAL_DAMPING = 0.05 //how much object slow down naturally (must be between 0 and 1): 0 is no slowdown
AI_DESTRUCTION_LOOT_COUNT_MULTIPLIER = 0.9 //multiply amount of items in a loot stack. use values smaller 1 for less and 0 for none
AI_DESTRUCTION_LOOT_STACK_MULTIPLIER = 0.9 //multiply amount of items spawned after AI destruction. use values smaller 1 for less and 0 for none
CHEST_LOOT_COUNT_MULTIPLIER = 0.9 //multiply amount of items in a loot stack. use values smaller 1 for less and 0 for none
CHEST_LOOT_STACK_MULTIPLIER = 0.9 //multiply amount of items spawned in chests of generated chests. use values smaller 1 for less and 0 for none
USE_WHITELIST = false //only names/ips from whitelist.txt are allowed
FILTER_CONNECTION_MESSAGES = false //don't display join/disconnect messages
USE_UDP = false //Use 'User Datagram Protocol' (UDP) instead of 'Transmission Control Protocol' (TCP) for connections
AUTO_KICK_MODIFIED_BLUEPRINT_USE = false //Kick players that spawn modified blueprints
AUTO_BAN_ID_MODIFIED_BLUEPRINT_USE = false //Ban player by name that spawn modified blueprints
AUTO_BAN_IP_MODIFIED_BLUEPRINT_USE = false //Ban player by IP that spawn modified blueprints
AUTO_BAN_TIME_IN_MINUTES = 60 //Time to ban in minutes (-1 for permanently)
REMOVE_MODIFIED_BLUEPRINTS = false //Auto-removes a modified blueprint
DEBUG_SEGMENT_WRITING = false //Debugs correctness of writing of segments (costs server performance)
TCP_NODELAY = true //Naggles algorithm (WARNING: only change when you know what you're doing)
PING_FLUSH = false //flushes ping/pong immediately (WARNING: only change when you know what you're doing)
RECIPE_BLOCK_COST = 5000 //How much blocks have to be invested to create a recipe (min 0)
SHOP_SPAWNING_PROBABILITY = 0.01 //(must be between 0 and 1): 0 is no shops spawned in asteroid sectors, 1 is shop spawned in everyone (default: 8% -> 0.08)
RECIPE_REFUND_MULT = 0.5 //how much blocks are refunded from selling a recipe (must be between 0 and 1): 0 no refund, 1 full refund
RECIPE_LEVEL_AMOUNT = 4000 //On how much created blocks will a recipe level up (base value) (min 0)
DEFAULT_SPAWN_SECTOR_X = 2 //DEFAULT Spawn Sector X Coordinate
DEFAULT_SPAWN_SECTOR_Y = 2 //DEFAULT Spawn Sector Y Coordinate
DEFAULT_SPAWN_SECTOR_Z = 2 //DEFAULT Spawn Sector Z Coordinate
MODIFIED_BLUEPRINT_TOLERANCE = 0.1 //Tolerance of modified blueprint trigger (default = 10%)
TURNING_DIMENSION_SCALE = 1.1 //Scaling of tuning speed VS ship dimension (default = 1.1)
DEFAULT_SPAWN_POINT_X_1 = 8.0 //First Rotating Spawn: Local Pos X Coordinate
DEFAULT_SPAWN_POINT_Y_1 = -6.5 //First Rotating Spawn: Local Pos Y Coordinate
DEFAULT_SPAWN_POINT_Z_1 = 0.0 //First Rotating Spawn: Local Pos Z Coordinate
DEFAULT_SPAWN_POINT_X_2 = 15.0 //Second Rotating Spawn: Local Pos X Coordinate
DEFAULT_SPAWN_POINT_Y_2 = -6.5 //Second Rotating Spawn: Local Pos Y Coordinate
DEFAULT_SPAWN_POINT_Z_2 = 8.0 //Second Rotating Spawn: Local Pos Z Coordinate
DEFAULT_SPAWN_POINT_X_3 = 8.0 //Third Rotating Spawn: Local Pos X Coordinate
DEFAULT_SPAWN_POINT_Y_3 = -6.5 //Third Rotating Spawn: Local Pos Y Coordinate
DEFAULT_SPAWN_POINT_Z_3 = 15.0 //Third Rotating Spawn: Local Pos Z Coordinate
DEFAULT_SPAWN_POINT_X_4 = 0.0 //Forth Rotating Spawn: Local Pos X Coordinate
DEFAULT_SPAWN_POINT_Y_4 = -6.5 //Forth Rotating Spawn: Local Pos Y Coordinate
DEFAULT_SPAWN_POINT_Z_4 = 8.0 //Forth Rotating Spawn: Local Pos Z Coordinate
PLAYER_DEATH_CREDIT_PUNISHMENT = 0.1 //players credits lost of total on death (must be between 0 and 1): 1 = lose all, 0 = keep all
PLAYER_DEATH_CREDIT_DROP = false //drop credits lost on death into space instead
PLAYER_DEATH_BLOCK_PUNISHMENT = false //player will drop all his blocks into space on death
PLAYER_DEATH_PUNISHMENT_TIME = 300 //Time interval in seconds after death of a player in which the player is not punished
PLAYER_DEATH_INVULNERABILITY_TIME = 5 //Time the player is invulnerable after death in sec
PLAYER_HISTORY_BACKLOG = 30 //How many login history objects (with name, IP, account-name, and time) should be saved by player state
PROJECTILES_ADDITIVE_VELOCITY = false //initial projectile speed depend on relative linear velocity of object fired from
PROJECTILES_VELOCITY_MULTIPLIER = 1.0 //multiplicator for projectile velocity
IGNORE_DOCKING_AREA = false //ignores docking area size
ALLOW_UPLOAD_FROM_LOCAL_BLUEPRINTS = true //enables clients being able to upload their pre-build-blueprints to the server
SHOP_NPC_STARTING_CREDITS = 10000000 //how much credits do shops start with
SHOP_NPC_RECHARGE_CREDITS = 100000 //how much credits do shops gain about every 10 min
AI_WEAPON_AIMING_ACCURACY = 200 //how accurate the AI aims (the higher the value the more accurate vs distance. 10 = about 99% accuracy at 10m)
BROADCAST_SHIELD_PERCENTAGE = 5 //percent of shields changed for the server to broadcast a shield synch
BROADCAST_POWER_PERCENTAGE = 20 //percent of power changed for the server to broadcast a power synch (not that critical)
ADMINS_CIRCUMVENT_STRUCTURE_CONTROL = true //admins can enter ships of any faction
STAR_DAMAGE = true //suns dealing damage to entities
SQL_NIO_FILE_SIZE = 512 //megabyte limit of .data file when to use NIO (faster) (must be power of 2)
PLANET_SIZE_MEAN = 225.0 //Planet size mean (normal gaussian distribution) (min 50)
PLANET_SIZE_DEVIATION = 85.0 //Planet size standard deviation. Note: normal gaussian distribution graph scaled horizontally by 1/3 (min 0)
ASTEROID_RADIUS_MAX = 64 //Asteroid max radius in blocks (from -x to +x)
ASTEROID_RESOURCE_SIZE = 2.5 //Average diameter of resource veins in asteroids
ASTEROID_RESOURCE_CHANCE = 0.003 //Chance per block to place a new resource vein (1.0 = 100%)
PLAYER_MAX_BUILD_AREA = 100 //max area a player may add/remove in adv. build mode
NT_SPAM_PROTECT_TIME_MS = 30000 //period of spam protection
ASTEROID_SECTOR_REPLENISH_TIME_SEC = -1 //seconds until a sector that is mined down to 0 asteroids is replenished (-1 = never)
NT_SPAM_PROTECT_MAX_ATTEMPTS = 30 //max attempts before refusing connections in spam protect period (default is 1/sec for 30 sec)
NT_SPAM_PROTECT_EXCEPTIONS = 127.0.0.1 //ips excepted from spam control (separate multiple with comma) (default is localhost)
NT_SPAM_PROTECT_ACTIVE = true //enables connection spawn protection (flooding servers with login attempts)
USE_PERSONAL_SECTORS = false //will spawn a player in a locked sector sandbox (warning, don't use unless you know what you do)
BATTLE_MODE = false //turn on battlemode (warning, don't use unless you know what you're doing)
BATTLE_MODE_CONFIG = battleSector=0,0,0,Physics.smsec;battleSector=15,15,15,Physics.smsec;countdownRound=300;countdownStart=30;maxMass=-1;maxDim=300;maxMassPerFaction=-1; //General config for battlemode
BATTLE_MODE_FACTIONS = [TeamA, fighters, 500,500,500, 0.5,0.1,0.9];[TeamB, fighters, -500,-500,-500, 0.5,0.9,0.2];[TeamFFA,ffa, 0,0,-500, 0.2,0.9,0.9];[Spectators,spectators, 0,500,0,0.8,0.4,0.8] //Faction config for battlemode
LEADERBOARD_BACKLOG = 24 //time in hours to keep leaderboard backlog (the more time, the more data has to be sent to client)
ANNOUNCE_SERVER_TO_SERVERLIST = false //announces the server to the starmade server list so clients can find it. Hostname must be provided for HOST_NAME_TO_ANNOUNCE_TO_SERVER_LIST!
HOST_NAME_TO_ANNOUNCE_TO_SERVER_LIST =  //this must be a valid hostname (either ip or host, e.g. play.star-made.org)
SERVER_LIST_NAME =  //max length 64 characters
SERVER_LIST_DESCRIPTION =  //max length 128 characters
MISSILE_DEFENSE_FRIENDLY_FIRE = true //can shoot down own or missiles from own faction
USE_DYNAMIC_RECIPE_PRICES = true //use recipe based prices (the price is the price of the parts it is made out of in crafting)
DYNAMIC_RECIPE_PRICE_MODIFIER = 1.05 //modifier to adjust dynamic price
MAKE_HOMBASE_ATTACKABLE_ON_FP_DEFICIT = true //Home bases become attackable if a faction's Faction Points are in the minus and the faction doesn't own any territory
PLANET_SPECIAL_REGION_PROBABILITY = 240 //one out of thisValue chance of a special region spawning per planet plate (cities, pyramids, etc) (changing this value migth change some plates, but won't change any plates that are already modified by a player)
NT_BLOCK_QUEUE_SIZE = 1024 //How many blocks are sent per update. Huge placements will shot faster, but it will consume more bandwidth and is subject to spamming players
CHUNK_REQUEST_THREAD_POOL_SIZE_TOTAL = 10 //Thead pool size for chunk requests (from disk and generated)
CHUNK_REQUEST_THREAD_POOL_SIZE_CPU = 2 //Available threads of total for CPU generation. WARNING: too high can cause cpu spikes. About the amount of available cores minus one is best
BUY_BLUEPRINTS_WITH_CREDITS = false //buy blueprints directly with credits
SHOP_USE_STATIC_SELL_BUY_PRICES = false //shop buy and sell price change depending on stock (shop prices will always stay the same if true)
SHOP_SELL_BUY_PRICES_UPPER_LIMIT = 1.2 //maximum of base price a shop will want depending on its stock (e.g. max 120 credits if the normal cost is 100)
SHOP_SELL_BUY_PRICES_LOWER_LIMIT = 1.2 //minimum of base price a shop will want depending on its stock (e.g. max 80 credits if the normal cost is 100)
MINING_BONUS = 1 //general multiplier on all mining
MAX_LOGIC_SIGNAL_QUEUE_PER_OBJECT = 250000 //max logic trace queue allowed
MAX_LOGIC_ACTIVATIONS_AT_ONCE_PER_OBJECT_WARN = 10000 //warn about objects that activate more than x blocks at once
MAX_LOGIC_ACTIVATIONS_AT_ONCE_PER_OBJECT_STOP = 50000 //stop logic of objects that activate more than x blocks at once. They will enter a logic cooldown of 10 seconds to prevent servers from overloading
MAX_COORDINATE_BOOKMARKS = 20 //coordinate bookmarks per player allowed
ALLOWED_STATIONS_PER_SECTOR = 1 //How many stations are allowed per sector
STATION_CREDIT_COST = 1000000 //how much does a station or station blueprint cost
SKIN_SERVER_UPLOAD_BLOCK_SIZE = 256 //how fast should skins be transferred from server to clients (too high might cause lag) [default 256 ~ 16kb/s]
ALLOW_OLD_DOCKING_BEAM = false //enables old docking beam
WEIGHTED_CENTER_OF_MASS = true //if on, the center of mass for each structured will be calculated based on block mass. On 'false', the center of mass is always the core position
SECURE_UPLINK_ENABLED = false //dedicated servers can be registered on the StarMade registry
SECURE_UPLINK_TOKEN =  //uplink token, provided when registering a dedicated server
USE_STRUCTURE_HP = true //ships and other structures use the hitpoint system. if off, a ship will overheat when the core gets taken out (old)
SHOP_REBOOT_COST_PER_SECOND = 1000.0 //Cost to reboot a ship at a shop (per second it would take to reboot in space)
SHOP_ARMOR_REPAIR_COST_PER_HITPOINT = 1.0 //Cost to repair a ship's armor at a shop
MAX_SIMULTANEOUS_EXPLOSIONS = 10 //the more the faster explosions at the same time are executed (costs in total about 20MB RAM each and of course CPU because it's all threaded) (10 is default for a medium powered singleplayer)
REMOVE_ENTITIES_WITH_INCONSISTENT_BLOCKS = false //This will remove ships that have blocks that are normally disallowed (e.g. space station blocks on ships)
OVERRIDE_INVALID_BLUEPRINT_TYPE = true //If a loaded blueprint is invalid, it's type will be overridden
FACTION_FOUNDER_KICKABLE_AFTER_DAYS_INACTIVITY = 30 //Days of inactivity after which a founder may kick another founder
DEBUG_BEAM_POWER_CONSUMPTION = false //server will send notifications on power consumed (not counting power given from supply) on server (costs performance, so only use for debugging)
DEBUG_BEAM_TICKS_DONE = false //server will send notifications on ticks done on server (costs performance, so only use for debugging)
DEBUG_BEAM_POWER_PER_TICK = false //server will send notifications on beam power per tick on server (costs performance, so only use for debugging)
DEBUG_MISSILE_POWER_CONSUMPTION = false //server will send notifications on missiles on server (costs performance, so only use for debugging)
BLUEPRINT_SPAWNABLE_SHIPS = true //enables or disables blueprint spawning from item
BLUEPRINT_SPAWNABLE_STATIONS = true //enables or disables blueprint spawning from item
USE_OLD_GENERATED_PIRATE_STATIONS = false //enables spawning of old style pirate stations
CARGO_BLEED_AT_OVER_CAPACITY = false //cargo is ejected every minute if storage is at over capacity
ALLOW_PERSONAL_INVENTORY_OVER_CAPACITY = false //Personal Inventory can go over capacity
ONLY_ALLOW_FACTION_SHIPS_ADDED_TO_FLEET = false //only allows faction ships to be added to fleet
MAX_CHAIN_DOCKING = 25 //maximal deepness of docking chains (may cause glitches depending on OS (path and filename length) at high numbers)
SHOP_RAILS_ON_ADV = true //Advanced shops will have 4 rails dockers that can be used like a neutral homebase (anything docked is safe)
SHOP_RAILS_ON_NORMAL = false //Normal shops will have 4 rails dockers that can be used like a neutral homebase (anything docked is safe)
ALLOW_FLEET_FORMATION = true //Allows fleet formation
BACKUP_WORLD_ON_MIGRATION = true //Back up world when migrating to a new file format
BACKUP_BLUEPRINTS_ON_MIGRATION = true //Back up blueprints when migrating to a new file format
DISPLAY_GROUPING_DEBUG_INFORMATION = false //Displays grouping calculation information
SECTORS_TO_EXPLORE_FOR_SYS = 15 //How many sectors of a system have to be explored
NPC_FACTION_SPAWN_LIMIT = -1 //Maximum npc factions per galaxy (-1 for unlimited (will still be around 2-10))
NPC_DEBUG_MODE = false //Sends complete NPC faction package to clients (very bandwith intensive)
FLEET_OUT_OF_SECTOR_MOVEMENT = 6000 //How long for an unloaded fleet to cross a sector in ms
NPC_LOADED_SHIP_MAX_SPEED_MULT = 0.7 //How fast NPC fleet ships are compared to their max speed when loaded
USE_FOW = true //Use 'fog of war'. Turning this off will make everything visible to everyone
NPC_LOG_MODE = 0 //use 0 for npc file logs [/logs/npc/] and 1 for normal log output
NPC_DEBUG_SHOP_OWNERS =  //Additional shop owners for npc faction shops (case insensitive, seperate with comma)
SQL_PERMISSION =  //user name allowed to sql query remotely (direct console always allowed /sql_query, /sql_update, /sql_insert_return_generated_keys) (case insensitive, seperate with comma)
DEBUG_EMPTY_CHUNK_WRITES = false //Logs empty chunks (debug only)
ALLOWED_UNPACKED_FILE_UPLOAD_IN_MB = 1024 //how much mb is an uploaded blueprint/skin allowed to have (unzipped)
RESTRICT_BUILDING_SIZE = 2.0 //Restricts Building Size to X times Sector Size (-1 for off) Warning: values set in GameConfig.xml overwrite this
Clientconfig (settings.cfg)
C_USE_NEW_PLAYER_MODEL_ = true
CONTROL_HELP = false //Display help for controls
C_MOUSE_BUTTON_SWITCH = false //Switch build/remove mouse buttons
G_RESOLUTION = 1920 x 1080 //Resolution
G_FULLSCREEN = true //Fullscreen
G_WINDOWED_BORDERLESS = false //Borderless windowed mode
G_TEXTURE_PACK = Better Times //Texture Pack
G_TEXTURE_PACK_RESOLUTION = 256 //Texture Quality (Resolution)
G_VSYNCH = false //Vert-Synch
G_MULTI_SAMPLE_TARGET = 0 //Antialiasing (Samples)
G_MULTI_SAMPLE = 0
G_GAMMA = 1.0 //Gamma (Needs Frambuffer)
G_FOV = 85.0 //Field of View
G_MAX_SEGMENTSDRAWN = 5000 //Amount of Chunks possibly drawn (view distance)
G_NORMAL_MAPPING = true //Enable Normal mapping
G_SHADOWS = false
G_SHADOW_QUALITY = BEST
G_SHADOWS_TARGET = false //Enable Shadows
G_SHADOW_QUALITY_TARGET = BEST //Set Shadow Quality
G_PROD_BG = true //Procedural Background (fbo req)
G_PROD_BG_QUALITY = 2048 //Procedural BG quality
G_DRAW_SURROUNDING_GALAXIES_IN_MAP = false //Draw other galaxies in map (slow)
HIT_INDICATION_NUMBERS_LIFETIME = 0.4 //Time, hit numbers remain (sec)
PLAYER_SKIN_CREATE =  //Create Player Skin
PLAYER_SKIN = C:\dnh\StarMade Game\skull.smskin //Path to player skin. Remove to Use default
D_LIFETIME_NORM = 30 //Lifetime (secs) of debris (0 to turn off)
S_SOUND_SYS_ENABLED = true
S_SOUND_ENABLED = true //Sound
S_SOUND_VOLUME_GLOBAL = 8 //Sound Volume
USE_OPEN_AL_SOUND = true //OpenAL (Off fixes stutter, but silent videos. restart needed. working on fix)
N_TRANSMIT_RAW_DEBUG_POSITIONS = false
C_SELECTED_JOYSTICK = 0
ICON_BAKERY_BLOCKSTYLE_ROTATE_DEG = -90.0
MOUSE_WHEEL_SENSIBILITY = 7.0E-4
BUILD_MODE_SHIFT_SPEED = 50.0
ORBITAL_CAM_SPEED = 0.5
G_DAMAGE_DISPLAY = 1000 //Damage display distance
G_STAR_COUNT = 4096 //Star Count
G_VBO_BULKMODE_SIZE = 256
G_DRAW_FOG = false
G_DRAW_BEAMS = true //Draw beams
G_DRAW_EXHAUST_PLUMES = true //Draw thruster plums
D_INFO_CONTROLMANAGER = false
D_INFO_SHADER = true
T_ENABLE_TEXTURE_BAKER = false
D_INFO_DRAW_TIMES = false
D_INFO_DRAW_SPACE_PARTICLE = false
G_SPACE_PARTICLE = true //Draw space dust particles
G_DRAW_MOUSE_COLLISION = false
G_ATMOSPHERE_SHADER = normal
F_FRAME_BUFFER = true //Use Framebuffer
G_SHADOW_NEAR_DIST = 1.0
G_SHADOW_FAR_DIST = 75.0
G_SHADOW_DEPTH_RANGE_NEAR = 0.0
G_SHADOW_DEPTH_RANGE_FAR = 1.0
G_SHADOW_SPLIT_FAR_0 = 0.325
G_SHADOW_SPLIT_NEAR_1 = 0.325
G_SHADOW_SPLIT_FAR_1 = 0.325
G_SHADOW_SPLIT_NEAR_2 = 0.325
G_SHADOW_SPLIT_MULT = 1.005
G_SHADOW_CROP_MATRIX_MAX = -1000.0
G_SHADOW_CROP_MATRIX_MIN = 1000.0
G_SHADOW_EXTRA_BACKUP = 20.0
G_SHADOW_NEAR_CLIP = 0.05
G_SHADOW_SPLIT_MAT_RADIUS_ADD_0 = 0.0
G_SHADOW_SPLIT_MAT_RADIUS_ADD_1 = 10.0
G_SHADOW_SPLIT_MAT_RADIUS_ADD_2 = 10.0
G_SHADOW_SPLIT_MAT_RADIUS_ADD_3 = 3.0
G_SHADOW_SPLIT_ORTHO_MAT_FAR_ADDED_0 = 0.0
G_SHADOW_SPLIT_ORTHO_MAT_FAR_ADDED_1 = 100.0
G_SHADOW_SPLIT_ORTHO_MAT_FAR_ADDED_2 = 50.0
G_SHADOW_SPLIT_ORTHO_MAT_FAR_ADDED_3 = 150.0
G_SHADOW_SPLIT_ORTHO_NEAR_ADDED = -100.0
G_SHADOW_ULTRA_FAR_BOUNDS_ADDED_0 = -0.013
G_SHADOW_ULTRA_FAR_BOUNDS_ADDED_1 = -0.002
G_SHADOW_ULTRA_FAR_BOUNDS_ADDED_2 = -0.002
G_SHADOW_OTHER_QUALITY_FAR_BOUND_ADDED_0 = -0.023
G_SHADOW_OTHER_QUALITY_FAR_BOUND_ADDED_1 = -0.002
G_SHADOW_OTHER_QUALITY_FAR_BOUND_ADDED_2 = -0.0
G_SHADOW_FOV_ADDED_RAD = 0.2
G_SHADOW_DISPLAY_SHADOW_MAP = false
G_DRAW_SHIELDS = true //Shield Effect
G_DRAW_WATER = true
G_DRAW_BACKGROUND = true //Background Image
G_WATER_USE_MIPMAPS = false
E_NAVIGATION_FILTER = 869
G_DRAW_ENTITIES = true
G_FRUSTUM_CULLING = true
G_DRAW_EFFECTS = true
G_SHADER_RELOAD = false
G_FRAMERATE_FIXED = 120 //Limit Framerate (30, 60, 120, 240, or -1 for unlimited),
G_SHADERS_ACTIVE = true
G_DEBUG_DRAW_GRID = false
G_DEBUG_DRAW_LINES = true
T_TERRAIN_DRAW = true
T_TERRAIN_WIREFRAME_DRAW = false
G_CULLING_ACTIVE = true
G_TEXTURE_ARRAYS = true
G_AUTO_NORMALIZATION = true
G_DRAW_BY_SIDES = true
G_WIREFRAMED = false
G_TEXTURE_COMPRESSION_BLOCKS = false
G_TEXTURE_ARRAY_COMPRESSION = false
G_TEXTURE_ARRAY_MIPMAP = true
G_TEXTURE_MIPMAP = true
G_SHADOWS_VSM = false
S_PAUSED = false
S_SETTINGS_SHOW = false
MINIMAP_MODE = LARGE //Radar (minimap) size
SECTOR_INDICATION_MODE = INDICATION_ONLY //Indicators for other sectors
S_KEY_ALLOW_DUPLICATES = true //Allow key assign duplicates
GIF_WIDTH = 640
GIF_HEIGHT = 640
GIF_FPS = 15
GIF_GUI = false
G_DEBRIS_THRESHOLD_MS = 4
S_INITIAL_SETTING = Single Player
S_GAME_MODE = Sandbox
G_BONE_ANIMATION = true
P_NT_DEBUG_ACTIVE = false
P_PHYSICS_DEBUG_ACTIVE_OCCLUSION = false
P_PHYSICS_DEBUG_ACTIVE = false
P_PHYSICS_DEBUG_MODE = 0
G_DEBUG_LINE_DRAWING_ACTIVATED = false
G_WINDOW_START_POSITION = center
G_DRAW_GUI_ACTIVE = true
G_DRAW_NO_OVERLAYS = false
G_PARTICLE_SORTING = true
P_PHYSICS_ACTIVATED = true
G_SMOKE_QUALITY = false
G_DRAW_STARS = false //Draw additional stars
G_DRAW_PASTE_PREVIEW = true //Draw preview for paste
G_USE_SPRITE_VBO = true
TUTORIAL_NEW = false //Tutorial enabled
G_AUTOSELECT_CONTROLLERS = true //AutoSelect Controllers
S_INFO_DRAW = SOME_INFO //Tech Info
G_VBO_FLAG = STATIC
N_LAG_COMPENSATION = true
N_IGNORE_SAVED_UPLINK_CREDENTIALS_IN_SINGLEPLAYER = true
N_SERVERTIME_UPDATE_FREQUENCY = 10000
M_TEXTURE_PACK_CONFIG_TOOL = ./data/textures/block/Default/64/
G_MIPMAP_LEVEL_MAX = 3
M_MOUSE_SENSITIVITY = 0.5 //MoUse Sensitivity
G_HIT_INDICATION_SIZE = 1.0 //Size of hit indications
F_BLOOM = true //Bloom Effect
F_BLOOM_INTENSITY = 0.2 //Bloom Intensity
S_MOUSE_LOCK = true
G_DRAW_ADV_BUILDMODE_BLOCK_PREVIEW = true
G_SHOW_PURE_NUMBERS_FOR_SHIELD_AND_POWER = false
S_FLIP_HOTBAR_MOUSEWHEEL = false //Use keybind to scroll through other hotbars
S_INVERT_MOUSEWHEEL_HOTBAR = false //invert mouse wheel for hotbars
S_ZOOM_MOUSEWHEEL = SLOTS //primary mouse wheel function
S_MOUSE_SHIP_INVERT = false //Invert MoUse-Y (Ship)
S_MOUSE_ALL_INVERT = false //Invert MoUse-Y (All)
S_USE_REGION_SIGNATURE_TEST = false
G_PREVIEW_TO_BUILD_BLOCK = true //Preview Block to build
S_EXIT_ON_ESC = false
G_USE_HIGH_QUALITY_BACKGROUND = false
G_DRAW_POPUPS = true
G_USE_VBO_MAP = false
G_DRAW_JUMP_OVERLAY = true
G_MAG_FILTER_LINEAR_BLOCKS = true //Use linear mag filter on Blocks (restart required)
BLOCK_TEXTURE_ANISOTROPY = true //Anisotropic block textures (restart required)
G_MAG_FILTER_LINEAR_GUI = true //Use linear mag filter on GUI (restart required)
G_MAX_BEAMS = 1024 //MaxBeamsDrawn (restart required)
SEGMENT_REQUEST_BATCH = 32 //Size of Chunk request-queue
CLIENT_BUFFER_SIZE = 65536
ICON_BAKERY_SINGLE_RESOLUTION = 150
LIGHT_RAY_COUNT = 48 //Block light quality (impacts chunk refresh time, but not fps)
ICON_BAKERY_SINGLE_ICONS = false
G_MUST_CONFIRM_DETACHEMENT_AT_SPEED = 10.0 //Popup Detach Warning (% server speed, -1 off)
G_USE_SHADER4 = true
O_OCULUS_RENDERING = false
G_USE_VERTEX_LIGHTING_ONLY = false //Simple Lighting Quality (faster)
CLIENT_TRAFFIC_CLASS = true
G_DRAW_SELECTED_BLOCK_WOBBLE = true
G_USE_TWO_COMPONENT_SHADER = false
A_FORCE_AUTHENTICATION_METHOD = -1
MIN_FFA = 2
B_UNDO_REDO_MAX = 30
G_DRAW_ANY_CONNECTIONS = true //Draw connections between logic blocks
G_DRAW_ALL_CONNECTIONS = false //Draw all connections (not only logic)
N_ARTIFICIAL_DELAY = 0
SEGMENT_PIECE_QUEUE_SINGLEPLAYER = 32767
G_MAX_MISSILE_TRAILS = 128 //Max Missile Trails (restart required)
G_USE_OCCLUSION_CULLING = true
C_AUTOASSIGN_WEAPON_SLOTS = true //Autoassign weapons on fire if bar empty
G_DRAW_NT_STATS_OVERLAY = false //Draw network statistics in hud
CLIENT_CUSTOM_TEXTURE_PATH = ./customBlockTextures
SECRET = newgui
LIMIT_FPS_UNFOCUS = true
GUI_USE_DISPLAY_LISTS = false
USE_GL_MULTI_DRAWARRAYS = true //MultiDraw Optimization (turn off on chunk Draw problems)
USE_GL_MULTI_DRAWARRAYS_INITIAL_SET = true
CHAT_CLOSE_ON_ENTER = true //Close chat on enter
A_FORCE_LOCAL_SAVE_ENABLED_IN_SINGLE_PLAYER = false
G_SHIP_INFO_ZOOM = 2
G_SINGLEPLAYER_CREATIVE_MODE = true //creative mode
G_DRAW_LAG_OBJECTS_IN_HUD = false //Draw lag statistics in hud
G_SHOW_SYMMETRY_PLANES = true //Show symmetry planes
LANGUAGE_PACK = english
LANGUAGE_PACK_ASSIGNED = true
DELETE_SEVER_DATABASE_ON_STARTUP = false
G_BASIC_SELECTION_BOX = false //Draw basic selection boxes
OFFLINE_PLAYER_NAME = 0ldSkull
ONLINE_PLAYER_NAME = 0ldSkull
SERVERLIST_COMPATIBLE = false
SERVERLIST_RESPONSIVE = false
SERVERLIST_FAVORITES = true
SERVERLIST_CUSTOMS = false
CUBE_LIGHT_NORMALIZER_NEW_M = true
SERVERLIST_LAST_SERVER_USED = 
LAST_GAME = SP;testWorld;4242;0ldSkull
PLAY_INTRO = true //Play Intro
SUBTITLES = true //Subtitles
TUTORIAL_BUTTON_BLINKING = false
TUTORIAL_PLAY_INTRO = false
TUTORIAL_WATCHED = fundamentals;
SHOW_32BIT_WARNING = true
USE_INTEGER_VERTICES = true
LOD_DISTANCE_IN_THRESHOLD = 80.0 //Non Block Render Distance (LoD)
AUTOSET_RESOLUTION = false
FIRST_START = false
USE_TGA_NORMAL_MAPS = true
PLUME_BLOOM = true
BLUEPRINT_STRUCTURE_BUILD_OPTIONS = false
BLOCK_STYLE_PRESET = 70001, false, 53; 140002, false, 103; 90003, false, 69; 170004, false, 126; 150000, false, 108; 60000, false, 45; 130000, false, 94; 140004, false, 105; 110002, false, 82; 30004, false, 28; 50003, false, 41; 90002, false, 68; 60005, false, 50; 80001, false, 60; 50000, false, 38; 100, true, 7; 150006, false, 114; 190004, false, 140; 50001, false, 39; 30003, false, 27; 190005, false, 141; 50004, false, 42; 180004, false, 133; 100000, false, 73; 90000, false, 66; 70004, false, 56; 120003, false, 90; 40003, false, 34; 190006, false, 142; 180000, false, 129; 70002, false, 54; 100001, false, 74; 80005, false, 64; 190003, false, 139; 160004, false, 119; 300, true, 9; 120002, false, 89; 30001, false, 25; 5, true, 5; 100006, false, 79; 60006, false, 51; 10003, true, 13; 30000, false, 24; 10000, false, 10; 110003, false, 83; 150005, false, 113; 170002, false, 124; 1, true, 1; 160002, false, 117; 110005, false, 85; 140001, false, 102; 50005, false, 43; 70006, false, 58; 130002, false, 96; 70003, false, 55; 20001, false, 18; 10006, true, 16; 40006, false, 37; 180002, false, 131; 90001, false, 67; 30002, false, 26; 120005, false, 92; 60002, false, 47; 60004, false, 49; 130004, false, 98; 130003, false, 97; 30005, false, 29; 110001, false, 81; 80004, false, 63; 130005, false, 99; 180001, false, 130; 20002, false, 19; 120001, false, 88; 100004, false, 77; 90004, false, 70; 4, true, 4; 170006, false, 128; 140000, false, 101; 150004, false, 112; 140006, false, 107; 100005, false, 78; 20006, true, 23; 40000, false, 31; 130001, false, 95; 20004, false, 21; 70000, false, 52; 130006, false, 100; 50002, false, 40; 160003, false, 118; 160000, false, 115; 60001, false, 46; 80000, false, 59; 40002, false, 33; 50006, false, 44; 170005, false, 127; 110000, false, 80; 100003, false, 76; 70005, false, 57; 180005, false, 134; 140005, false, 106; 80006, false, 65; 140003, false, 104; 20005, false, 22; 170003, false, 125; 90006, false, 72; 20000, false, 17; 190000, false, 136; 20003, false, 20; 180006, false, 135; 190001, false, 137; 40001, false, 32; 60003, false, 48; 160005, false, 120; 170001, false, 123; 160001, false, 116; 150001, false, 109; 120004, false, 91; 40004, false, 35; 80002, false, 61; 190002, false, 138; 120006, false, 93; 110004, false, 84; 170000, false, 122; 10001, false, 11; 10002, false, 12; 80003, false, 62; 180003, false, 132; 200, true, 8; 150003, false, 111; 120000, false, 87; 30006, false, 30; 3, false, 3; 10005, false, 15; 100002, false, 75; 160006, false, 121; 150002, false, 110; 90005, false, 71; 10004, false, 14; 6, true, 6; 2, true, 2; 110006, false, 86; 40005, false, 36; 0, true, 0
DEBUG_SHIP_CAM_ON_RCONTROL = false
Java Version (32bit)

Error: This Java instance does not support a 32-bit JVM.
Please install the desired version.

Java Version (64bit)

java version "1.7.0_75"
Java(TM) SE Runtime Environment (build 1.7.0_75-b13)
Java HotSpot(TM) 64-Bit Server VM (build 24.75-b04, mixed mode)

Event Timeline

0ldSkull created this task.May 23 2017, 7:14 AM
lancake added a subscriber: lancake.
lancake claimed this task.
lancake lowered the priority of this task from Normal to Trivial.

-Validated-

I'm not entirely sure if it is the normal maps themselves. In your example you have 2 light sources, the one from the star/middle of a system, and your flash light. I did see some weird things when doing your example but it all seemed consistent if I placed my structure at the top of a system, right above a system.
The sides of each of these were very consistent with my flashlight as the star light did not affect it then.

lancake shifted this object from the S1 Public space to the S3 Starmade space.May 23 2017, 12:00 PM
lancake changed the visibility from "Custom Policy" to "Public (No Login Required)".
lancake changed the edit policy from "Task Author" to "Starmade (Project)".
lancake changed the task status from Open to In Queue.

-Confirmed-

Confirmed by Kupu, putting in queue.

Restricted Application edited projects, added Game Development; removed Issue Navigation. · View Herald TranscriptMay 23 2017, 1:49 PM
lancake changed Affected Gamemode(s) from none/unspecified to Single and Multi.May 23 2017, 1:49 PM
lancake set Last tested (version) to 0.199.535c.
lancake changed Category from none/unspecified to Textures.
lancake changed First occurrence (version) from 0.199.535 build 20170516_105555 to 0.199.535.
lancake raised the priority of this task from Trivial to Low.
Restricted Application added a project: Textures. · View Herald TranscriptMay 23 2017, 1:49 PM
kupu added a subscriber: kupu.May 23 2017, 3:30 PM
kupu claimed this task.

After applying numbers to check for rotational / inversion issues, i am unable to spot errors.

This was perhaps an optical illusion when adding a second lightsource?

Will investigate further, more feedback appreciated.

(This does highlight a better way to assign weapon barrels however... point to orientation should be being using with a specific back "face and sides", not "tops and sides").

I'll try to play around with it some more in different scenarios. In my example on a station, the affected face was basically opposite the local star, i.e. the face that is mostly in shadow (not using the shadows option, but meaning that face is not actively lit by the star). What really struck me was observing how the lighting cues changed when I moved around the face. For example when viewing the horizontal pipe side, when I moved "up" the specular highlights moved "down" and vice-versa, indicating that the pipe was concave. On other facings the cues moved as expected for a convex pipe.

I haven't noticed any problems with texture orientations, only what appeared to be normal map interpretation.

I should probably have added some clarifying notes to go with my screenshots. If one is facing in the direction of the default block orientation (the direction the barrel faces in the top block of my second picture), the local star is above and to the left.

In the first one viewing two stacked blocks, the faces on the right-hand side appear to be affected. The lower of the two blocks is oriented opposite the default, i.e. facing backwards. The lighting cues appear to indicate that the barrel of the lower block pops out, and the hex pattern on the upper block is raised/embossed rather than indented/engraved.

In the second picture, the rear face (facing the viewer) of the top block (default orientation, barrel facing away from the viewer) appears affected in the same way. The block below and behind it (nearest the viewer) has the barrel facing downward and does not appear affected.

Hmm, you may be right about this being the influence of multiple light sources rather than a normal-map issue. Sunlight in particular can have some unexpected influences it seems, including on block faces which should not be able to receive direct sunlight. I tried some tests in a void sector as well but blocks were still sunlit? Enabling shadows did not change the effects either.

AndyP moved this task from Backlog / Unclassed to Beta on the Textures board.Jul 20 2017, 11:06 PM
kupu changed the task status from In Queue to Open.Jul 3 2018, 8:50 PM

Re-purposing this task with a related issue.

The texture maps are not inverted, but tagent space calculations are currently incorrect, giving the illusion of incorrect mapping.
This can be seen clearly by assigning a 3D sphere model to a block (or even mushroom model), or viewing complex hull shapes during the transition from vertex lighting to per pixel lighting shaders.

Restricted Application added a project: Issue Navigation. · View Herald TranscriptJul 3 2018, 8:50 PM