I graphed out how much surface area each texture uses!

  • If you're asking a question make sure to set the thread type to be a question!

hutty

aa
Mar 30, 2014
538
444
First some links
raw data: http://paste.ubuntu.com/15922335/
sorted/cleaned raw data: http://paste.ubuntu.com/15922345/
code (processing, a little messy, sorry): http://paste.ubuntu.com/15922354/

This post shows which textures in all of tf2's (decompiled) maps have the most surface area. Not that these may not reflect in-game values for a couple of reasons. Namely, some large faces are hidden but still have a texture, and displacements are treated as a flat face rather than a bumpy one. Never the less, here are the textures that have the most coverage (tool textures excluded)

UomZHTd.png


C0o1lkj.png

brick/wall028
5,502,019,600.00 square hammer units
yes, 5 billion
I am as confused as you, somebody please go check my math, I know this texture is popular, but, that, popular? wow

ghG94hu.png

concrete/concretefloor003
1,120,269,310.00 square hammer units
This one I can understand, and expected.

BBXfDg1.png

nature/blendgroundtograss008
723,265,150.00 square hammer units
1 of 3 competitively viable ground textures.

m6vtuOz.png

nature/rockwall012
694,941,950.00 square hammer units
I'm personally not a fan of this texture, thanks badlands, you ruined everything.

I734ZWa.png

wood/wood_bridge001
684,980,420.00 square hammer units
Not surprised.

ictgXN1.png

nature/rockwall013
622,829,380.00 square hammer units
Badlands, please, no more.

wfDwqIQ.png

nature/blendrockground007
588,767,420.00 square hammer units
badlands plz

0s5IfTc.png

nature/blendgroundtogravel005
557,572,100.00 square hammer units
plz

2jY1p6y.png

nature/ground_04
502,012,960.00 square hammer units
This texture, as expected.

Dk4ukV4.png

winter/rockwall014
455,592,544.00 square hammer units
This is one of my favorite textures, so its nice to see it in the top 10.
 
Last edited:

Idolon

they/them
aa
Feb 7, 2008
2,105
6,106
.vmfs store brushes as a collection of planes, and then Hammer forms the brushes by seeing where those planes intersect. (This is why concave brushes don't work.) It only takes three points in 3D space to define a plane, so .vmfs only store three points. This means a face with 3 edges takes the same amount of data to store as a face with 10 edges (or any other number of edges).

Unfortunately, this makes the problem of solving for surface area much more difficult than the code is able to handle. Not all faces are quads, and the three points used to define a face aren't always going to be directly related to where that face's edges are.

There's a couple of reasons I can think of as to why that brick texture has such a high surface area:
1) weird mapping habits (Possibly textured the outside of a skybox somehow?)
2) one (or more) brushes got saved with one of its face-defining points way off in the middle of nowhere
 

EArkham

Necromancer
aa
Aug 14, 2009
1,625
2,773
Both brick/wall028 and winter/rockwall014 are 1024x2048 textures, whereas the rest are 1024x1024. I wonder if that will affect surface area estimates.
 

YM

LVL100 YM
aa
Dec 5, 2007
7,135
6,056
Definitely. I'd take surface area info from BSPs not VMFs since BSPs store faces as triangles like regular 3d model geometry. (I think????)
 

nickybakes

You should've played Rumbleverse
aa
Jul 28, 2015
911
1,739
Definitely. I'd take surface area info from BSPs not VMFs since BSPs store faces as triangles like regular 3d model geometry. (I think????)
I believe so as you can see it with mat_wireframe. Though that may just be a way to display brushes as wireframes, and not how the bsp saves them. I don't really know...
 

hutty

aa
Mar 30, 2014
538
444
The texture's resolution does not affect the surface area in this calculation.
As for doing a correct calculation from the triangles in a bsp.
I'm not going to do it in the foreseeable future, grabbing data from compressed binary files is way more difficult than grabbing from a renamed txt.

Maybe when I get around to looking at bsp internals (which i plan to do at some point), but not soon.
 

Pocket

Half a Lambert is better than one.
aa
Nov 14, 2009
4,694
2,579
It also occurs to me that both of these stats are likely to have been skewed by Valve's tendency to use real textures in the unrendered outer edges of things, instead of nodraw. I don't think any face that borders the void should count.
 

Geit

💜 I probably broke it 💜
aa
May 28, 2009
598
1,161
Definitely. I'd take surface area info from BSPs not VMFs since BSPs store faces as triangles like regular 3d model geometry. (I think????)
Nope, they're stored as convex faces of n-edges, the renderer has to triangulate them as a preprocessing step on map load.

The face array does have an area property though, which would be suitable for this. (iterate face array, follow references through to texture arrays and add face area to total)