BrettMayson / HEMTT

Build System for Arma 3
https://brettmayson.github.io/HEMTT
GNU General Public License v2.0
111 stars 39 forks source link

Textures from Arma 3 not used during binarization #596

Closed jonpas closed 6 months ago

jonpas commented 11 months 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 11 months 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 11 months ago

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

It does not.

jonpas commented 7 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 6 months ago

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