From e1e5b907c105f227eeb2fedee43c949901f9ad4f Mon Sep 17 00:00:00 2001 From: tc Date: Fri, 11 Jan 2019 00:07:17 +0100 Subject: [PATCH 1/3] add aiProcess_GenNormals + aiProcess_GenSmoothNormals --- pandatool/src/assimp/assimpLoader.cxx | 10 ++++++++++ pandatool/src/assimp/config_assimp.cxx | 17 +++++++++++++++++ pandatool/src/assimp/config_assimp.h | 3 +++ 3 files changed, 30 insertions(+) diff --git a/pandatool/src/assimp/assimpLoader.cxx b/pandatool/src/assimp/assimpLoader.cxx index 8533fbaa64..ec0dc40b7d 100644 --- a/pandatool/src/assimp/assimpLoader.cxx +++ b/pandatool/src/assimp/assimpLoader.cxx @@ -129,6 +129,16 @@ read(const Filename &filename) { if (assimp_flip_winding_order) { flags |= aiProcess_FlipWindingOrder; } + if (assimp_gen_normals) { + if (assimp_smooth_normal_angle == 0.0) { + flags |= aiProcess_GenNormals; + } + else { + flags |= aiProcess_GenSmoothNormals; + _importer.SetPropertyFloat(AI_CONFIG_PP_GSN_MAX_SMOOTHING_ANGLE, + assimp_smooth_normal_angle); + } + } _scene = _importer.ReadFile(_filename.c_str(), flags); if (_scene == nullptr) { diff --git a/pandatool/src/assimp/config_assimp.cxx b/pandatool/src/assimp/config_assimp.cxx index 2dbf29fa16..2b84d2c63b 100644 --- a/pandatool/src/assimp/config_assimp.cxx +++ b/pandatool/src/assimp/config_assimp.cxx @@ -69,6 +69,23 @@ ConfigVariableBool assimp_flip_winding_order "the Assimp loader. Note that you may need to clear the model-cache " "after changing this.")); +ConfigVariableBool assimp_gen_normals +("assimp-gen-normals", false, + PRC_DESC("Set this true to generate normals (if absent from file) on import. " + "See assimp-smooth-normal-angle for more information. " + "Note that you may need to clear the model-cache after " + "changing this.")); + +ConfigVariableDouble assimp_smooth_normal_angle +("assimp-smooth-normal-angle", 0.0, + PRC_DESC("Set this to anything other than 0.0 in degrees (so 180.0 is PI) to " + "specify the maximum angle that may be between two face normals at " + "the same vertex position that are smoothed together. Sometimes " + "referred to as 'crease angle'. Only has effect if " + "assimp-gen-normals is set to true and the file does not contain " + "normals. Note that you may need to clear the model-cache after " + "changing this.")); + /** * Initializes the library. This must be called at least once before any of * the functions or classes in this library can be used. Normally it will be diff --git a/pandatool/src/assimp/config_assimp.h b/pandatool/src/assimp/config_assimp.h index 16efc8a754..898497eeb2 100644 --- a/pandatool/src/assimp/config_assimp.h +++ b/pandatool/src/assimp/config_assimp.h @@ -16,6 +16,7 @@ #include "pandatoolbase.h" #include "configVariableBool.h" +#include "configVariableDouble.h" #include "dconfig.h" ConfigureDecl(config_assimp, EXPCL_ASSIMP, EXPTP_ASSIMP); @@ -29,6 +30,8 @@ extern ConfigVariableBool assimp_fix_infacing_normals; extern ConfigVariableBool assimp_optimize_meshes; extern ConfigVariableBool assimp_optimize_graph; extern ConfigVariableBool assimp_flip_winding_order; +extern ConfigVariableBool assimp_gen_normals; +extern ConfigVariableDouble assimp_smooth_normal_angle; extern EXPCL_ASSIMP void init_libassimp(); From e8f0e030432bf7fda850a90327ae108f4b95081a Mon Sep 17 00:00:00 2001 From: John Cote Date: Fri, 11 Jan 2019 03:38:56 -0500 Subject: [PATCH 2/3] makepackage: Don't include deploy-stub when building .rpm Attempting to include deploy-stub in the .rpm would cause rpmbuild to fail, as deploy-stub isn't present. Closes #527 --- makepanda/makepackage.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/makepanda/makepackage.py b/makepanda/makepackage.py index ed20117d10..31a45a2bb9 100755 --- a/makepanda/makepackage.py +++ b/makepanda/makepackage.py @@ -438,7 +438,8 @@ def MakeInstallerLinux(version, debversion=None, rpmrelease=1, runtime=False, # Add the binaries in /usr/bin explicitly to the spec file for base in os.listdir(outputdir + "/bin"): - txt += "/usr/bin/%s\n" % (base) + if not base.startswith("deploy-stub"): + txt += "/usr/bin/%s\n" % (base) # Write out the spec file. txt = txt.replace("VERSION", version) From 8c40244ea4658b45cb95cebdfcbeb086af9724e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Derzsi=20D=C3=A1niel?= Date: Fri, 11 Jan 2019 13:46:28 -0800 Subject: [PATCH 3/3] readme: Add fakeroot into Linux build command Fixes #530 [skip ci] --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 596c134f46..99c7c39a5d 100644 --- a/README.md +++ b/README.md @@ -110,7 +110,7 @@ If you are on Ubuntu, this command should cover the most frequently used third-party packages: ```bash -sudo apt-get install build-essential pkg-config python-dev libpng-dev libjpeg-dev libtiff-dev zlib1g-dev libssl-dev libx11-dev libgl1-mesa-dev libxrandr-dev libxxf86dga-dev libxcursor-dev bison flex libfreetype6-dev libvorbis-dev libeigen3-dev libopenal-dev libode-dev libbullet-dev nvidia-cg-toolkit libgtk2.0-dev libassimp-dev libopenexr-dev +sudo apt-get install build-essential pkg-config fakeroot python-dev libpng-dev libjpeg-dev libtiff-dev zlib1g-dev libssl-dev libx11-dev libgl1-mesa-dev libxrandr-dev libxxf86dga-dev libxcursor-dev bison flex libfreetype6-dev libvorbis-dev libeigen3-dev libopenal-dev libode-dev libbullet-dev nvidia-cg-toolkit libgtk2.0-dev libassimp-dev libopenexr-dev ``` Once Panda3D has built, you can either install the .deb or .rpm package that