BrettMayson / HEMTT

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

Hemtt does not binarize materials for .p3d objects #321

Closed AdlerSalbei closed 1 year ago

AdlerSalbei commented 4 years ago

HEMTT Version: 0.7.6 Project:https://github.com/gruppe-adler/grad_trenches

Description:

Using hemtt, it does not binarize the materials for .p3d's correctly.

Steps to reproduce:

  1. Binarize the above project.
  2. See ingame that the trench objects are all smooth.
ArmedVeteran commented 4 years ago

I most likely have a similar error. I've added CBA to my mod (with a friend, who has experience with both CBA and packing) and packed it with HEMTT. Now my vests load only texture, but rvmats are somehow ignored. Idk what's the problem, because there are no errors, no missing files (neither prompts nor in RPT files). I'm pretty sure it's a packing error.

jokoho48 commented 4 years ago

that I think actually has to do with how hemtt handles the path and how Arma expects those paths to be. also Rvmats are actually binarised into the p3d and uses the path that is given in the model. exception here is when you use hiddenSelections and normally RVMats don't need to deliver in the PBO and are only needed for the binarizing process. A temp fix would be using hiddenSelections and hiddenSelectionMaterials for the RVMats. a other fix would be to "PreBinarize" the P3Ds with the Binarizer on a setup P Drive A long term fix would be to try to construct the files that the P3D needs in the correct folders in a temp folder.

bux commented 4 years ago

I'm on hemtt 0.7.3 and rvmats are being packed properly. All _as _smdi and _nohq files are being loaded along with the _co when viewing a model in game.

ArmedVeteran commented 4 years ago

@jokoho48 As for the first solution: I'm using those in the config, doesn't change anything really. Textures load, but rvmats don't (I'm not really sure anymore - is it supposed to be hiddenSelectionsMaterials or hiddenSelectionMaterials?). As for the prebinarization of the P3D - I'm pretty sure that HEMTT throws errors if it has any binarized files to deal with (since it binarizes them itself), so that wouldn't work. The last solution with the temp folder I don't really understand :/

ArmedVeteran commented 4 years ago

I packed with Mikero's and it works great :D

AdlerSalbei commented 4 years ago

The Issue seems to be, that the path that hemtt needs is different to the one binarize needs. @Dahlgren fixed it for me with this script: https://github.com/gruppe-adler/grad_trenches/blob/master/build-hemtt.bat

bux commented 4 years ago

Using ACE's way of setting up the dev environment would be the way to go https://ace3mod.com/wiki/development/setting-up-the-development-environment.html#41-initial-setup

jokoho48 commented 4 years ago

@bux but isnt that the thing what hemtt wants to remove from the dev setup. to have a fully setup P Drive?

bux commented 4 years ago

I'm talking about the symlinking.

You probably mean: https://github.com/arma3/DokanPbo

jonpas commented 4 years ago

No bux, HEMTT already does not need a P-drive. Other symlink is to Arma 3 directory so you can write shorter mod lines (startup parameter).

bux commented 4 years ago

Didn't say it NEEDs a fully set-up P drive :P

jonpas commented 4 years ago
check = [
    "!binarizer_link"
]

# Binarizer file search compatibility
[scripts.binarizer_link]
steps_windows = [
    "if not exist x\\tacs mkdir x\\tacs",
    "if not exist x\\tacs\\addons mklink /j x\\tacs\\addons addons"
]
steps_linux = [
    # Preparation for Windows Binarizer (run once on Linux for network share compatibility)
    "mkdir -p x/tacs",
    "ln -sr addons x/tacs/addons"
]
show_output = true

You don't need the steps_linux, I just have it because I build off a network shared drive and mklink doesn't work with those.

BrettMayson commented 1 year ago

This should be fixed with 1.0 if I am not mistaken. Please reopen if it is still an issue