UnvanquishedAssets / tex-ex_src.dpkdir

The ex texture set for the Unvanquished game project
https://unvanquished.net/
1 stars 0 forks source link

Reviewing height maps #2

Open slipher opened 1 month ago

slipher commented 1 month ago

Inspired by https://github.com/UnvanquishedAssets/tex-exm_src.dpkdir/pull/1#issuecomment-2342880435, I went through the heightmaps with the goal of removing those which are actively bad, and also maybe adjusting the depth scale on some others. For each texture I reviewed it in two ways: first looking at the diffuse/normal/height images on Github, then in-game with the testshader command. A caveat of this method is that since each texture is tested in isolation, it doesn't do anything to make sure textures fit together at the seams.

For in-game review I did this:

  1. Set up binds to quickly test scale changes:
    bind MWHEELUP "math r_reliefDepthScale + 0.005; echo \$r_reliefDepthScale"
    bind MWHEELDOWN "math r_reliefDepthScale - 0.005; echo \$r_reliefDepthScale"
  2. Use testshader command to visualize the texture. I added an extended syntax testshader <shader> <width> <height> (not committed yet) to test non-square ones without stretching.

My review:

base1 noise
    INGAME not useful
base2 good
    INGAME 0.015-0.02 would be better
base3 noise
    INGAME whatever
concrete_base1 identical to base1
concrete_floor1 good
    INGAME stretching. better 0.01
concrete_floor2 good
    INGAME too subple. 0.1?
concrete_wall1 bad
    INGAME seems ok?
concrete_wall2 good
    INGAME good
concrete_wall3 some value but biased
    INGAME good
concrete_wall4 seems inverted? also biased
    INGAME it just makes the small pits less dark (bad)
floor_grate1 good
    INGAME good
floor_grate2 good
    INGAME good
floor_grate3 some value although details missing
    INGAME this sucks actually, just stretches the bars
floor_holes1 good
    INGAME 0.01
floor_holes2 good
    INGAME 0.02
floor_panel1 goodaw
    INGAME good
floor_pattern1 good
    INGAME good
floor_tile1 good
    INGAME 0.02
floor_tile2 good
    INGAME could be a bit stronger (0.04)
floor_tile3 good
    INGAME needs less. 0.015
floor_tread1 bad (though not actively) just 253-255
    INGAME useless
floor_tread2 good
    INGAME 0.02
light1 bad
    INGAME not very helpful but not actively bad
light2 shitty but maybe better than nothing?
    INGAME ok
trim_01x16v1 missing most details but better than nothing
    INGAME: just bends stuff. it's shit
trim_02x16v1 meh
    INGAME: shitty
trim_04x16v1 good
    INGAME: nice
trim_04x16v2 pretty bad
    INGAME: artifacts on sides
trim_04x16v3 good
    INGAME: missing most faetures
trim_08x16v1 ok
    INGAME ok
trim_16x04v1 missing a lot. better than nothing?
    INGAME it's nice`
trim_16x04v2 good
    INGAME ok
trim_16x04v3 missing bolts but better than nothing
    INGAME ok
trim_16x08v1 pretty bad
    INGAME shit
trim_panel1 biased but better than nothing
    INGAME yep
trim_plate1 bad
    INGAME bad
trim_steptop1 good
    INGAME good though there are artifacts when viewed at an angle
wall_endless1 good
    INGAME kinda weird. should chek the normals
wall_endless2 the biggest details at the bottom are absent. better than nothing?
    INGAME ok as far as it goes
wall_endless3 good
    INGAME stretching. scale 0.015 better
wall_endless4 good
    INGAME stretching. scale 0.015 better
wall_panel1 missing big stuff at the bottom. better than nothing?
    INGAME pretty lame
wall_panel2 meh, i don't think the top/bottom parts should be lower than the middle
    INGAME yeah it's bad, just meses up edges
wall_panel3 good
    INGAME stretching. scale 0.01
wall_panel4 good
    INGAME good (other than wrapping issue)
wall_panel5 good
    INGAME good
wall_panel6 good
    INGAME ok
wall_panel7 good
    INGAME good
wall_panel8 bad
    INGAME no good
wall_panel9 bad
    INGAME actively bad
wall_pipes1 it's hopeless. someone needs to draw this by hand
    INGAME randomly affects only 1 pipe
wall_plate1 good
    INGAME good
wall_plate2 missing a lot. better than nothing?
    INGAME ok
wall_plate3 good
    INGAME raised part has no visible effect :'(
wall_plate4 good
    INGAME nice
wall_plate5 the normalmap doesn't seem right here
    INGAME the diffuse alone just looked inverted some how. maybe could use more, like 0.05
wall_plate6 good
    INGAME good
wall_plate7 missing most features. better than nothing?
    INGAME ok
wall_plate8 bad
    INGAME bad

Deleting the bad ones should be easy enough, but I don't understand how I can make customizations like setting depth scale with this Sloth generator thing.

illwieckz commented 1 month ago

Our current heightmaps are not only bad because Xonotic ones were automatically generated by a script, but they are much worst than original Xonotic ones for multiple reasons:

  1. Easy to fix: default DarkPlaces height scale is 0.02, default Dæmon height scale is 0.03, we better set our default to 0.02 too to be natively compatible with Xonotic heightmaps (which contributes to 99% of our heightmaps or so). Especially we did not used heightmaps before we imported Xonotic ones, so there should be no legacy ones to take care about. This will reduce some artifacts.

  2. Requires more work: Xonotic heightmaps are almost all of them using custom scale and offset. Because Sloth doesn't support configuring them yet and because the engine doesn't support non-Darkplaces keywords for these options yet, when I imported the Xonotic heightmaps, I processed them using a custom script to rescale them to [0-1] and offset them to 0, in the process this destroyed a lot of precision, and even destroyed some relief (anything above 1 is flattened). Once both Sloth and Dæmon are fully compatible together in the way to set and read custom scale and offset, we can re-import Xonotic heightmaps, without modification, that would makes them better and hopefully remove some issues or weirdness or make such weirdness less obvious.