Sw_Racer
Sw_Racer copied to clipboard
Redesign color and material choices for surface types
This is a follow-up to #39 .
@Olganix listed the following collision types (combination of flags) on the OpenSWE1R gitter:
- 0x0
- 0x1
- 0x2
- 0x4
- 0x5
- 0x8
- 0x20
- 0x40
- 0x42
- 0x48
- 0x108
- 0x110
- 0x200
- 0x208
- 0x248
- 0x408
- 0x448
- 0x488
- 0x688
- 0x800
- 0x804
- 0x840
- 0x1000
- 0x1020
- 0x1100
- 0x1824
- 0x2000
- 0x2008
- 0x2408
- 0x4000
- 0x8000
- 0x8040
- 0x8308
- 0x8800
- 0x10000
- 0x10208
- 0x10448
- 0x12008
- 0x14000
- 0x20000
- 0x20048
- 0x20000000
- 0x20004000
- 0x20010000
We should find a color scheme that colors which make sense are assigned to each, with as little color re-use as possible (to get the most distinctive and self-explanatory result).
I don't know if that could help, here the same list with the number of mesh's parts with use the flags : 0x0,2406 0x40,132 0x800,129 0x10000,81 0x2,55 0x208,52 0x4000,52 0x4,50 0x20000,50 0x688,37 0x8800,31 0x48,30 0x840,23 0x2008,20 0x1100,19 0x8000,17 0x1824,15 0x5,12 0x14000,10 0x42,9 0x248,9 0x448,9 0x8,8 0x1020,7 0x20000000,7 0x408,6 0x10448,6 0x20010000,6 0x1,5 0x200,5 0x488,4 0x804,4 0x20048,4 0x1000,3 0x8040,3 0x8308,3 0x10208,3 0x20004000,3 0x20,2 0x108,2 0x110,2 0x2000,2 0x2408,2 0x12008,2 (if we want to put black, red, green, blue , white, 0.75 red, ... with order of the most present)
I think we should instead start iwth a base color (Light gray) and categorize the surfaces and turn some into modifiers:
- categories: Slow = a bit of red, Slowest = more red.
- modifiers: Sand = more yellow, Slide = more blue, NRSp = darker, Fall = more green
Some modifiers will also likely never appear together. such as Dust, Sand, Snow, Wet. - we should isolate those, as these could become different base colors. I'm also not sure if Slow and Slowest will appear together.
We could even use binary multipliers for the colors to get most readable colors for the flags which can appear together (say, one flag adds 50% more red, the next flag can only add 25% more red, so it's always known how a certain shade was generated from the flags: 0% [none], 25% [second], 50% [first], 75% [first and second]). I'm not sure which color models are fit for this yet though.
I'm on order by categories.
Proirity Order Proposition 1
- 0x0: Nothing (majority for Walls)
- 0x1: ZOn (specific to Stage Ovoo IV)
- 0x2: ZOff (specific to Stage Ovoo IV)
- 0x5: ZOff + Fast
- 0x42: ZOff + Dust
- 0x4: Fast
- 0x804: Fast + NSnw
- 0x1824: Fast + NSnw + Slip + Mirr
- 0x8: Slow
- 0x48: Slow + Dust
- 0x248: Slow + Dust + Ruff
- 0x448: Slow + Dust + Swmp
- 0x10448: Slow + Dust + Swmp + NRSp
- 0x20048: Slow + Dust + Flat
- 0x108: Slow + Wet
- 0x8308: Slow + Wet + Ruff + Soft
- 0x208: Slow + Ruff
- 0x10208: Slow + Ruff + NRSp
- 0x488: Slow + Snow + Swmp
- 0x688: Slow + Snow + Swmp + Ruff
- 0x408: Slow + Swmp
- 0x2408: Slow + Swmp + Lava
- 0x2008: Slow + Lava
- 0x12008: Slow + Lava + NRSp
- 0x20: Slip
- 0x1020: Slip + Mirr
- 0x110: Swst + Wet
- 0x40: Dust
- 0x840: Dust + NSnw
- 0x8040: Dust + Soft
- 0x200: Ruff
- 0x800: NSnw
- 0x8800: NSnw + Soft
- 0x1000: Mirr
- 0x1100: Mirr + Wet
- 0x2000: Lava
- 0x4000: Fall
- 0x14000: Fall + NRSp
- 0x20004000: Fall + Side
- 0x8000: Soft
- 0x10000: NRSp
- 0x20010000: NRSp + Side
- 0x20000: Flat
- 0x20000000: Side
Proirity Order Proposition 2
- 0x0: Nothing (majority for Walls)
- 0x1: ZOn (specific to Stage Ovoo IV)
- 0x2: ZOff (specific to Stage Ovoo IV)
- 0x5: ZOff + Fast
- 0x40: Dust
- 0x840: Dust + NSnw
- 0x8040: Dust + Soft
- 0x42: Dust + ZOff
- 0x48: Dust + Slow
- 0x248: Dust + Slow + Ruff
- 0x448: Dust + Slow + Swmp
- 0x10448: Dust + Slow + Swmp + NRSp
- 0x20048: Dust + Slow + Flat
- 0x488: Snow + Slow + Swmp
- 0x688: Snow + Slow + Swmp + Ruff
- 0x20: Slip
- 0x1020: Slip + Mirr
- 0x1824: Slip + Mirr + NSnw + Fast
- 0x800: NSnw
- 0x804: NSnw + Fast
- 0x8800: NSnw + Soft
- 0x1100: Wet + Mirr
- 0x110: Wet + Swst
- 0x108: Wet + Slow
- 0x8308: Wet + Slow + Ruff + Soft
- 0x2000: Lava
- 0x2008: Lava + Slow
- 0x2408: Lava + Slow + Swmp
- 0x12008: Lava + Slow + NRSp
- 0x200: Ruff
- 0x208: Ruff + Slow
- 0x10208: Ruff + Slow + NRSp
- 0x1000: Mirr
- 0x4000: Fall
- 0x14000: Fall + NRSp
- 0x20004000: Fall + Side
- 0x4: Fast
- 0x8: Slow
- 0x408: Slow + Swmp
- 0x8000: Soft
- 0x10000: NRSp
- 0x20010000: NRSp + Side
- 0x20000: Flat
- 0x20000000: Side
tabs ..... it's f...king kinding me
Swr_TextColors_SurfaceFlags.txt
(Markdown interpretation by JayFoxRox, please use original in case of doubt)
Nothing
- 0x0 Nothing (majority for Walls) =>
#cccccc
Gravity = Fuchsia => #ff00ff
- 0x1 ZOn (specific to Stage Ovoo IV) =>
#ff00ff
- 0x2 ZOff (specific to Stage Ovoo IV) =>
#4d004d
- 0x5 ZOff + Fast =>
#ff80ff
- 0x5 ZOff + Fast =>
- 0x20000000 Side =>
#7700ff
Dust = Orange => #ff9966
- 0x40 Dust =>
#ff9966
- 0x840 Dust + NSnw =>
#cc6600
- 0x8040 Dust + Soft =>
#ff6600
- 0x42 Dust + ZOff =>
#ff6699
- 0x48 Dust + Slow =>
#994d00
- 0x248 Dust + Slow + Ruff =>
#e69900
- 0x448 Dust + Slow + Swmp =>
#994d66
- 0x10448 Dust + Slow + Swmp + NRSp =>
#994d99
- 0x10448 Dust + Slow + Swmp + NRSp =>
- 0x20048 Dust + Slow + Flat =>
#664d00
- 0x248 Dust + Slow + Ruff =>
- 0x840 Dust + NSnw =>
Snow = White => #e6e6e6
-
Snow does not appear alone
- 0x488 Snow + Slow + Swmp =>
#6c6cf9
- 0x688 Snow + Slow + Swmp + Ruff =>
#6c6ca9
- 0x688 Snow + Slow + Swmp + Ruff =>
- 0x488 Snow + Slow + Swmp =>
Ice = Lighted Blue => #b3e6ff
- 0x20 Slip =>
#b3e6ff
- 0x1020 Slip + Mirr =>
#cceeff
- 0x1824 Slip + Mirr + NSnw + Fast =>
#e6f7ff
- 0x1824 Slip + Mirr + NSnw + Fast =>
- 0x1020 Slip + Mirr =>
No Snow : Grey => #a3a3c2
- 0x800 NSnw =>
#a3a3c2
- 0x804 NSnw + Fast =>
#d1d1e0
- 0x8800 NSnw + Soft =>
#c2c2d6
- 0x804 NSnw + Fast =>
Wet = blue sky => #3399ff
- 0x1100 Wet + Mirr =>
#3399ff
- 0x110 Wet + Swst =>
#33ccff
- 0x108 Wet + Slow =>
#0059b3
- 0x8308 Wet + Slow + Ruff + Soft =>
#004080
- 0x8308 Wet + Slow + Ruff + Soft =>
Lava = Yellow => #ffcc00
- 0x2000 Lava =>
#ffcc00
- 0x2008 Lava + Slow =>
#cca300
- 0x2408 Lava + Slow + Swmp =>
#ffbb33
- 0x12008 Lava + Slow + NRSp =>
#b3b300
- 0x2408 Lava + Slow + Swmp =>
- 0x2008 Lava + Slow =>
Ruff = Green => #009900
- 0x200 Ruff =>
#009900
- 0x208 Ruff + Slow =>
#006600
- 0x10208 Ruff + Slow + NRSp =>
#339933
- 0x10208 Ruff + Slow + NRSp =>
- 0x208 Ruff + Slow =>
Mirr = lighted Green => #66ff99
- 0x1000 Mirr =>
#66ff99
Fall = Blue => #0000ff
- 0x4000 Fall =>
#0000ff
- 0x14000 Fall + NRSp =>
#0000cc
- 0x20004000 Fall + Side =>
#0033cc
- 0x14000 Fall + NRSp =>
Fast = lighten Color
- 0x4 Fast =>
#d9d9d9
Slow = darken color
-
0x8 Slow =>
#808080
- 0x408 Slow + Swmp =>
#809080
- 0x408 Slow + Swmp =>
-
0x8000 Soft =>
#00ffcc
- 0x10000 NRSp =>
#00cc99
- 0x20010000 NRSp + Side =>
#669999
- 0x20010000 NRSp + Side =>
- 0x20000 Flat =>
#ccff99
Where to find a sample of Surface Flags:
-
model_1 : 0x0, 0x48 0x208 0x248 0x448 0x10000 0x10208 0x10448 0x14000 0x20000 0x20048 0x20000000
-
Model_128 : 0x40 0x488 0x800 0x840 0x8800
-
Model_129 : 0x408 0x2000 0x2008 0x2408 0x4000 0x8000 0x12008
-
Model_130 : 0x688 0x1000 0x1020 0x1824
-
Model_131 : 0x20 0x804
-
Model_133 : 0x1100
-
Model_136 : 0x4 0x20004000 0x20010000
-
Model_139 : 0x108 0x110 0x8040
-
Model_140 : 0x8308
-
Model_141 : 0x2808 0x2c08 0x12808
-
Model_145 : 0x1 0x2 0x5 0x8 0x42
-
Model_232 : 0x200