BrettMayson / HEMTT

Build System for Arma 3
http://hemtt.dev/
GNU General Public License v2.0
115 stars 40 forks source link

Textures from Arma 3 not used during binarization #596

Closed jonpas closed 8 months ago

jonpas commented 1 year ago

Models that reference textures from Arma 3's content \a3\... currently do not get binarized correctly, as HEMTT does not pass those textures to binarize. A good example is any transparency on models, such as glass on optics.

HEMTT should allow using referenced textures and potentially warn about missing ones.


This is also a deeper problem as we do not want to copy textures to include folder due to licensing/copyright restrictions and the potential size.

BrettMayson commented 1 year ago

I'm sure we'll be able to get the includes going, but yeah, the copyright will kinda make the lack of a P drive a problem here.

If you have a P drive setup, it works with HEMTT as-is, right?

jonpas commented 1 year ago

If you have a P drive setup, it works with HEMTT as-is, right?

It does not.

jonpas commented 9 months ago

[02:19]jonpas: Ok I actually have some useful information. It was in fact just a matter of copying some rvmats and textures used in the scope models, to include/a3/... [02:20]jonpas: So the real fix to avoid copying a ton of files for content mods, is allow them to still use P-drive. pboProject copies all textures in use to a P:\temp folder. I wonder if we could just symlink a P-drive to HEMTT temp if enabled/required in project config. [02:21]Brett: I wonder how much CUP actually needs from the P drive [02:21]jonpas: probably not that much tbf [02:22]Brett: It'd be neat to check the files with HEMTT, see what it needs, and grab those from the regular Arma install [02:22]Brett: no need for a massive unpack of everything [02:22]jonpas: But there is no way to check what is required without going through each item and attachment in-game, and even then it might not be obvious :/ [02:22]Brett: ? [02:22]jonpas: binarize doesn't complain if textures are missing [02:22]Brett: wouldn't all the files needed be found in the .p3ds? [02:23]jonpas: p3ds or rvmats in use by the p3d, or rvmats in use by the rvmats in use by the p3d... etc 😛 [02:23]jonpas: But yeah, if we can log "this file is missing for proper binarization", it would basically solve the problem [02:24]jonpas: pboProject does that and that's the only thing stopping binarization; binarizer itself does no file checking at all


PboProject also binarizes whole component, no each file separately, see the binarize calls:

HEMTT Call
["<Steam>\\Arma 3 Tools\\Binarize\\binarize_x64.exe",
"-norecurse",
"-always",
"-silent",
"-maxProcesses=0",
"C:\\Users\\Jonpas\\AppData\\Local\\Temp\\hemtt\\Work_A3_cup-weapons\\source\\CUP\\Weapons\\CUP_Weapons_XM8\\XM8\\",
"C:\\Users\\Jonpas\\AppData\\Local\\Temp\\hemtt\\Work_A3_cup-weapons\\output\\addons/CUP_Weapons_XM8/XM8",
"CUP_RCO_PCAP.p3d"]

PboProject Call
["<Steam>\\Arma 3 Tools\\Binarize\\binarize_x64.exe",
"-targetBonesInterval=56",
"-textures=P:\\temp",
"-binPath=P:\\"
"CUP\\Weapons\\CUP_Weapons_XM8",
"P:\\temp\\CUP\\Weapons\\CUP_Weapons_XM8"]
BrettMayson commented 8 months ago

Going to close this as it seems we'll be good in the next release of HEMTT