├── Images ├── bdd_textures_1024.png ├── material_synthesis_spatiallyVarying_1024.png ├── paramter_estimation_1024.png ├── pptbf_250x250.png ├── semiproctex.png ├── semiproctex_tools_1024.png ├── teaser_1024.jpg ├── teaser_bdd_structures.png ├── texture_synthesis_comparisons_1024.jpg ├── texture_synthesis_comparisons_header.png └── tools_editing_1024.png ├── LICENSE ├── PPTBF_Structures_Src ├── 3rdParty │ ├── CMakeLists.txt │ ├── Externals │ │ ├── build_glad.bat │ │ ├── build_glad.sh │ │ ├── build_glfw.bat │ │ ├── build_glfw.sh │ │ ├── build_glm.bat │ │ ├── build_glm.sh │ │ ├── glad │ │ │ └── CMakeLists.txt │ │ ├── glfw │ │ │ └── CMakeLists.txt │ │ ├── glm │ │ │ └── CMakeLists.txt │ │ └── info_LINUX.txt │ ├── ImGui.7z │ ├── cmake_generateProjects.bat │ ├── cmake_generateProjects.sh │ └── stb │ │ ├── stb_image.h │ │ └── stb_image_write.h ├── CMakeLists.txt ├── Install │ └── PPTBFProject │ │ └── bin │ │ └── Data │ │ ├── Matching_structures │ │ ├── cells │ │ │ ├── 111357_seg_scrop │ │ │ │ └── 111357_seg_scrop_pptbf_params.txt │ │ │ ├── 14596343807_24e447963c_o_seg_scrop │ │ │ │ └── 14596343807_24e447963c_o_seg_scrop_pptbf_params.txt │ │ │ ├── 20181215_153153_seg_scrop │ │ │ │ └── 20181215_153153_seg_scrop_pptbf_params.txt │ │ │ ├── 20495126421_931d63b5c2_k_seg_scrop │ │ │ │ └── 20495126421_931d63b5c2_k_seg_scrop_pptbf_params.txt │ │ │ ├── TexturesCom_BarkDecidious0066_S_seg_scrop │ │ │ │ └── TexturesCom_BarkDecidious0066_S_seg_scrop_pptbf_params.txt │ │ │ ├── TexturesCom_BrickOldMixedSize0056_7_seamless_S_seg_scrop │ │ │ │ └── TexturesCom_BrickOldMixedSize0056_7_seamless_S_seg_scrop_pptbf_params.txt │ │ │ ├── TexturesCom_BrickOldRounded0148_2_S_seg_scrop │ │ │ │ └── TexturesCom_BrickOldRounded0148_2_S_seg_scrop_pptbf_params.txt │ │ │ ├── TexturesCom_BrickRound0050_1_seamless_S_seg_scrop │ │ │ │ └── TexturesCom_BrickRound0050_1_seamless_S_seg_scrop_pptbf_params.txt │ │ │ ├── TexturesCom_BrickRound0108_3_S_seg_scrop │ │ │ │ └── TexturesCom_BrickRound0108_3_S_seg_scrop_pptbf_params.txt │ │ │ ├── TexturesCom_BrickRound0113_1_seamless_M_seg_scrop │ │ │ │ └── TexturesCom_BrickRound0113_1_seamless_M_seg_scrop_pptbf_params.txt │ │ │ ├── TexturesCom_BrickRound0116_3_S_seg_scrop │ │ │ │ └── TexturesCom_BrickRound0116_3_S_seg_scrop_pptbf_params.txt │ │ │ ├── TexturesCom_Camouflage0011_seamless_M_seg_scrop │ │ │ │ └── TexturesCom_Camouflage0011_seamless_M_seg_scrop_pptbf_params.txt │ │ │ ├── TexturesCom_ConcreteFloorsDamaged0047_S_seg_scrop │ │ │ │ └── TexturesCom_ConcreteFloorsDamaged0047_S_seg_scrop_pptbf_params.txt │ │ │ ├── TexturesCom_Crackles0011_S_seg_scrop │ │ │ │ └── TexturesCom_Crackles0011_S_seg_scrop_pptbf_params.txt │ │ │ ├── TexturesCom_Crackles0036_2_S_seg_scrop │ │ │ │ └── TexturesCom_Crackles0036_2_S_seg_scrop_pptbf_params.txt │ │ │ ├── TexturesCom_Crackles0041_1_seamless_S_seg_scrop │ │ │ │ └── TexturesCom_Crackles0041_1_seamless_S_seg_scrop_pptbf_params.txt │ │ │ ├── TexturesCom_FloorsPortuguese0087_S_seg_scrop │ │ │ │ └── TexturesCom_FloorsPortuguese0087_S_seg_scrop_pptbf_params.txt │ │ │ ├── TexturesCom_FloorsRounded0075_S_seg_scrop │ │ │ │ └── TexturesCom_FloorsRounded0075_S_seg_scrop_pptbf_params.txt │ │ │ ├── TexturesCom_FloorsRounded0097_S_seg_scrop │ │ │ │ └── TexturesCom_FloorsRounded0097_S_seg_scrop_pptbf_params.txt │ │ │ ├── TexturesCom_FloorsRounded0112_S_seg_scrop │ │ │ │ └── TexturesCom_FloorsRounded0112_S_seg_scrop_pptbf_params.txt │ │ │ ├── TexturesCom_FloorsRounded0112_S_v2_seg_scrop │ │ │ │ └── TexturesCom_FloorsRounded0112_S_v2_seg_scrop_pptbf_params.txt │ │ │ ├── TexturesCom_FloorsRounded0114_1_S_seg_scrop │ │ │ │ └── TexturesCom_FloorsRounded0114_1_S_seg_scrop_pptbf_params.txt │ │ │ ├── TexturesCom_FloorsRounded0115_1_S_seg_scrop │ │ │ │ └── TexturesCom_FloorsRounded0115_1_S_seg_scrop_pptbf_params.txt │ │ │ ├── TexturesCom_GravelCobble0027_2_S_seg_scrop │ │ │ │ └── TexturesCom_GravelCobble0027_2_S_seg_scrop_pptbf_params.txt │ │ │ ├── TexturesCom_MetalBare0150_2_S_seg_scrop │ │ │ │ └── TexturesCom_MetalBare0150_2_S_seg_scrop_pptbf_params.txt │ │ │ ├── TexturesCom_Moss0151_2_S_seg_scrop │ │ │ │ └── TexturesCom_Moss0151_2_S_seg_scrop_pptbf_params.txt │ │ │ ├── TexturesCom_PaperDecorative0020_6_S_seg_scrop │ │ │ │ └── TexturesCom_PaperDecorative0020_6_S_seg_scrop_pptbf_params.txt │ │ │ ├── TexturesCom_SoilCracked0092_2_S_seg_scrop │ │ │ │ └── TexturesCom_SoilCracked0092_2_S_seg_scrop_pptbf_params.txt │ │ │ ├── TexturesCom_SoilCracked0146_2_S_seg_scrop │ │ │ │ └── TexturesCom_SoilCracked0146_2_S_seg_scrop_pptbf_params.txt │ │ │ ├── TexturesCom_TilesSmall0148_4_seamless_S_seg_scrop │ │ │ │ └── TexturesCom_TilesSmall0148_4_seamless_S_seg_scrop_pptbf_params.txt │ │ │ ├── TexturesCom_TilesSmall0152_1_M_seg_scrop │ │ │ │ └── TexturesCom_TilesSmall0152_1_M_seg_scrop_pptbf_params.txt │ │ │ ├── bark56_seg_scrop │ │ │ │ └── bark56_seg_scrop_pptbf_params.txt │ │ │ ├── bark_c_seg_scrop │ │ │ │ └── bark_c_seg_scrop_pptbf_params.txt │ │ │ ├── cracked_asphalt_160796_seg_scrop │ │ │ │ └── cracked_asphalt_160796_seg_scrop_pptbf_params.txt │ │ │ ├── cracks_20181214_121155_seg_scrop │ │ │ │ └── cracks_20181214_121155_seg_scrop_pptbf_params.txt │ │ │ ├── deepmosaic_seg_scrop │ │ │ │ └── deepmosaic_seg_scrop_pptbf_params.txt │ │ │ ├── mosaicstones1_seg_scrop │ │ │ │ └── mosaicstones1_seg_scrop_pptbf_params.txt │ │ │ ├── mud_flakes_closeup_150326_seg_scrop │ │ │ │ └── mud_flakes_closeup_150326_seg_scrop_pptbf_params.txt │ │ │ ├── parched_cracked_mud_rainspots_2260562_seg_scrop │ │ │ │ └── parched_cracked_mud_rainspots_2260562_seg_scrop_pptbf_params.txt │ │ │ └── stones_seg_scrop │ │ │ │ └── stones_seg_scrop_pptbf_params.txt │ │ ├── dots │ │ │ ├── 2588776373_5b4e05a25a_o_seg_scrop │ │ │ │ └── 2588776373_5b4e05a25a_o_seg_scrop_pptbf_params.txt │ │ │ ├── 2731431788_00f8c1deae_o_seg_scrop │ │ │ │ └── 2731431788_00f8c1deae_o_seg_scrop_pptbf_params.txt │ │ │ ├── TexturesCom_ConcreteBare0181_M_seg_scrop │ │ │ │ └── TexturesCom_ConcreteBare0181_M_seg_scrop_pptbf_params.txt │ │ │ ├── TexturesCom_ConcreteBare0431_S_seg_scrop │ │ │ │ └── TexturesCom_ConcreteBare0431_S_seg_scrop_pptbf_params.txt │ │ │ ├── TexturesCom_ConcreteFloors0082_2_S_seg_scrop │ │ │ │ └── TexturesCom_ConcreteFloors0082_2_S_seg_scrop_pptbf_params.txt │ │ │ ├── TexturesCom_ConcreteRough0074_M_seg_scrop │ │ │ │ └── TexturesCom_ConcreteRough0074_M_seg_scrop_pptbf_params.txt │ │ │ ├── TexturesCom_Grungemaps0060_7_S_seg_scrop │ │ │ │ └── TexturesCom_Grungemaps0060_7_S_seg_scrop_pptbf_params.txt │ │ │ ├── TexturesCom_MarbleBase0081_2_S_seg_scrop │ │ │ │ └── TexturesCom_MarbleBase0081_2_S_seg_scrop_pptbf_params.txt │ │ │ ├── TexturesCom_MarbleGranite0018_1_S_seg_scrop │ │ │ │ └── TexturesCom_MarbleGranite0018_1_S_seg_scrop_pptbf_params.txt │ │ │ ├── TexturesCom_MarbleGranite0022_1_S_seg_scrop │ │ │ │ └── TexturesCom_MarbleGranite0022_1_S_seg_scrop_pptbf_params.txt │ │ │ ├── TexturesCom_MetalRivets0059_1_S_seg_scrop │ │ │ │ └── TexturesCom_MetalRivets0059_1_S_seg_scrop_pptbf_params.txt │ │ │ ├── TexturesCom_Moss0082_M_seg_scrop │ │ │ │ └── TexturesCom_Moss0082_M_seg_scrop_pptbf_params.txt │ │ │ ├── TexturesCom_PaperDecorative0036_3_S_seg_scrop │ │ │ │ └── TexturesCom_PaperDecorative0036_3_S_seg_scrop_pptbf_params.txt │ │ │ ├── TexturesCom_RustPaint0069_S_seg_scrop │ │ │ │ └── TexturesCom_RustPaint0069_S_seg_scrop_pptbf_params.txt │ │ │ ├── TexturesCom_Snow0065_2_S_seg_scrop │ │ │ │ └── TexturesCom_Snow0065_2_S_seg_scrop_pptbf_params.txt │ │ │ ├── TexturesCom_Snow0067_2_S_seg_scrop │ │ │ │ └── TexturesCom_Snow0067_2_S_seg_scrop_pptbf_params.txt │ │ │ ├── TexturesCom_Snow0068_2_S_seg_scrop │ │ │ │ └── TexturesCom_Snow0068_2_S_seg_scrop_pptbf_params.txt │ │ │ ├── animalskin_seg_scrop │ │ │ │ └── animalskin_seg_scrop_pptbf_params.txt │ │ │ ├── blotchy_concrete_2566_seg_scrop │ │ │ │ └── blotchy_concrete_2566_seg_scrop_pptbf_params.txt │ │ │ ├── bumpy_hard_concrete_texture_9261475_seg_scrop │ │ │ │ └── bumpy_hard_concrete_texture_9261475_seg_scrop_pptbf_params.txt │ │ │ ├── hair4_324_seg_scrop │ │ │ │ └── hair4_324_seg_scrop_pptbf_params.txt │ │ │ └── metal_2202896_seg_scrop │ │ │ │ ├── Other │ │ │ │ └── metal_2202896_seg_scrop_pptbf_params.txt │ │ │ │ └── metal_2202896_seg_scrop_pptbf_params.txt │ │ ├── folds │ │ │ └── TexturesCom_WrinklesHomogeneous0024_S_seg_scrop │ │ │ │ └── TexturesCom_WrinklesHomogeneous0024_S_seg_scrop_pptbf_params.txt │ │ ├── grains │ │ │ ├── TexturesCom_FloorsMarble0032_2_S_seg_scrop │ │ │ │ └── TexturesCom_FloorsMarble0032_2_S_seg_scrop_pptbf_params.txt │ │ │ ├── TexturesCom_PlywoodOld0027_1_M_seg_scrop │ │ │ │ ├── OtherPossibilities │ │ │ │ │ └── TexturesCom_PlywoodOld0027_1_M_seg_scrop_pptbf_params.txt │ │ │ │ └── TexturesCom_PlywoodOld0027_1_M_seg_scrop_pptbf_params.txt │ │ │ ├── Woodbig_seg_scrop │ │ │ │ └── Woodbig_seg_scrop_pptbf_params.txt │ │ │ ├── cracked_wooden_plank_7090594_seg_scrop │ │ │ │ └── cracked_wooden_plank_7090594_seg_scrop_pptbf_params.txt │ │ │ └── whiteash_seg_scrop │ │ │ │ └── whiteash_seg_scrop_pptbf_params.txt │ │ ├── lines │ │ │ ├── TexturesCom_Fur0005_1_M_seg_scrop │ │ │ │ └── TexturesCom_Fur0005_1_M_seg_scrop_pptbf_params.txt │ │ │ ├── TexturesCom_Grungemaps0127_1_S_seg_scrop │ │ │ │ └── TexturesCom_Grungemaps0127_1_S_seg_scrop_pptbf_params.txt │ │ │ ├── TexturesCom_GrungemapsWeird0009_2_S_seg_scrop │ │ │ │ └── TexturesCom_GrungemapsWeird0009_2_S_seg_scrop_pptbf_params.txt │ │ │ ├── TexturesCom_MetalScratches0039_1_S_seg_scrop │ │ │ │ └── TexturesCom_MetalScratches0039_1_S_seg_scrop_pptbf_params.txt │ │ │ ├── TexturesCom_MetalScratches0100_1_S_seg_scrop │ │ │ │ └── TexturesCom_MetalScratches0100_1_S_seg_scrop_pptbf_params.txt │ │ │ ├── TexturesCom_MetalScratches0105_1_S_seg_scrop │ │ │ │ └── TexturesCom_MetalScratches0105_1_S_seg_scrop_pptbf_params.txt │ │ │ ├── TexturesCom_SoilMud0040_1_seamless_S_seg_scrop │ │ │ │ └── TexturesCom_SoilMud0040_1_seamless_S_seg_scrop_pptbf_params.txt │ │ │ └── phasor_seg_scrop │ │ │ │ └── phasor_seg_scrop_pptbf_params.txt │ │ ├── maps │ │ │ ├── TexturesCom_Grungemaps0033_1_S_seg_scrop │ │ │ │ └── TexturesCom_Grungemaps0033_1_S_seg_scrop_pptbf_params.txt │ │ │ ├── TexturesCom_Grungemaps0102_S_seg_scrop │ │ │ │ └── TexturesCom_Grungemaps0102_S_seg_scrop_pptbf_params.txt │ │ │ ├── TexturesCom_MetalPainted0043_1_M_seg_scrop │ │ │ │ └── TexturesCom_MetalPainted0043_1_M_seg_scrop_pptbf_params.txt │ │ │ ├── TexturesCom_Moss0280_2_seamless_S_seg_scrop │ │ │ │ └── TexturesCom_Moss0280_2_seamless_S_seg_scrop_pptbf_params.txt │ │ │ ├── TexturesCom_PlasterPaintWorn0112_S_seg_scrop │ │ │ │ └── TexturesCom_PlasterPaintWorn0112_S_seg_scrop_pptbf_params.txt │ │ │ ├── TexturesCom_PlasterPaintWorn0114_1_S_seg_scrop │ │ │ │ └── TexturesCom_PlasterPaintWorn0114_1_S_seg_scrop_pptbf_params.txt │ │ │ ├── TexturesCom_RockMossy0028_S_seg_scrop │ │ │ │ └── TexturesCom_RockMossy0028_S_seg_scrop_pptbf_params.txt │ │ │ ├── TexturesCom_RockMossy0052_2_M_seg_scrop │ │ │ │ └── TexturesCom_RockMossy0052_2_M_seg_scrop_pptbf_params.txt │ │ │ ├── TexturesCom_RustMixed0090_1_S_seg_scrop │ │ │ │ └── TexturesCom_RustMixed0090_1_S_seg_scrop_pptbf_params.txt │ │ │ └── foam_texture_seg_scrop │ │ │ │ └── foam_texture_seg_scrop_pptbf_params.txt │ │ ├── networks │ │ │ ├── Marble_seg_scrop │ │ │ │ └── Marble_seg_scrop_pptbf_params.txt │ │ │ ├── TexturesCom_ConcreteFloors0099_S_seg_scrop │ │ │ │ └── TexturesCom_ConcreteFloors0099_S_seg_scrop_pptbf_params.txt │ │ │ ├── dotted_cracked_concrete_9290255_seg_scrop │ │ │ │ └── dotted_cracked_concrete_9290255_seg_scrop_pptbf_params.txt │ │ │ └── paint_262665_seg_scrop │ │ │ │ └── paint_262665_seg_scrop_pptbf_params.txt │ │ ├── piles │ │ │ ├── TexturesCom_Farmland0050_1_seamless_S_seg_scrop │ │ │ │ └── TexturesCom_Farmland0050_1_seamless_S_seg_scrop_pptbf_params.txt │ │ │ ├── TexturesCom_GravelCobble0007_S_seg_scrop │ │ │ │ └── TexturesCom_GravelCobble0007_S_seg_scrop_pptbf_params.txt │ │ │ ├── TexturesCom_GravelSpecial0012_S_seg_scrop │ │ │ │ └── TexturesCom_GravelSpecial0012_S_seg_scrop_pptbf_params.txt │ │ │ ├── TexturesCom_MetalBare0186_M_seg_scrop │ │ │ │ └── TexturesCom_MetalBare0186_M_seg_scrop_pptbf_params.txt │ │ │ ├── TexturesCom_WoodChips0045_1_S_seg_scrop │ │ │ │ └── TexturesCom_WoodChips0045_1_S_seg_scrop_pptbf_params.txt │ │ │ ├── coarse_hair_071009_seg_scrop │ │ │ │ └── coarse_hair_071009_seg_scrop_pptbf_params.txt │ │ │ ├── pebbles_seg_scrop │ │ │ │ └── pebbles_seg_scrop_pptbf_params.txt │ │ │ └── straw_seg_scrop │ │ │ │ └── straw_seg_scrop_pptbf_params.txt │ │ ├── tilings │ │ │ ├── TexturesCom_BrickOldMixedSize0026_S_seg_scrop │ │ │ │ └── TexturesCom_BrickOldMixedSize0026_S_seg_scrop_pptbf_params.txt │ │ │ ├── TexturesCom_BrickOldMixedSize0065_1_S_seg_scrop │ │ │ │ └── TexturesCom_BrickOldMixedSize0065_1_S_seg_scrop_pptbf_params.txt │ │ │ ├── TexturesCom_BrickOldRounded0068_M_seg_scrop │ │ │ │ └── TexturesCom_BrickOldRounded0068_M_seg_scrop_pptbf_params.txt │ │ │ ├── TexturesCom_BrickRound0134_2_seamless_S_seg_scrop │ │ │ │ └── TexturesCom_BrickRound0134_2_seamless_S_seg_scrop_pptbf_params.txt │ │ │ ├── TexturesCom_BrickSmallBrown0456_1_M_seg_scrop │ │ │ │ └── TexturesCom_BrickSmallBrown0456_1_M_seg_scrop_pptbf_params.txt │ │ │ ├── TexturesCom_ConcreteFloors0005_3_S_seg_scrop │ │ │ │ └── TexturesCom_ConcreteFloors0005_3_S_seg_scrop_pptbf_params.txt │ │ │ ├── TexturesCom_ConcreteFloors0045_2_S_seg_scrop │ │ │ │ └── TexturesCom_ConcreteFloors0045_2_S_seg_scrop_pptbf_params.txt │ │ │ ├── TexturesCom_ConcreteFloors0058_1_seamless_S_seg_scrop │ │ │ │ └── TexturesCom_ConcreteFloors0058_1_seamless_S_seg_scrop_pptbf_params.txt │ │ │ ├── TexturesCom_FloorHerringbone0070_2_S_seg_scrop │ │ │ │ └── TexturesCom_FloorHerringbone0070_2_S_seg_scrop_pptbf_params.txt │ │ │ ├── TexturesCom_FloorHerringbone0084_2_S_seg_scrop │ │ │ │ └── TexturesCom_FloorHerringbone0084_2_S_seg_scrop_pptbf_params.txt │ │ │ ├── TexturesCom_FloorsHexagonal0029_2_S_seg_scrop │ │ │ │ └── TexturesCom_FloorsHexagonal0029_2_S_seg_scrop_pptbf_params.txt │ │ │ ├── TexturesCom_FloorsMarble0023_S_seg_scrop │ │ │ │ └── TexturesCom_FloorsMarble0023_S_seg_scrop_pptbf_params.txt │ │ │ ├── TexturesCom_FloorsMedieval0047_1_S_seg_scrop │ │ │ │ └── TexturesCom_FloorsMedieval0047_1_S_seg_scrop_pptbf_params.txt │ │ │ ├── TexturesCom_FloorsMedieval0058_S_seg_scrop │ │ │ │ └── TexturesCom_FloorsMedieval0058_S_seg_scrop_pptbf_params.txt │ │ │ ├── TexturesCom_FloorsMixedSize0019_S_seg_scrop │ │ │ │ └── TexturesCom_FloorsMixedSize0019_S_seg_scrop_pptbf_params.txt │ │ │ ├── TexturesCom_FloorsMixedSize0028_1_S_seg_scrop │ │ │ │ └── TexturesCom_FloorsMixedSize0028_1_S_seg_scrop_pptbf_params.txt │ │ │ ├── TexturesCom_FloorsPortuguese0052_S_seg_scrop │ │ │ │ └── TexturesCom_FloorsPortuguese0052_S_seg_scrop_pptbf_params.txt │ │ │ ├── TexturesCom_FloorsVarious0030_S_seg_scrop │ │ │ │ └── TexturesCom_FloorsVarious0030_S_seg_scrop_pptbf_params.txt │ │ │ ├── TexturesCom_Leather0028_1_S_seg_scrop │ │ │ │ └── TexturesCom_Leather0028_1_S_seg_scrop_pptbf_params.txt │ │ │ ├── TexturesCom_MarbleTiles0042_3_S_seg_scrop │ │ │ │ └── TexturesCom_MarbleTiles0042_3_S_seg_scrop_pptbf_params.txt │ │ │ ├── TexturesCom_MetalVarious0026_1_seamless_S_seg_scrop │ │ │ │ └── TexturesCom_MetalVarious0026_1_seamless_S_seg_scrop_pptbf_params.txt │ │ │ ├── TexturesCom_TilesAzulejoBlue0066_1_S_seg_scrop │ │ │ │ └── TexturesCom_TilesAzulejoBlue0066_1_S_seg_scrop_pptbf_params.txt │ │ │ ├── TexturesCom_TilesBroken0023_11_S_seg_scrop │ │ │ │ └── TexturesCom_TilesBroken0023_11_S_seg_scrop_pptbf_params.txt │ │ │ ├── TexturesCom_TilesBroken0024_2_seamless_S_seg_scrop │ │ │ │ └── TexturesCom_TilesBroken0024_2_seamless_S_seg_scrop_pptbf_params.txt │ │ │ ├── TexturesCom_TilesPlain0268_1_S_seg_scrop │ │ │ │ └── TexturesCom_TilesPlain0268_1_S_seg_scrop_pptbf_params.txt │ │ │ ├── TexturesCom_TilesSmall0130_1_seamless_S_seg_scrop │ │ │ │ └── TexturesCom_TilesSmall0130_1_seamless_S_seg_scrop_pptbf_params.txt │ │ │ ├── TexturesCom_TilesSmall0142_2_seamless_M_seg_scrop │ │ │ │ └── TexturesCom_TilesSmall0142_2_seamless_M_seg_scrop_pptbf_params.txt │ │ │ ├── TexturesCom_TilesSmall0145_1_L_seg_scrop │ │ │ │ └── TexturesCom_TilesSmall0145_1_L_seg_scrop_pptbf_params.txt │ │ │ ├── TexturesCom_TilesSmall0151_1_S_seg_scrop │ │ │ │ └── TexturesCom_TilesSmall0151_1_S_seg_scrop_pptbf_params.txt │ │ │ ├── TexturesCom_TilesZellige0164_3_seamless_S_seg_scrop │ │ │ │ └── TexturesCom_TilesZellige0164_3_seamless_S_seg_scrop_pptbf_params.txt │ │ │ ├── TexturesCom_WoodBamboo0043_3_seamless_S_seg_scrop │ │ │ │ └── TexturesCom_WoodBamboo0043_3_seamless_S_seg_scrop_pptbf_params.txt │ │ │ ├── bricks_seg_scrop │ │ │ │ └── bricks_seg_scrop_pptbf_params.txt │ │ │ ├── concrete_bricks_3141196_seg_scrop │ │ │ │ └── concrete_bricks_3141196_seg_scrop_pptbf_params.txt │ │ │ ├── deephexa_seg_scrop │ │ │ │ └── deephexa_seg_scrop_pptbf_params.txt │ │ │ ├── deeptiling_seg_scrop │ │ │ │ └── deeptiling_seg_scrop_pptbf_params.txt │ │ │ ├── deepwall_seg_scrop │ │ │ │ └── deepwall_seg_scrop_pptbf_params.txt │ │ │ ├── snake_scales_seg_scrop │ │ │ │ └── snake_scales_seg_scrop_pptbf_params.txt │ │ │ └── wicker_seg_scrop │ │ │ │ └── wicker_seg_scrop_pptbf_params.txt │ │ └── waves │ │ │ ├── Ripples_cropped_seg_scrop │ │ │ └── Ripples_seg_scrop_pptbf_params.txt │ │ │ ├── TexturesCom_BrushStrokes0015_M_seg_scrop │ │ │ └── TexturesCom_BrushStrokes0015_M_seg_scrop_pptbf_params.txt │ │ │ ├── TexturesCom_Plastic0017_1_M_seg_scrop │ │ │ └── TexturesCom_Plastic0017_1_M_seg_scrop_pptbf_params.txt │ │ │ ├── TexturesCom_Rubber0050_1_seamless_S_seg_scrop │ │ │ └── TexturesCom_Rubber0050_1_seamless_S_seg_scrop_pptbf_params.txt │ │ │ ├── TexturesCom_SoilBeach0087_1_seamless_S_seg_scrop │ │ │ └── TexturesCom_SoilBeach0087_1_seamless_S_seg_scrop_pptbf_params.txt │ │ │ ├── TexturesCom_WoodBurned0074_2_seamless_S_seg_scrop │ │ │ └── TexturesCom_WoodBurned0074_2_seamless_S_seg_scrop_pptbf_params.txt │ │ │ ├── TexturesCom_WoodLogs0051_7_seamless_S_seg_scrop │ │ │ └── TexturesCom_WoodLogs0051_7_seamless_S_seg_scrop_pptbf_params.txt │ │ │ ├── lined_woolen_material_2020103_seg_scrop │ │ │ └── lined_woolen_material_2020103_seg_scrop_pptbf_params.txt │ │ │ └── wavy_fossilized_stone_5140152_seg_scrop │ │ │ └── wavy_fossilized_stone_5140152_seg_scrop_pptbf_params.txt │ │ ├── README.md │ │ └── Shaders │ │ └── PPTBF │ │ ├── binaryStructureMap_frag.glsl │ │ ├── fullscreenTexturedTriangle_color_frag.glsl │ │ ├── fullscreenTexturedTriangle_frag.glsl │ │ ├── fullscreenTexturedTriangle_vert.glsl │ │ ├── histogram_frag.glsl │ │ ├── histogram_vert.glsl │ │ ├── meshRendering_bump_frag.glsl │ │ ├── meshRendering_bump_vert.glsl │ │ ├── meshRendering_frag.glsl │ │ ├── meshRendering_vert.glsl │ │ ├── pptbf_megakernel_threshold_v2_comp.glsl │ │ └── pptbf_megakernel_v2_comp.glsl ├── PtGraphics │ ├── CMakeLists.txt │ ├── PtCamera.cpp │ ├── PtCamera.h │ ├── PtGraphicsConfig.h │ ├── PtGraphicsHistogram.cpp │ ├── PtGraphicsHistogram.h │ ├── PtGraphicsHistogram.hpp │ ├── PtGraphicsLibrary.cpp │ ├── PtGraphicsLibrary.h │ ├── PtGraphicsMeshManager.cpp │ ├── PtGraphicsMeshManager.h │ ├── PtGraphicsMeshManager.hpp │ ├── PtGraphicsPPTBF.cpp │ ├── PtGraphicsPPTBF.h │ ├── PtGraphicsPPTBF.hpp │ ├── PtShaderProgram.cpp │ ├── PtShaderProgram.h │ └── PtShaderProgram.hpp ├── PtModel │ ├── CMakeLists.txt │ ├── PtConfig.h │ ├── PtEnvironment.cpp │ ├── PtEnvironment.h │ ├── PtFeature.cpp │ ├── PtFeature.h │ ├── PtFeature.hpp │ ├── PtImageHelper.cpp │ ├── PtImageHelper.h │ ├── PtModelConfig.h │ ├── PtModelLibrary.cpp │ ├── PtModelLibrary.h │ ├── PtNoise.cpp │ ├── PtNoise.h │ ├── PtNoise.hpp │ ├── PtPPTBF.cpp │ ├── PtPPTBF.h │ ├── PtPPTBF.hpp │ ├── PtPPTBFLoader.cpp │ ├── PtPPTBFLoader.h │ ├── PtPPTBFLoader.hpp │ ├── PtWindow.cpp │ ├── PtWindow.h │ └── PtWindow.hpp ├── ReadMe.md ├── Tools │ ├── CMakeLists.txt │ ├── PtBDDGenerator │ │ ├── CMakeLists.txt │ │ ├── PtApplication.cpp │ │ ├── PtApplication.h │ │ ├── PtViewer.cpp │ │ ├── PtViewer.h │ │ ├── PtViewerConfig.cpp │ │ ├── PtViewerConfig.h │ │ ├── imgui_impl_glfw_gl3.cpp │ │ ├── imgui_impl_glfw_gl3.h │ │ └── main.cpp │ ├── PtBDDParameterSpaceSampler │ │ ├── CMakeLists.txt │ │ ├── PtApplication.cpp │ │ ├── PtApplication.h │ │ ├── PtViewer.cpp │ │ ├── PtViewer.h │ │ ├── PtViewerConfig.cpp │ │ ├── PtViewerConfig.h │ │ ├── imgui_impl_glfw_gl3.cpp │ │ ├── imgui_impl_glfw_gl3.h │ │ └── main.cpp │ └── PtViewer │ │ ├── CMakeLists.txt │ │ ├── PtApplication.cpp │ │ ├── PtApplication.h │ │ ├── PtViewer.cpp │ │ ├── PtViewer.h │ │ ├── PtViewerConfig.cpp │ │ ├── PtViewerConfig.h │ │ ├── imgui_impl_glfw_gl3.cpp │ │ ├── imgui_impl_glfw_gl3.h │ │ └── main.cpp ├── cmake_generateProjects.bat ├── cmake_generateProjects.sh ├── replicate_pptbfResults_matchingStructures.bat ├── semiproctex_PPTBF_pseudocode.pdf ├── tool_launchViewer.bat ├── tool_launchViewer_DEBUG.bat └── visualStudio_openSolution.bat ├── PPTBF_file_format.txt ├── README.md ├── Replicability ├── ReadMe.md ├── Replicability_fromBinaries.pdf ├── figure_11_from_paper.png └── supplemental_2_snapshot.png ├── Semiproc_synthesis_Src ├── 3rdParty │ ├── Externals │ │ ├── build_hview.bat │ │ └── hview │ │ │ ├── CMakeLists.txt │ │ │ ├── MyThreadPool.h │ │ │ ├── hvArray1.h │ │ │ ├── hvArray2.h │ │ │ ├── hvBitmap.h │ │ │ ├── hvBoolArray2.h │ │ │ ├── hvColor.h │ │ │ ├── hvError.h │ │ │ ├── hvField.h │ │ │ ├── hvField1.h │ │ │ ├── hvField2.h │ │ │ ├── hvFrame3.h │ │ │ ├── hvIntersection3.h │ │ │ ├── hvLine3.h │ │ │ ├── hvLinearTransform2.h │ │ │ ├── hvLinearTransform3.h │ │ │ ├── hvList.h │ │ │ ├── hvMat2.h │ │ │ ├── hvMat3.h │ │ │ ├── hvMat4.h │ │ │ ├── hvNoise.cpp │ │ │ ├── hvNoise.h │ │ │ ├── hvPair.h │ │ │ ├── hvPerspective.h │ │ │ ├── hvPict.h │ │ │ ├── hvPictRGB.h │ │ │ ├── hvPicture.h │ │ │ ├── hvPlan3.h │ │ │ ├── hvTransform.h │ │ │ ├── hvVec.h │ │ │ ├── hvVec2.h │ │ │ ├── hvVec3.h │ │ │ ├── hvVec4.h │ │ │ └── hviTransform.h │ └── stb │ │ ├── stb_image.h │ │ └── stb_image_write.h ├── CMakeLists.txt ├── Data │ └── Textures │ │ └── cells │ │ ├── 20181215_153153_featcol_class.png │ │ ├── 20181215_153153_scrop.png │ │ ├── 20181215_153153_scrop_semiproctex_pptbf_params.txt │ │ ├── 20181215_153153_scrop_synthesis_params.txt │ │ ├── 20181215_153153_seg_scrop.png │ │ ├── 20181215_153153_seg_scrop_pptbf_params.txt │ │ └── 20181215_153153_synthesis_params.txt ├── Install │ └── SemiProcTexProject │ │ └── bin │ │ ├── cracked_asphalt_160796_scrop.png │ │ ├── cracked_asphalt_160796_seg_scrop.png │ │ └── cracked_asphalt_160796_seg_scrop_pptbf_params.txt ├── ReadMe.txt ├── SptSynthesizer │ ├── CMakeLists.txt │ ├── SptBasicHviewInterface.cpp │ ├── SptBasicHviewInterface.h │ ├── SptBasicSynthesizer.cpp │ ├── SptBasicSynthesizer.h │ ├── SptHviewInterface.cpp │ ├── SptHviewInterface.h │ ├── SptImageHelper.cpp │ ├── SptImageHelper.h │ ├── SptSynthesizer.cpp │ ├── SptSynthesizer.h │ └── main.cpp ├── Tools │ └── LabelMapGenerator │ │ └── Spt_generateLabelMap.py ├── cmake_generateProjects.bat ├── tool_launchBasicSynthesizer.bat └── visualStudio_openSolution.bat └── semiProcTex_file_format.txt /Images/bdd_textures_1024.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ASTex-ICube/semiproctex/af5403a66fce584a34859b0e5e9fbd446fbd141a/Images/bdd_textures_1024.png -------------------------------------------------------------------------------- /Images/material_synthesis_spatiallyVarying_1024.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ASTex-ICube/semiproctex/af5403a66fce584a34859b0e5e9fbd446fbd141a/Images/material_synthesis_spatiallyVarying_1024.png -------------------------------------------------------------------------------- /Images/paramter_estimation_1024.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ASTex-ICube/semiproctex/af5403a66fce584a34859b0e5e9fbd446fbd141a/Images/paramter_estimation_1024.png -------------------------------------------------------------------------------- /Images/pptbf_250x250.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ASTex-ICube/semiproctex/af5403a66fce584a34859b0e5e9fbd446fbd141a/Images/pptbf_250x250.png -------------------------------------------------------------------------------- /Images/semiproctex.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ASTex-ICube/semiproctex/af5403a66fce584a34859b0e5e9fbd446fbd141a/Images/semiproctex.png -------------------------------------------------------------------------------- /Images/semiproctex_tools_1024.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ASTex-ICube/semiproctex/af5403a66fce584a34859b0e5e9fbd446fbd141a/Images/semiproctex_tools_1024.png -------------------------------------------------------------------------------- /Images/teaser_1024.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ASTex-ICube/semiproctex/af5403a66fce584a34859b0e5e9fbd446fbd141a/Images/teaser_1024.jpg -------------------------------------------------------------------------------- /Images/teaser_bdd_structures.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ASTex-ICube/semiproctex/af5403a66fce584a34859b0e5e9fbd446fbd141a/Images/teaser_bdd_structures.png -------------------------------------------------------------------------------- /Images/texture_synthesis_comparisons_1024.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ASTex-ICube/semiproctex/af5403a66fce584a34859b0e5e9fbd446fbd141a/Images/texture_synthesis_comparisons_1024.jpg -------------------------------------------------------------------------------- /Images/texture_synthesis_comparisons_header.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ASTex-ICube/semiproctex/af5403a66fce584a34859b0e5e9fbd446fbd141a/Images/texture_synthesis_comparisons_header.png -------------------------------------------------------------------------------- /Images/tools_editing_1024.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ASTex-ICube/semiproctex/af5403a66fce584a34859b0e5e9fbd446fbd141a/Images/tools_editing_1024.png -------------------------------------------------------------------------------- /PPTBF_Structures_Src/3rdParty/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | #---------------------------------------------------------------- 2 | # OmniScale PROJECT CMake file 3 | # Main user file 4 | #---------------------------------------------------------------- 5 | 6 | # Check CMAKE version 7 | cmake_minimum_required( VERSION 3.0 ) 8 | 9 | #---------------------------------------------------------------- 10 | # Project 11 | #---------------------------------------------------------------- 12 | 13 | # Invite message 14 | message( STATUS "-------------------------------------------" ) 15 | message( STATUS "- PROJECT GENERATION : PPTBF 3rdParty -" ) 16 | message( STATUS "-------------------------------------------" ) 17 | message( STATUS "" ) 18 | 19 | # Project name 20 | project( PPTBF3rdPartyProject ) 21 | 22 | set( CMAKE_INSTALL_PREFIX "${CMAKE_SOURCE_DIR}/Externals" ) 23 | set( CUSTOM_DEBUG_POSTFIX "d" ) 24 | 25 | #---------------------------------------------------------------- 26 | # Add Library/Tools path 27 | #---------------------------------------------------------------- 28 | 29 | # ImGui 30 | project( ImGui ) 31 | set( ImGui_DIR "${CMAKE_CURRENT_SOURCE_DIR}/ImGui" ) 32 | file( GLOB imguiIncList "${ImGui_DIR}/*.h" ) 33 | file( GLOB imguiSrcList "${ImGui_DIR}/*.cpp" ) 34 | file( GLOB addons1imguiIncList "${ImGui_DIR}/addons/imguifilesystem/*.h" ) 35 | file( GLOB addons1imguiSrcList "${ImGui_DIR}/addons/imguifilesystem/*.cpp" ) 36 | file( GLOB addons2imguiIncList "${ImGui_DIR}/addons/imguiyesaddons/imguitinyfiledialogs.h" ) 37 | file( GLOB addons2imguiSrcList "${ImGui_DIR}/addons/imguiyesaddons/imguitinyfiledialogs.cpp" ) 38 | file( GLOB addons3imguiIncList "${ImGui_DIR}/addons/imguinodegrapheditor/*.h" ) 39 | file( GLOB addons3imguiSrcList "${ImGui_DIR}/addons/imguinodegrapheditor/*.cpp" ) 40 | add_library( ImGui ${imguiSrcList} ${imguiIncList} ${addons1imguiSrcList} ${addons1imguiIncList} ${addons2imguiSrcList} ${addons2imguiIncList} ${addons3imguiSrcList} ${addons3imguiIncList} ) 41 | set_target_properties( ImGui PROPERTIES DEBUG_POSTFIX ${CUSTOM_DEBUG_POSTFIX} ) 42 | target_include_directories( ImGui PRIVATE "${ImGui_DIR}" ) 43 | install( TARGETS ImGui DESTINATION lib ) 44 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/3rdParty/Externals/build_glad.bat: -------------------------------------------------------------------------------- 1 | mkdir glad-build 2 | cd glad-build 3 | rem Call the script selecting the CMAKE compiler (Visual Studio 2010, 2012, etc...) 4 | rem "Visual Studio 14 2015 Win64" 5 | rem "Visual Studio 15 2017 Win64" 6 | rem "Visual Studio 16 2019 Win64" 7 | cmake -G "Visual Studio 15 2017 Win64" ..\glad 8 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/3rdParty/Externals/build_glad.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | mkdir glad-build 4 | cd glad-build 5 | cmake -G "Unix Makefiles" ../glad 6 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/3rdParty/Externals/build_glfw.bat: -------------------------------------------------------------------------------- 1 | mkdir glfw-build 2 | cd glfw-build 3 | rem Call the script selecting the CMAKE compiler (Visual Studio 2010, 2012, etc...) 4 | rem "Visual Studio 14 2015 Win64" 5 | rem "Visual Studio 15 2017 Win64" 6 | rem "Visual Studio 16 2019 Win64" 7 | cmake -G "Visual Studio 15 2017 Win64" ..\glfw 8 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/3rdParty/Externals/build_glfw.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | mkdir glfw-build 4 | cd glfw-build 5 | cmake -G "Unix Makefiles" ../glfw 6 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/3rdParty/Externals/build_glm.bat: -------------------------------------------------------------------------------- 1 | mkdir glm-build 2 | cd glm-build 3 | rem Call the script selecting the CMAKE compiler (Visual Studio 2010, 2012, etc...) 4 | rem "Visual Studio 14 2015 Win64" 5 | rem "Visual Studio 15 2017 Win64" 6 | rem "Visual Studio 16 2019 Win64" 7 | cmake -G "Visual Studio 15 2017 Win64" ..\glm 8 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/3rdParty/Externals/build_glm.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | mkdir glm-build 4 | cd glm-build 5 | cmake -G "Unix Makefiles" ../glm 6 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/3rdParty/Externals/glad/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | #---------------------------------------------------------------- 2 | # PROJECT CMake file 3 | # Main user file 4 | #---------------------------------------------------------------- 5 | 6 | # Check CMAKE version 7 | cmake_minimum_required( VERSION 3.0 ) 8 | 9 | #---------------------------------------------------------------- 10 | # Project 11 | #---------------------------------------------------------------- 12 | 13 | # Invite message 14 | message( STATUS "--------------------------------------" ) 15 | message( STATUS "- PROJECT GENERATION : GLAD 3rdParty -" ) 16 | message( STATUS "--------------------------------------" ) 17 | message( STATUS "" ) 18 | 19 | # Project name 20 | project( gladProject ) 21 | 22 | # Automatic cross-plateform compilation of glad 23 | 24 | include( ExternalProject ) 25 | 26 | SET( BUILD_SHARED_LIBS ON ) 27 | 28 | SET( 29 | glad_CMAKE_ARGS 30 | -DCMAKE_INSTALL_PREFIX:PATH= 31 | -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} 32 | -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE} 33 | -DCMAKE_DEBUG_POSTFIX=d 34 | -DGLAD_PROFILE="core" 35 | -DGLAD_API="gl=4.6" 36 | -DGLAD_ALL_EXTENSIONS=ON 37 | -DGLAD_INSTALL=ON 38 | -DGLAD_EXPORT=ON 39 | -DBUILD_SHARED_LIBS=ON 40 | ) 41 | 42 | ExternalProject_Add( 43 | glad 44 | GIT_REPOSITORY https://github.com/Dav1dde/glad.git 45 | #GIT_TAG v0.1.33 46 | GIT_SHALLOW ON 47 | INSTALL_DIR "${CMAKE_CURRENT_BINARY_DIR}/../../glad" 48 | BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/glad-build" 49 | CMAKE_ARGS ${CMAKE_ARGS} ${glad_CMAKE_ARGS} 50 | ) 51 | 52 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/3rdParty/Externals/glfw/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | #---------------------------------------------------------------- 2 | # PROJECT CMake file 3 | # Main user file 4 | #---------------------------------------------------------------- 5 | 6 | # Check CMAKE version 7 | cmake_minimum_required( VERSION 3.0 ) 8 | 9 | #---------------------------------------------------------------- 10 | # Project 11 | #---------------------------------------------------------------- 12 | 13 | # Invite message 14 | message( STATUS "--------------------------------------" ) 15 | message( STATUS "- PROJECT GENERATION : GLFW 3rdParty -" ) 16 | message( STATUS "--------------------------------------" ) 17 | message( STATUS "" ) 18 | 19 | # Project name 20 | project( glfwProject ) 21 | 22 | # Automatic cross-plateform compilation of glfw 23 | 24 | include( ExternalProject ) 25 | 26 | SET( BUILD_SHARED_LIBS ON ) 27 | 28 | SET( 29 | glfw_CMAKE_ARGS 30 | -DCMAKE_INSTALL_PREFIX:PATH= 31 | -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} 32 | -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE} 33 | -DCMAKE_DEBUG_POSTFIX=d 34 | -DBUILD_SHARED_LIBS=ON 35 | -DGLFW_BUILD_EXAMPLES=OFF 36 | -DGLFW_BUILD_TESTS=OFF 37 | -DGLFW_BUILD_DOCS=OFF 38 | ) 39 | 40 | ExternalProject_Add( 41 | glfw 42 | GIT_REPOSITORY https://github.com/glfw/glfw.git 43 | GIT_TAG 3.3 44 | GIT_SHALLOW ON 45 | INSTALL_DIR "${CMAKE_CURRENT_BINARY_DIR}/../../glfw" 46 | BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/glfw-build" 47 | CMAKE_ARGS ${CMAKE_ARGS} ${glfw_CMAKE_ARGS} 48 | ) 49 | 50 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/3rdParty/Externals/glm/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | #---------------------------------------------------------------- 2 | # PROJECT CMake file 3 | # Main user file 4 | #---------------------------------------------------------------- 5 | 6 | # Check CMAKE version 7 | cmake_minimum_required( VERSION 3.0 ) 8 | 9 | #---------------------------------------------------------------- 10 | # Project 11 | #---------------------------------------------------------------- 12 | 13 | # Invite message 14 | message( STATUS "-------------------------------------" ) 15 | message( STATUS "- PROJECT GENERATION : GLM 3rdParty -" ) 16 | message( STATUS "-------------------------------------" ) 17 | message( STATUS "" ) 18 | 19 | # Project name 20 | project( glmProject ) 21 | 22 | # Automatic cross-plateform compilation of glm 23 | 24 | include( ExternalProject ) 25 | 26 | SET( 27 | glm_CMAKE_ARGS 28 | -DCMAKE_INSTALL_PREFIX:PATH= 29 | -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} 30 | -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE} 31 | -DCMAKE_DEBUG_POSTFIX=d 32 | -DBUILD_SHARED_LIBS=ON 33 | -DGLM_TEST_ENABLE=OFF 34 | ) 35 | 36 | ExternalProject_Add( 37 | glm 38 | GIT_REPOSITORY https://github.com/g-truc/glm.git 39 | GIT_TAG 0.9.9.5 40 | GIT_SHALLOW ON 41 | INSTALL_DIR "${CMAKE_CURRENT_BINARY_DIR}/../../glm" 42 | BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/glm-build" 43 | CMAKE_ARGS ${CMAKE_ARGS} ${glm_CMAKE_ARGS} 44 | LOG_DOWNLOAD ON 45 | LOG_INSTALL ON 46 | ) 47 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/3rdParty/Externals/info_LINUX.txt: -------------------------------------------------------------------------------- 1 | 2 | ------------------------------------- 3 | GLFW: CMake requirements 4 | ------------------------------------- 5 | 6 | sudo apt-get install -y libx11-dev 7 | sudo apt-get install -y xserver-xorg-dev 8 | sudo apt-get install xorg-dev libglu1-mesa-dev 9 | sudo apt-get install -y libxrandr-dev 10 | sudo apt-get install -y x11proto-xinerama-dev 11 | 12 | ------------------------------------- 13 | 7zip: requirement 14 | ------------------------------------- 15 | 16 | sudo apt install p7zip-full 17 | 18 | 19 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/3rdParty/ImGui.7z: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ASTex-ICube/semiproctex/af5403a66fce584a34859b0e5e9fbd446fbd141a/PPTBF_Structures_Src/3rdParty/ImGui.7z -------------------------------------------------------------------------------- /PPTBF_Structures_Src/3rdParty/cmake_generateProjects.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | rem ************************************************************************** 4 | rem USER : Choose your compiler 5 | rem ************************************************************************** 6 | 7 | rem Call the script selecting the CMAKE compiler (Visual Studio 2010, 2012, etc...) 8 | rem set GS_COMPILER="Visual Studio 14 2015 Win64" 9 | set GS_COMPILER="Visual Studio 15 2017 Win64" 10 | rem set GS_COMPILER="Visual Studio 16 2019 Win64" 11 | 12 | rem ************************************************************************** 13 | rem CMAKE GENERATION 14 | rem ************************************************************************** 15 | 16 | set CURRENTSCRIPTPATH=%CD% 17 | 18 | mkdir Generated 19 | cd Generated 20 | cmake -G %GS_COMPILER% .. 21 | 22 | rem exit 23 | if NOT ERRORLEVEL 0 pause 24 | cd %CURRENTSCRIPTPATH% 25 | pause 26 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/3rdParty/cmake_generateProjects.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # ************************************************************************** 4 | # USER : Choose your compiler 5 | # ************************************************************************** 6 | 7 | # ************************************************************************** 8 | # CMAKE GENERATION 9 | # ************************************************************************** 10 | 11 | mkdir Generated 12 | cd Generated 13 | cmake .. 14 | 15 | # exit 16 | cd .. 17 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | #---------------------------------------------------------------- 2 | # PPTBF PROJECT CMake file 3 | # Main user file 4 | #---------------------------------------------------------------- 5 | 6 | # Check CMAKE version 7 | cmake_minimum_required( VERSION 3.0 ) 8 | 9 | #---------------------------------------------------------------- 10 | # Project 11 | #---------------------------------------------------------------- 12 | 13 | # Invite message 14 | message( STATUS "-------------------------------------------" ) 15 | message( STATUS "- PROJECT GENERATION : PPTBF Library -" ) 16 | message( STATUS "-------------------------------------------" ) 17 | message( STATUS "" ) 18 | 19 | # Project name 20 | project( PPTBFProject ) 21 | 22 | set( CMAKE_INSTALL_PREFIX "${CMAKE_SOURCE_DIR}/Install/PPTBFProject" ) 23 | 24 | # Add PATH variables to be retrieved in source code 25 | set( PT_PROJECT_PATH "${CMAKE_SOURCE_DIR}/.." ) 26 | set( PT_DATA_PATH "${PT_PROJECT_PATH}/Data" ) 27 | set( PT_IMAGE_PATH "${PT_DATA_PATH}/Images" ) 28 | set( PT_SHADER_PATH "${PT_DATA_PATH}/Shaders" ) 29 | get_filename_component( PT_PROJECT_PATH "${CMAKE_SOURCE_DIR}/.." ABSOLUTE ) 30 | get_filename_component( PT_DATA_PATH "${PT_PROJECT_PATH}/Data" ABSOLUTE ) 31 | get_filename_component( PT_IMAGE_PATH "${PT_DATA_PATH}/Images" ABSOLUTE ) 32 | get_filename_component( PT_SHADER_PATH "${PT_DATA_PATH}/Shaders" ABSOLUTE ) 33 | add_definitions( -DPT_PROJECT_PATH="${PT_PROJECT_PATH}" ) 34 | add_definitions( -DPT_DATA_PATH="${PT_DATA_PATH}" ) 35 | add_definitions( -DPT_IMAGE_PATH="${PT_IMAGE_PATH}" ) 36 | add_definitions( -DPT_SHADER_PATH="${PT_SHADER_PATH}" ) 37 | 38 | #---------------------------------------------------------------- 39 | # Add Library/Tools path 40 | #---------------------------------------------------------------- 41 | 42 | # SDK / API 43 | add_subdirectory( "${CMAKE_SOURCE_DIR}/PtModel" ) 44 | add_subdirectory( "${CMAKE_SOURCE_DIR}/PtGraphics" ) 45 | 46 | # Tools 47 | add_subdirectory( "${CMAKE_SOURCE_DIR}/Tools" ) 48 | 49 | # 3rdParty 50 | install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/3rdParty/Externals/bin 51 | DESTINATION ${CMAKE_CURRENT_SOURCE_DIR}/Install/PPTBFProject 52 | FILES_MATCHING 53 | PATTERN "*.dll" 54 | ) 55 | # glad 56 | IF (WIN32) 57 | file( COPY ${CMAKE_CURRENT_SOURCE_DIR}/3rdParty/glad/bin/glad.dll DESTINATION ${CMAKE_CURRENT_SOURCE_DIR}/Install/PPTBFProject/bin ) 58 | file( COPY ${CMAKE_CURRENT_SOURCE_DIR}/3rdParty/glad/bin/gladd.dll DESTINATION ${CMAKE_CURRENT_SOURCE_DIR}/Install/PPTBFProject/bin ) 59 | ELSE() 60 | file( COPY ${CMAKE_CURRENT_SOURCE_DIR}/3rdParty/glad/lib/libglad.so DESTINATION ${CMAKE_CURRENT_SOURCE_DIR}/Install/PPTBFProject/bin ) 61 | ENDIF() 62 | # GLFW 63 | IF (WIN32) 64 | file( COPY ${CMAKE_CURRENT_SOURCE_DIR}/3rdParty/glfw/bin/glfw3.dll DESTINATION ${CMAKE_CURRENT_SOURCE_DIR}/Install/PPTBFProject/bin ) 65 | file( COPY ${CMAKE_CURRENT_SOURCE_DIR}/3rdParty/glfw/bin/glfw3d.dll DESTINATION ${CMAKE_CURRENT_SOURCE_DIR}/Install/PPTBFProject/bin ) 66 | ELSE() 67 | #file( COPY ${CMAKE_CURRENT_SOURCE_DIR}/3rdParty/glfw/lib/libglfw.so DESTINATION ${CMAKE_CURRENT_SOURCE_DIR}/Install/PPTBFProject/bin ) 68 | file(GLOB PROJECT_GLFW_LIBRARY 69 | "${CMAKE_CURRENT_SOURCE_DIR}/3rdParty/glfw/lib/*so*" 70 | ) 71 | file( COPY ${PROJECT_GLFW_LIBRARY} DESTINATION ${CMAKE_CURRENT_SOURCE_DIR}/Install/PPTBFProject/bin ) 72 | ENDIF() 73 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/cells/111357_seg_scrop/111357_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.892735 2 | 5 1 55 0.359 0.850971 0.034 0.872 0.547 1 10 0 2 0 0.812 0.01 0 2 0 5 1 1 0.855 0.855 1 1 0.0844974 1 0 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/cells/14596343807_24e447963c_o_seg_scrop/14596343807_24e447963c_o_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.744682 2 | 4 0.719 80 0.474 1.587 0.037 0.342 0.702 1 3.263 0.491 1 0.175 1 0.01 2 3 1 4.342 1 2 0.965 0.623 5 1 0.623 0.263 0.162 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/cells/20181215_153153_seg_scrop/20181215_153153_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.631067 2 | 7 0.692 130 1.096 0.971 0.017 0.231 4 1 3.646 0 2 2 1 2.158 0 2 0 0 9 9 2 0.2 1 1 0.109112 1 0 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/cells/20495126421_931d63b5c2_k_seg_scrop/20495126421_931d63b5c2_k_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.583618 2 | 6 1 74 0.991 2.401 0.0323177 0.59 1.949 1 3 0 2 2 1 0.7 1 2 1 4.188 4 6 1.88 0.2 3 0 0.488 0.53 0.188 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/cells/TexturesCom_BarkDecidious0066_S_seg_scrop/TexturesCom_BarkDecidious0066_S_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.664674 2 | 0 0 62 0.01 1 0.012 0.8 1.9 0 2 0 2 0 0 0.5 2 2 1 4.583 1 3 4.25 0 2 0 1 1 0 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/cells/TexturesCom_BrickOldMixedSize0056_7_seamless_S_seg_scrop/TexturesCom_BrickOldMixedSize0056_7_seamless_S_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.783405 2 | 6 0.68 45 0 2.77 0.01 0 1.28 1 4.88 0.8 2 2 1 0.7 1 2 1 5 5 5 10 0.48 0 0 0.84 1 0 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/cells/TexturesCom_BrickOldRounded0148_2_S_seg_scrop/TexturesCom_BrickOldRounded0148_2_S_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.691784 2 | 4 0.872 40 0 1.205 0.011 0.419 1.231 1 10 0 2 0 1 1 0 2 0 0 1 1 1 0.2 1 1 0.001 0.2 0 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/cells/TexturesCom_BrickRound0050_1_seamless_S_seg_scrop/TexturesCom_BrickRound0050_1_seamless_S_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.794416 2 | 0 0.937346 52 0 1.269 0 0 0 1 4.958 0.227 2 0.571 1 0.7 1 2 0.631494 5 5 6 2 0.2 1 0 0.104421 1 0 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/cells/TexturesCom_BrickRound0108_3_S_seg_scrop/TexturesCom_BrickRound0108_3_S_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.689987 2 | 4 0.92 64 0 1.794 0.02 0.268 1.429 1 4.857 0.366 2 2 1 0.7 2 2 0.446 5 1 2 1 0.2 2 1 0.96548 1 0.143 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/cells/TexturesCom_BrickRound0113_1_seamless_M_seg_scrop/TexturesCom_BrickRound0113_1_seamless_M_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.783089 2 | 7 0.64 60 0.22 1.96 0.122 0.47 0.32 1 3.68 0.15 2 1.44 1 1.247 1 2 0 5 1 1 4.3 0.29 5 1 0.001 0.22 0.04 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/cells/TexturesCom_BrickRound0116_3_S_seg_scrop/TexturesCom_BrickRound0116_3_S_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.627754 2 | 6 0.803 81 0 1.376 0.026 0.521 1.20256 1 4 0.128 1 0 1 0.7 0 2 0 2.5 0 0 1 0.2 0 1 0.826617 0 0 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/cells/TexturesCom_Camouflage0011_seamless_M_seg_scrop/TexturesCom_Camouflage0011_seamless_M_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.796448 2 | 9 1 118 0.089 1.17 0.009 0.696 2.357 1 4.643 0 2 1.696 1 0.01 2 2 1 5 1 1 0 1 1 0 1 0 0 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/cells/TexturesCom_ConcreteFloorsDamaged0047_S_seg_scrop/TexturesCom_ConcreteFloorsDamaged0047_S_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.819649 2 | 1 1 125 0 1 0.017 0 4 1 10 0.034 2 0 1 0.7 2 2 0 0 1 1 0 0 1 1 0.095 0 0.5 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/cells/TexturesCom_Crackles0011_S_seg_scrop/TexturesCom_Crackles0011_S_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.678337 2 | 1 1 30 0 1.462 0.009 0.094 3.829 1 8 0.085 2 0 1 0.7 0 2 0 5 5 6 2 0.2 0 0 0.103 1 0.5 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/cells/TexturesCom_Crackles0036_2_S_seg_scrop/TexturesCom_Crackles0036_2_S_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.820694 2 | 8 1 42 0.5 2 0.0254476 0.453 3.111 1 4.462 0 2 2 0.974 3.352 2 2 0 5 8 8 0 0.231 0 0.368 0.471 0 0.235 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/cells/TexturesCom_Crackles0041_1_seamless_S_seg_scrop/TexturesCom_Crackles0041_1_seamless_S_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.699593 2 | 8 1 15 0.239 1 0.011 0.282 2.017 1 5.282 0 2 2 1 1 0 2 0 0 5 5 1 0.2 1 0 0.104395 0.2 0 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/cells/TexturesCom_FloorsPortuguese0087_S_seg_scrop/TexturesCom_FloorsPortuguese0087_S_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.80772 2 | 11 0.291 180 0.41 1.035 0.011 0.658 3.795 1 6.171 0 1 2 1 0.317 1 2 0 5 1 1 0.085 1 0 0 1 0 0.45 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/cells/TexturesCom_FloorsRounded0075_S_seg_scrop/TexturesCom_FloorsRounded0075_S_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.425541 2 | 0 1 50 0.125 1 0.013 0.825 1.018 1 5.228 0.035 2 2 1 1.48 1 2.018 0 5 9 12 0.351 0.2 1 0 0.316 0.675 0.351 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/cells/TexturesCom_FloorsRounded0097_S_seg_scrop/TexturesCom_FloorsRounded0097_S_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.683731 2 | 9 0.616 65 0 1.2 0.051 0.05 1.286 1 6.643 0.009 2 0 1 0.01 1 2 0.536 5 1 1 0 0 1 0 0.278 0.312 0.241 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/cells/TexturesCom_FloorsRounded0112_S_seg_scrop/TexturesCom_FloorsRounded0112_S_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.569939 2 | 7 1 57 0.125 1.12613 0.015 0.088 2.105 1 5.088 0 2 2 1 4 2 2 0 3.202 4 12 1.667 0.219 1 0 1 0.658 0 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/cells/TexturesCom_FloorsRounded0112_S_v2_seg_scrop/TexturesCom_FloorsRounded0112_S_v2_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.510544 2 | 9 0.728 55 0.982 1.412 0.024 0.167 3.263 1 4.737 0.053 2 2 1 0.7 0 2 0.465 0 5 12 0.702 0.2 1 0 0.0924474 1 0 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/cells/TexturesCom_FloorsRounded0114_1_S_seg_scrop/TexturesCom_FloorsRounded0114_1_S_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.860901 2 | 9 1 91 1.932 1 0 0 0 1 7.197 0.034 1.256 2 1 0.7 1 2 0 5 1 1 0.427 0.2 2 1 0.308 1 0.5 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/cells/TexturesCom_FloorsRounded0115_1_S_seg_scrop/TexturesCom_FloorsRounded0115_1_S_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.63517 2 | 8 1 63 0.564 1.12 0.026 0.504 1.436 1 4.872 0.632 2 2 1 0.7 0 2 0.648894 5 1 1 2 0.2 1 1 0.123802 1 0.209 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/cells/TexturesCom_GravelCobble0027_2_S_seg_scrop/TexturesCom_GravelCobble0027_2_S_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.572487 2 | 2 0.999856 146 0 0.939697 0.178194 0.0505098 0.972518 1 3 0 2 1.97902 1 0.7 1 2 0.662114 5 1 1 2 0.2 0 0 0.970011 0 0.468021 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/cells/TexturesCom_MetalBare0150_2_S_seg_scrop/TexturesCom_MetalBare0150_2_S_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.478211 2 | 4 0.367 44 0.954 0.927 0.0410585 0.491 0.867664 1 3.468 1 2 0.165 1 0.7 1 2 0 0 1 8 2.661 1 2 1 0.001 1 0 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/cells/TexturesCom_Moss0151_2_S_seg_scrop/TexturesCom_Moss0151_2_S_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.717323 2 | 4 1 18 0.125 0.926979 0.015 0.535 1.649 1 8.316 0.096 2 2 0.746 0.01 0 2 0 5 1 1 2.281 0.298 0 1 1.05575 0 0.425798 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/cells/TexturesCom_PaperDecorative0020_6_S_seg_scrop/TexturesCom_PaperDecorative0020_6_S_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.858501 2 | 4 0 35 0 5.356 0.029 0.456 0.842 1 3.684 0 2 0 0.851 2.215 1 2 0.702 0 1 1 6.842 0.807 2 0 1 1 0.425 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/cells/TexturesCom_SoilCracked0092_2_S_seg_scrop/TexturesCom_SoilCracked0092_2_S_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.742863 2 | 4 0.825 83 0.281 1.5 0.005 1 2.07 1 10 0.053 2 1.088 1 2.11 2 2 1 5 5 5 1 0.2 1 0 0.963187 0 0.5 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/cells/TexturesCom_SoilCracked0146_2_S_seg_scrop/TexturesCom_SoilCracked0146_2_S_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.889877 2 | 6 1 72 0.12 1.276 0.015 0.556 2.701 1 7.265 0 2 0 1 0.7 2 2 0.632 5 5 6 6.838 0 1 1 1 0 0 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/cells/TexturesCom_TilesSmall0148_4_seamless_S_seg_scrop/TexturesCom_TilesSmall0148_4_seamless_S_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.472385 2 | 0 0.983 44 0 1.80103 0.024 0.427 1.402 1 4.598 0 2 0 1 0.7 2 2 0.53644 5 1 1 1 0.2 2 1 1.14908 1 0.14522 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/cells/TexturesCom_TilesSmall0152_1_M_seg_scrop/TexturesCom_TilesSmall0152_1_M_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.809765 2 | 4 0.711 90 0.193 1.675 0.077 0 0.912 1 3.825 0.316 2 0 1 0.7 2 2 0 5 1 1 1 0.2 2 1 1 1 0.364 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/cells/bark56_seg_scrop/bark56_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.427997 2 | 0 0.424 30 0.992 2.727 0.02 0.624 1.216 0 2.832 0 1.816 2 0.432 1.127 2 2 1 5 1 6 1.2 0.16 2 0.104 1 0.475 0 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/cells/bark_c_seg_scrop/bark_c_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.819071 2 | 8 0.168 75 0.533 1.129 0.024 0.496 4 1 8 0.3 2 0 0.6 0.7 2 2 1 0 2 5 0.56 0 1 0.944 0.137 0.008 0 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/cells/cracked_asphalt_160796_seg_scrop/cracked_asphalt_160796_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.737301 2 | 6 0 49 0.974 1.632 0.019 0.581 4 1 3.846 0.128 2 2 1 0.7 0 2 0.529988 0 0 0 1 0.2 0 0 0.112611 0 0.491883 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/cells/cracks_20181214_121155_seg_scrop/cracks_20181214_121155_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.571411 2 | 5 1 55 0.652 1.923 0.023 0.589 3.262 1 10 0 2 0 1 0.01 2 2 1 5 3 9 0 0 0 0 0.0751877 1 0.506392 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/cells/deepmosaic_seg_scrop/deepmosaic_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.747275 2 | 0 1 56 0.051 1.718 0.071 0.462 0.444 1 10 0.051 2 1.419 1 0.7 1 2 1 5 1 8 5.214 0 0 1 1 1 0 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/cells/mosaicstones1_seg_scrop/mosaicstones1_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.755603 2 | 9 0.659 85 0 1.69 0.016 0.571 1.937 1 5.048 0.056 2 1.238 1 0.01 0 2 0 0 1 1 2 0.23 1 1 0.1 1 0 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/cells/mud_flakes_closeup_150326_seg_scrop/mud_flakes_closeup_150326_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.769852 2 | 8 1 55 0 1.129 0.024 0.496 4 1 8 0.3 2 0 0.821 0.7 0 2 1 0 0 0 0.56 0 0 1 0.001 0.008 0 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/cells/parched_cracked_mud_rainspots_2260562_seg_scrop/parched_cracked_mud_rainspots_2260562_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.828484 2 | 0 1 87 0.957 1.803 0.03 1 0.41 1 9.932 0.043 2 0 1 0.01 2 2 1 5 1 2 0.085 0 1 1 1 0 0.09 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/cells/stones_seg_scrop/stones_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.618103 2 | 0 0.855492 67 0 1.08208 0.019 0.831 0.676 1 3.352 0 2 2 1 0.7 1 2 1 5 2 3 2.254 0.324 0 0 1.0914 0 0.390407 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/dots/2588776373_5b4e05a25a_o_seg_scrop/2588776373_5b4e05a25a_o_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.165932 2 | 6 0 46 0 1.85676 0.041 0.359 4 1 10 0 2 0 0 0.5 1 2 1 5 2 8 0.598 1 0 0 0.902303 1 0.269 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/dots/2731431788_00f8c1deae_o_seg_scrop/2731431788_00f8c1deae_o_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.222923 2 | 6 0.842 49 0 2.727 0.011 0.693 1.404 1 3.684 0 1 0.649 0.342 0.01 4 1 0.754 0.263 1 2 4.211 0.561 0 1 0.36 0.711 0 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/dots/TexturesCom_ConcreteBare0181_M_seg_scrop/TexturesCom_ConcreteBare0181_M_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.241036 2 | 5 1 36 0.125 1.02833 0.035 0.0486982 1.8025 1 2.281 0.263 2 1.474 1 0.7 0 2 1 0 5 7 7.368 0 1 1 1 0 0 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/dots/TexturesCom_ConcreteBare0431_S_seg_scrop/TexturesCom_ConcreteBare0431_S_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.029146 2 | 1 0.47 53 0.125 0.893184 0.004 0.460453 1.18464 1 3 0 2 2 1 0.7 1 2 0.806612 0 9 9 0.769 0 0 0 0.317 0 0.5 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/dots/TexturesCom_ConcreteFloors0082_2_S_seg_scrop/TexturesCom_ConcreteFloors0082_2_S_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.215355 2 | 4 0 70 0 2.109 0 0 0 0 2 0 2 0 0 0.5 4 2 1 1.092 1 1 1.261 0 0 0 0.001 0 0 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/dots/TexturesCom_ConcreteRough0074_M_seg_scrop/TexturesCom_ConcreteRough0074_M_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.112015 2 | 9 1 74 0 2.15436 0.009 0.593589 0.789644 1 3.231 0.232161 2 2 1 1.817 1 2 0 5 5 5 1.795 0.2 0 0 0.115692 0 0.338 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/dots/TexturesCom_Grungemaps0060_7_S_seg_scrop/TexturesCom_Grungemaps0060_7_S_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.258198 2 | 1 0.248 20 0 2.72727 0.024 0.05 1 0 10 0 2 0 0.001 0.5 2 2 0 2.5 1 1 1 0.2 0 1 1 0 0 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/dots/TexturesCom_MarbleBase0081_2_S_seg_scrop/TexturesCom_MarbleBase0081_2_S_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.456858 2 | 0 0 50 0 1 0 0 0 0 10 0 2 0 0 0.5 1 2 0 2.5 9 9 1 0 5 0 0.1 0.2 0 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/dots/TexturesCom_MarbleGranite0018_1_S_seg_scrop/TexturesCom_MarbleGranite0018_1_S_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.198081 2 | 6 1 27 1.975 2.989 0 0 1 1 2 1 2 0.088 1 1.97 0 1.614 0 0 9 9 5.614 0.2 1 1 1 0 0 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/dots/TexturesCom_MarbleGranite0022_1_S_seg_scrop/TexturesCom_MarbleGranite0022_1_S_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.147697 2 | 2 0.829 50 0.308 3.682 0.009 1 1.915 1 3.436 0 2 2 1 1.135 0 2 1 0 1 3 5.726 0.111 0 1 0.351 0 0 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/dots/TexturesCom_MetalRivets0059_1_S_seg_scrop/TexturesCom_MetalRivets0059_1_S_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.457859 2 | 4 0 58 0 0.89 0 0 0 1 3 1 2 2.11186 0.547 0.7 4 2 1 0 1 1 2 0 0 0 1 0 0 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/dots/TexturesCom_Moss0082_M_seg_scrop/TexturesCom_Moss0082_M_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.254345 2 | 0 0.957 59 0.034 0.859957 0.017 0.598 4 1 4.188 0 2 1.333 0.556 0.7 1 2 1 0 9 9 1 0.2 0 0 1.06716 0 0 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/dots/TexturesCom_PaperDecorative0036_3_S_seg_scrop/TexturesCom_PaperDecorative0036_3_S_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.122486 2 | 0 0.57 121 0 1.324 0.07 0.263 1.053 1 2 0 2 0 0 0.01 4 2 0.912 1.93 8 12 2.982 0.456 5 1 1 0.605 0.5 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/dots/TexturesCom_RustPaint0069_S_seg_scrop/TexturesCom_RustPaint0069_S_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.231144 2 | 1 0.605 66 0.474 2.77077 0 0 1.13145 0 10 0 2.053 0 0 0.29 1 2 1 5 9 9 0.614 0 13 0.096 0.106 0.2 0.286 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/dots/TexturesCom_Snow0065_2_S_seg_scrop/TexturesCom_Snow0065_2_S_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.427876 2 | 0 1 40 0.95 1.237 0.022 0.596 2.211 1 5.158 0 2 2 0 0.5 2 2 0.307 5 9 9 3.596 0.114 1 0 0.115 1 0.241 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/dots/TexturesCom_Snow0067_2_S_seg_scrop/TexturesCom_Snow0067_2_S_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.339653 2 | 8 1 25 0.975 1.412 0.015 0.509 3.123 1 2.351 1 2 2 0.57 0.5 2 2 1 0 5 5 0.789 1 0 0.167 0.281 0 0 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/dots/TexturesCom_Snow0068_2_S_seg_scrop/TexturesCom_Snow0068_2_S_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.353252 2 | 5 1 21 0.386 2.902 0.022 0.184 4 1 3.193 1 2 2 0 0.5 2 2 1 5 1 12 10 0 0 1 1 0 0.145 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/dots/animalskin_seg_scrop/animalskin_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.381504 2 | 6 1 20 0.444 0.936058 0.0152374 0.468966 0.796312 1 2.615 0 2 2 1 0.7 2 2 0 5 3 9 0.256 0.128 1 0 0.846 0 0.009 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/dots/blotchy_concrete_2566_seg_scrop/blotchy_concrete_2566_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.328122 2 | 0 1 55 0 1 0.018 0.588 4 1 3.614 0 3 2 0.342 1.27 1 2 0.737 0 4 5 1.579 0.044 1 0 0.299 0.605 0.342 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/dots/bumpy_hard_concrete_texture_9261475_seg_scrop/bumpy_hard_concrete_texture_9261475_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.517216 2 | 0 1 28 0 1 0.026 0.447 1.86 1 10 0 2 2 0.456 0.01 2 2 1 1.93 1 5 1.93 0.167 2 0 1 0 0.5 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/dots/hair4_324_seg_scrop/hair4_324_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.431308 2 | 1 1 30 0.975001 1.974 0.002 0 1 1 2.889 0 2 2 1 1 0 2 0 5 5 5 2 0.2 1 0 1 0 0.45 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/dots/metal_2202896_seg_scrop/Other/metal_2202896_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.311909 2 | 1 0.28 76 0 0.833117 0.049 0.467 1 0 2 1 2 0 0.738 0.5 2 2 0.794 5 5 5 10 1 8 1 0.328 0 0.21 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/dots/metal_2202896_seg_scrop/metal_2202896_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.311909 2 | 0 0.026 36 0 1.324 0.02 0.395 2.947 1 10 0 2 2 0.193 4 1 2 0.518 5 9 9 3.07 0.456 1 0 0.325 0.596 0.105 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/folds/TexturesCom_WrinklesHomogeneous0024_S_seg_scrop/TexturesCom_WrinklesHomogeneous0024_S_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.454279 2 | 5 0.325 60 0 1 0 0.456 0.561 0 2 1 1 2 0.658 4 2 2 0 5 1 2 0.877 1 1 0 1 1 0.425 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/grains/TexturesCom_FloorsMarble0032_2_S_seg_scrop/TexturesCom_FloorsMarble0032_2_S_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.196462 2 | 6 0.675 51 1.825 5.18 0.026 0.675 2.596 0 10 1 2 0 0.6 0.5 2 2 0 5 12 12 10 1 7 0 1 0 0.5 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/grains/TexturesCom_PlywoodOld0027_1_M_seg_scrop/OtherPossibilities/TexturesCom_PlywoodOld0027_1_M_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.476118 2 | 0 0.033 161 0 7.11 0.01 1 2.182 1 6.298 1 2 2 0 4 2 2 1 0 1 1 3.471 1 7 0 0.117 0.876 0.5 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/grains/TexturesCom_PlywoodOld0027_1_M_seg_scrop/TexturesCom_PlywoodOld0027_1_M_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.476118 2 | 0 1 239 0 4.056 0.033 0.702 4 1 6.298 1 2 2 0 4 2 2 1 0 1 1 3.471 0.876 6 0 0.117 1 0.5 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/grains/Woodbig_seg_scrop/Woodbig_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.591684 2 | 1 0.01 75 0 1.324 0.015 0 1.298 0 10 0 2 0 0 0.5 2 2 0 5 9 9 0.439 0.316 2 0 0.062 1 0 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/grains/cracked_wooden_plank_7090594_seg_scrop/cracked_wooden_plank_7090594_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.925575 2 | 0 0 47 0.5 1 0.154 0.359 0.547 1 6.991 0 2 0.547 0 0.726 4 2 0.915 5 1 2 1.709 0 1 0 1 0.239 0 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/grains/whiteash_seg_scrop/whiteash_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.434525 2 | 8 0.033 331 0 2.288 0.061 0.57 2.351 1 6.298 1 2 2 0 4 2 2 1 0 2 12 0 0.404 12 0 0.395 0.93 0 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/lines/TexturesCom_Fur0005_1_M_seg_scrop/TexturesCom_Fur0005_1_M_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.182392 2 | 0 0 211 0 0.505 0.25 0.496 0.496 0 5.702 0 2 0 0 0.5 2 2 1 2.86 0 5 1.81 1 1 1 0.282 1 0 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/lines/TexturesCom_Grungemaps0127_1_S_seg_scrop/TexturesCom_Grungemaps0127_1_S_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.474865 2 | 0 0 51 0 1.07382 0 0 0 0 10 0 2 0 0 0.5 1 2 0.645 5 8 8 0 1 16 0 0.001 0.752 0 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/lines/TexturesCom_GrungemapsWeird0009_2_S_seg_scrop/TexturesCom_GrungemapsWeird0009_2_S_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.661682 2 | 9 0.595 51 0.125 0.77361 0.068147 0.0507787 1.00652 0 10 0 2 0 0 0.5 4 2 1 5 2 5 0.405 1 4 0 0.143 0.687 0.413088 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/lines/TexturesCom_MetalScratches0039_1_S_seg_scrop/TexturesCom_MetalScratches0039_1_S_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.120544 2 | 5 1 26 0.158 2.113 0.011 0 2.982 0 5.719 0 2 0 0 0.5 1 2 0 5 0 12 10 1 2 1 0.089 0.789 0.351 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/lines/TexturesCom_MetalScratches0100_1_S_seg_scrop/TexturesCom_MetalScratches0100_1_S_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.63052 2 | 4 0.735 510 0.5 2.48471 0.25 0.735 0.752 1 10 1 2 0 0 0.5 4 2 0 0 3 8 0 0 11 0 0.607 0 0.308 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/lines/TexturesCom_MetalScratches0105_1_S_seg_scrop/TexturesCom_MetalScratches0105_1_S_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.32412 2 | 4 0.795 171 0 2.657 0.034 0 2.769 2 10 1 2 0 0 0.5 4 2 0 0 8 8 1 0.2 3 0 0.001 0 0.5 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/lines/TexturesCom_SoilMud0040_1_seamless_S_seg_scrop/TexturesCom_SoilMud0040_1_seamless_S_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.390327 2 | 0 1 155 0.421 1 0.061 0.14 0.456 0 10 0 2 0 0 0.5 4 2 0.333 5 0 6 3.684 0.5 3 0 1 1 0.5 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/lines/phasor_seg_scrop/phasor_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.5805 2 | 4 0 50 0 0.8 0 0 0 0 10 0 2 0 0 0.5 2 2 0.088 5 1 1 0 0 2 0 1 1 0 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/maps/TexturesCom_Grungemaps0033_1_S_seg_scrop/TexturesCom_Grungemaps0033_1_S_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.638832 2 | 4 0 17 0 1.205 0.015 0.222 2.53 0 10 0 2 0 0 1.067 1 2 0 5 1 5 0 0.274 1 1 1 0.248 0.155339 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/maps/TexturesCom_Grungemaps0102_S_seg_scrop/TexturesCom_Grungemaps0102_S_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.319607 2 | 7 0.193 41 0.125 0.88984 0.023 0.544 4 0 10 0 2 0 0.675 0.01 2 2 0 5 1 12 1.053 1 2 0 1 0 0.5 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/maps/TexturesCom_MetalPainted0043_1_M_seg_scrop/TexturesCom_MetalPainted0043_1_M_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.479275 2 | 1 0.615 71 0 0.821413 0.0468124 0.755353 0.921467 1 2 0 1 2 0 0.7 1 2 0 0.085 1 2 0.513 0.427 0 0 1 0.282 0.231 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/maps/TexturesCom_Moss0280_2_seamless_S_seg_scrop/TexturesCom_Moss0280_2_seamless_S_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.54446 2 | 7 0.188 64 0 1.22592 0.0601778 0.536337 1.82317 1 10 0 2 0 0 0.5 1 2 0 5 9 9 2 0.2 0 0 1.05267 0 0.519965 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/maps/TexturesCom_PlasterPaintWorn0112_S_seg_scrop/TexturesCom_PlasterPaintWorn0112_S_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.550888 2 | 7 0.132603 54 0 0.91602 0.0246635 0.519069 4 0 10 0 2 0 0 0.5 1 2 0 0 1 1 1 0.2 1 0 1.03402 1 0 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/maps/TexturesCom_PlasterPaintWorn0114_1_S_seg_scrop/TexturesCom_PlasterPaintWorn0114_1_S_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.472038 2 | 7 0 39 0 0.804567 0.128 0.538 0.92 1 5.487 1 2 0.872 0 1.954 1 2 0 0 1 1 2.051 0 1 0 1 0 0 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/maps/TexturesCom_RockMossy0028_S_seg_scrop/TexturesCom_RockMossy0028_S_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.515873 2 | 6 0.77 82 0 3.4 0.1 0.757 0.85 1 4 0 2 0 0.434 0.7 4 2 0.215 2.5 1 4 0.561 0 1 0 0.84 0 0 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/maps/TexturesCom_RockMossy0052_2_M_seg_scrop/TexturesCom_RockMossy0052_2_M_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.718159 2 | 4 0.00719275 56 -0.5 2.90738 0.0839879 0.57675 1.07522 1 4 0.238504 2 1.05337 0.579 0.395 1 2 1 5 5 6 2 0.2 1 0 0.921 1 0.347 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/maps/TexturesCom_RustMixed0090_1_S_seg_scrop/TexturesCom_RustMixed0090_1_S_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.765167 2 | 0 0.526 51 0 1 0.026 0.421 4 0 2 0 2 2 0.754 0.01 2 2 1 5 1 3 0 0 1 0 1 0 0.5 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/maps/foam_texture_seg_scrop/foam_texture_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.478721 2 | 7 0.311 50 0.0397887 1.047 0.017 0.689 1 0 10 0 2 0 0.001 0.5 2 2 0.33 0 1 3 0.66 1 0 1 1 0 0 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/networks/Marble_seg_scrop/Marble_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.0719757 2 | 6 1 191 0 3.05903 0.024 0.402 4 0 10 0 2 0 0 0.5 4 2 0.786 5 0 8 0.342 1 16 0 0.744 1 0.291 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/networks/TexturesCom_ConcreteFloors0099_S_seg_scrop/TexturesCom_ConcreteFloors0099_S_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.868259 2 | 4 0.256 85 0.598 0.850971 0.013 0.692 2.496 1 10 0.658 2 0 0.701 0.7 2 2 0 0 9 10 0.855 0.855 1 1 0.0844974 1 0 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/networks/dotted_cracked_concrete_9290255_seg_scrop/dotted_cracked_concrete_9290255_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.930412 2 | 3 0.684 31 0.125 1.01197 0.028 0.517177 2.02139 1 3.983 0 2 2 0.726 0.01 1 2 0 0 7 8 1.966 0 7 0 0.001 0 0.342 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/networks/paint_262665_seg_scrop/paint_262665_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.894505 2 | 5 0.494888 67 0 1.11809 0.038 0.385 4 1 8 0 2 0 0.786 0.7 1 2 0.627254 5 1 1 2 0.2 0 0 1.22566 0 0.46088 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/piles/TexturesCom_Farmland0050_1_seamless_S_seg_scrop/TexturesCom_Farmland0050_1_seamless_S_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.462013 2 | 7 0.906 30 0 1 0 0 0 1 10 1 2 0 0 0.5 3 2 1 5 2 8 10 0.017 1 0 0.018 0.222 0.5 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/piles/TexturesCom_GravelCobble0007_S_seg_scrop/TexturesCom_GravelCobble0007_S_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.844601 2 | 1 0.462 75 0 0.8 0.075 0.5 1 0 10 0 2 0 0 0.5 3 2 1 0 9 9 1 0.2 0 0 1 0 0 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/piles/TexturesCom_GravelSpecial0012_S_seg_scrop/TexturesCom_GravelSpecial0012_S_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.883667 2 | 0 1 24 0 1 0.013 0 1.607 1 7.88 0.820355 2 0 1 0.7 3 2.692 0 0 1 1 0.513 0.427 0 0 1 1 0.5 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/piles/TexturesCom_MetalBare0186_M_seg_scrop/TexturesCom_MetalBare0186_M_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.718472 2 | 5 0.41 550 0.923 3.767 0 0 1 0 8.496 0.393 2.06 0 0 0.7 3 2 0 5 0 3 1.282 0.179 11 0 0.471 1 0.299 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/piles/TexturesCom_WoodChips0045_1_S_seg_scrop/TexturesCom_WoodChips0045_1_S_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.442253 2 | 7 0 20 0 1.291 0 0 1 0 10 0 2 0 0 0.5 3 2 0 3.675 0 7 2 0.2 1 0 0.24 0.949 0.45 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/piles/coarse_hair_071009_seg_scrop/coarse_hair_071009_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.567465 2 | 0 0.752 111 0.923 0.778 0.056 0.487 0.718 1 10 1 2 0 0 0.5 3 2 0 2.137 3 8 0.513 0 11 0 0.146 0 0.056 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/piles/pebbles_seg_scrop/pebbles_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.744573 2 | 1 0.402 192 0 0.775347 0.038 0.692 0.889 1 3 0 1.923 2 0 1.238 3 2.248 0 0.641 8 8 1.709 0.265 0 1 0.18 0 0.5 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/piles/straw_seg_scrop/straw_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.450664 2 | 0 0.01 75 0.125 1 0.006 0.05 2 0 10 0 2 0 0.001 0.5 3 2 0 5 9 9 10 0.2 2 0 0.1 1 0.45 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/tilings/TexturesCom_BrickOldMixedSize0026_S_seg_scrop/TexturesCom_BrickOldMixedSize0026_S_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.899284 2 | 17 0.35 265 0 1 0 0 0.782426 1 6.034 1 2 0.547 1 4 2 2 1 5 0 5 3.846 0.316 1 1 1 0 0 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/tilings/TexturesCom_BrickOldMixedSize0065_1_S_seg_scrop/TexturesCom_BrickOldMixedSize0065_1_S_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.894043 2 | 4 0.588 73 0 2.83868 0.005 0.614 1.673 1 4.876 0.863 2 2 1 0.688 1 2 0.784 5 5 6 6.209 1 1 0 0.047 0.686 0 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/tilings/TexturesCom_BrickOldRounded0068_M_seg_scrop/TexturesCom_BrickOldRounded0068_M_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.814526 2 | 5 0.538 49 0 3.284 0.003 0.311 2.286 1 7.244 1 2 1.176 1 2.793 2 2 0.538 0 2 8 0.756 0.975 0 0 1 0 0 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/tilings/TexturesCom_BrickRound0134_2_seamless_S_seg_scrop/TexturesCom_BrickRound0134_2_seamless_S_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.614287 2 | 12 0.581 153 0.27 0.808 0.017 0.265 0.909687 1 3.436 0.137 2 2 1 0.01 2 2 0.145 0.812 1 8 0.513 0.556 1 0 1 0 0.5 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/tilings/TexturesCom_BrickSmallBrown0456_1_M_seg_scrop/TexturesCom_BrickSmallBrown0456_1_M_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.871639 2 | 4 0 42 0 3.5 0 0 0 1 10 1 2 2 1 1 0 2 0 0 0 0 4 0.2 0 0 1.18371 0 0 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/tilings/TexturesCom_ConcreteFloors0005_3_S_seg_scrop/TexturesCom_ConcreteFloors0005_3_S_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.8829 2 | 0 0.077 96 0 1 0 0 1 1 10 1 2 0 1 1 0 2 0 5 0 0 1 0.2 0 0 1 0 0 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/tilings/TexturesCom_ConcreteFloors0045_2_S_seg_scrop/TexturesCom_ConcreteFloors0045_2_S_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.830738 2 | 0 0 155 0 1 0 0 1 1 5.829 1 2 2 1 0.01 0 2 0 0 0 0 4 0.2 0 0 1 0 0 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/tilings/TexturesCom_ConcreteFloors0058_1_seamless_S_seg_scrop/TexturesCom_ConcreteFloors0058_1_seamless_S_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.881195 2 | 0 0 100 0 1 0 0 1 1 10 1 2 2 0.983 0.7 0 2 0.7 0 0 0 1 0.2 0 0 1 0 0 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/tilings/TexturesCom_FloorHerringbone0070_2_S_seg_scrop/TexturesCom_FloorHerringbone0070_2_S_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.633596 2 | 10 0 490 0.25 1 0 0 0.767548 1 6.376 1 2 2 1 0.7 0 2 0 0 0 0 4 0.2 0 0 1.02477 0 0 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/tilings/TexturesCom_FloorHerringbone0084_2_S_seg_scrop/TexturesCom_FloorHerringbone0084_2_S_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.80632 2 | 10 0 220 0.25 1 0.004 1 0.991 1 5.556 1 2 2 1 0.7 1 2 0 5 1 6 0.94 1 16 0 0.01 0 0.5 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/tilings/TexturesCom_FloorsHexagonal0029_2_S_seg_scrop/TexturesCom_FloorsHexagonal0029_2_S_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.825787 2 | 5 0 55 0.79 2.315 0 0 0 1 10 0 1.855 0 1 0.7 0 2 0 5 0 0 2 0.2 1 1 0.0794908 0.667 0.5 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/tilings/TexturesCom_FloorsMarble0023_S_seg_scrop/TexturesCom_FloorsMarble0023_S_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.946308 2 | 0 0 80 0 0.96 0 0 0 1 10 1 2 0 1 1 0 2 0 0 0 0 0.085 1 1 0 0.001 0 0 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/tilings/TexturesCom_FloorsMedieval0047_1_S_seg_scrop/TexturesCom_FloorsMedieval0047_1_S_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.810925 2 | 0 0.385 125 0 1.05 0.009 0.667 2.735 1 5.214 0.88 2 0.462 1 0.7 1 2 0.103 0 3 8 2.65 0 8 0 1 0.205 0.5 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/tilings/TexturesCom_FloorsMedieval0058_S_seg_scrop/TexturesCom_FloorsMedieval0058_S_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.812855 2 | 0 0.282 70 -0.5 1.2299 0.019 0.299 3.453 1 5.145 1 1.581 2 1 0.7 2 2 0.462 5 5 8 0 0.2 2 0 1 0 0.303 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/tilings/TexturesCom_FloorsMixedSize0019_S_seg_scrop/TexturesCom_FloorsMixedSize0019_S_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.909718 2 | 17 0 270 0 1 0.013 0.342 3.043 1 7.06 0.735 3 2 1 0.01 1 2 0 1.282 4 8 0.855 0.2 9 0 0.257 0.256 0.269 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/tilings/TexturesCom_FloorsMixedSize0028_1_S_seg_scrop/TexturesCom_FloorsMixedSize0028_1_S_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.77275 2 | 7 0 50 0.015 1.5 0.013 0.222 0.855 1 5.487 0.932 2 0.256 1 0.7 2 2 0 5 8 8 0.855 0.256 3 0 1 1 0.325 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/tilings/TexturesCom_FloorsPortuguese0052_S_seg_scrop/TexturesCom_FloorsPortuguese0052_S_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.818203 2 | 2 0.744 113 0.025 1 0.013 0.641 2.701 1 5.966 0.538 3 1.043 1 0.7 2 2 0 5 1 6 0.085 0.325 1 0 0.266 0.171 0 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/tilings/TexturesCom_FloorsVarious0030_S_seg_scrop/TexturesCom_FloorsVarious0030_S_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.68697 2 | 14 0 510 0 1 0 0 1 1 3.965 1 2.088 1.088 1 0.955 0 2 0 0.614 1 1 0.614 0.228 1 0 1 0 0 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/tilings/TexturesCom_Leather0028_1_S_seg_scrop/TexturesCom_Leather0028_1_S_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.492981 2 | 0 0.0142572 22 0.051 0.815741 0.0197081 0.103 0.889 1 8 0 3 0 0.1 0.7 0 2 0 0 0 0 4 0.2 0 0 1.05575 0 0 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/tilings/TexturesCom_MarbleTiles0042_3_S_seg_scrop/TexturesCom_MarbleTiles0042_3_S_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.947655 2 | 0 0 145 0 0.437 0 0 0 1 10 1 1.393 0 1 0.078 0 2 0 5 0 0 0 0 0 0 1 0 0 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/tilings/TexturesCom_MetalVarious0026_1_seamless_S_seg_scrop/TexturesCom_MetalVarious0026_1_seamless_S_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.846596 2 | 14 0 215 0.35 1 0 0 1 1 10 0 2 0 1 0.7 0 2 0 0 0 0 2 0.2 1 1 0.1 1 0 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/tilings/TexturesCom_TilesAzulejoBlue0066_1_S_seg_scrop/TexturesCom_TilesAzulejoBlue0066_1_S_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.916214 2 | 0 0.615 101 0 1 0 0.094 1.12091 1 10 1 2 0 1 0.7 1 2 0 0 8 8 2 0.2 1 0 1 0 0.325 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/tilings/TexturesCom_TilesBroken0023_11_S_seg_scrop/TexturesCom_TilesBroken0023_11_S_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.838234 2 | 0 0.00521424 94 0 0.77 0 0 0.884632 1 8 1 2 0 1 2 0 2 0 0 0 0 4 0.2 0 0 0.933752 0 0 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/tilings/TexturesCom_TilesBroken0024_2_seamless_S_seg_scrop/TexturesCom_TilesBroken0024_2_seamless_S_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.926815 2 | 4 0 100 0.5 1 0 0 0 1 10 1 2 0 1 2.465 0 2 0 0 0 0 1 0.2 0 0 1 0 0 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/tilings/TexturesCom_TilesPlain0268_1_S_seg_scrop/TexturesCom_TilesPlain0268_1_S_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.795532 2 | 0 0.231 75 0 1 0.006 0 0 1 10 1 2 1 1 1 0 2 0 0 0 0 4 0.2 0 0 1 0 0 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/tilings/TexturesCom_TilesSmall0130_1_seamless_S_seg_scrop/TexturesCom_TilesSmall0130_1_seamless_S_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.774559 2 | 4 0 50 0 1.145 0 0 1.17105 1 3.573 0 2 2 1 0.01 2 2 1 1.5 1 1 0 0 2 0 1 0.5 0 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/tilings/TexturesCom_TilesSmall0142_2_seamless_M_seg_scrop/TexturesCom_TilesSmall0142_2_seamless_M_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.87973 2 | 0 1 100 0 1 0.002 1 2.598 1 10 0.735 2 0.291 1 1.476 1 2 0 0 8 9 2 0.2 2 1 1 0.5 0.5 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/tilings/TexturesCom_TilesSmall0145_1_L_seg_scrop/TexturesCom_TilesSmall0145_1_L_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.857418 2 | 4 0 40 0.5 1.1 0 0 1 1 10 0 2 0 1 0.571 0 2 0 0 1 1 2 0.2 0 0 1 0 0 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/tilings/TexturesCom_TilesSmall0151_1_S_seg_scrop/TexturesCom_TilesSmall0151_1_S_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.788094 2 | 15 0.01 301 0.137 1 0 0 0 1 8 0.3 2 0 0.6 0.7 4 2 1 0 6 9 2 0.2 0 0.63662 0.1 1 0 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/tilings/TexturesCom_TilesZellige0164_3_seamless_S_seg_scrop/TexturesCom_TilesZellige0164_3_seamless_S_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.899353 2 | 0 0.150761 99 0.25 1 0 0 0 1 8 1 2 0 1 0.7 0 2 0 5 0 0 2 0.2 0 0 0.785142 0 0.425119 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/tilings/TexturesCom_WoodBamboo0043_3_seamless_S_seg_scrop/TexturesCom_WoodBamboo0043_3_seamless_S_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.860439 2 | 8 0 39 0.5 5.5 0 0 0 1 10 0.479 2 2 1 1 0 1 0 0 0 0 10 0.256 0 0.444 1 0.47 0 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/tilings/bricks_seg_scrop/bricks_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.71628 2 | 8 0.735 92 0 2.72727 0.005 0.692 1.538 1 5.487 0.786 2 0.564 1 0.7 2 2 0 5 5 8 0.171 0.2 1 0 0.419 0 0 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/tilings/concrete_bricks_3141196_seg_scrop/concrete_bricks_3141196_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.854366 2 | 4 0 121 0 2 0 0 1 1 10 1 2 2 1 0.487 0 2 0 0 0 0 4 0.2 0 0 1.01583 0 0 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/tilings/deephexa_seg_scrop/deephexa_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.780024 2 | 4 0 85 1.504 1.1219 0 0 0 1 10 0 2 0 1 0.7 0 2 0 0 0 0 4 0.2 0 0 1 0 0 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/tilings/deeptiling_seg_scrop/deeptiling_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.917968 2 | 8 0.513 125 0 0.8 0 0 1 1 10 1 2 0 1 1.272 2 2 1 5 1 2 0 0 4 0.5 1 0.385 0 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/tilings/deepwall_seg_scrop/deepwall_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.871445 2 | 0 0 101 0 1 0 0 0 1 10 1 2 2 0.9 0.01 0 2 0 0 0 0 1 0.2 4 0 1 0 0 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/tilings/snake_scales_seg_scrop/snake_scales_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.733067 2 | 4 0 63 0.94 1.632 0.043 0.043 0.752 1 2 0 1.701 2 0.453 1.545 2 1 0.983 3.291 1 1 5.812 0 1 0 1 0.556 0 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/tilings/wicker_seg_scrop/wicker_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.769438 2 | 10 0 165 0.2675 1.4 0 0 0 1 5.829 0.598 2 2 1 0.7 0 2 0 5 0 0 2 0.2 1 1 0.0794908 0.667 0.5 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/waves/Ripples_cropped_seg_scrop/Ripples_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.548806 2 | 0 0 52 0.322 1 0.025 0.237 0.415 0 10 0 2 0 0.001 0.5 2 2 0.322 4.534 1 1 0.085 0 2 0 1 1 0 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/waves/TexturesCom_BrushStrokes0015_M_seg_scrop/TexturesCom_BrushStrokes0015_M_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.301418 2 | 0 0 60 0 1 0 0 0 0 10 0 2 0 0.001 0.5 2 3 1 0 2 8 1.602 0 1 1 1 0 0.091 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/waves/TexturesCom_Plastic0017_1_M_seg_scrop/TexturesCom_Plastic0017_1_M_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.820179 2 | 0 0.00861339 75 0 2.47733 0.002 0.471 1 0 10 0 2 0 0.001 0.5 2 2 0.875 0 1 1 1 0.2 1 0 0.995949 0 0 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/waves/TexturesCom_Rubber0050_1_seamless_S_seg_scrop/TexturesCom_Rubber0050_1_seamless_S_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.240246 2 | 0 0 28 0.5 1 0 0 0 1 10 0 2 2 0 0.7 2 2 1 5 1 1 10 0 1 0 0.932 0 0 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/waves/TexturesCom_SoilBeach0087_1_seamless_S_seg_scrop/TexturesCom_SoilBeach0087_1_seamless_S_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.525692 2 | 5 1 57 0.443 0.752197 0.028 0.59 0.684 0 10 0 2 0 0 0.5 2 2 0 5 1 1 0 0 2 0 1 1 0.115 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/waves/TexturesCom_WoodBurned0074_2_seamless_S_seg_scrop/TexturesCom_WoodBurned0074_2_seamless_S_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.894531 2 | 0 0 82 0 1 0 0 1 1 8 0 2 0 0 0.7 4 2 1 5 1 1 3.504 0 0 0 0.991 0 0 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/waves/TexturesCom_WoodLogs0051_7_seamless_S_seg_scrop/TexturesCom_WoodLogs0051_7_seamless_S_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.895672 2 | 4 0 38 0.5 3 0 0 1 1 8 0 2 0 0 0.7 4 2 1 5 1 1 6.325 0 0 0 1 0 0 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/waves/lined_woolen_material_2020103_seg_scrop/lined_woolen_material_2020103_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.782127 2 | 4 0 98 0 1 0.026 0.137 1.128 0 10 0 2 0 0 0.5 4 2 1 5 1 1 1 0 0 0 0.351 0 0 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Matching_structures/waves/wavy_fossilized_stone_5140152_seg_scrop/wavy_fossilized_stone_5140152_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.563278 2 | 0 0.0100481 56 0 2.24658 0.03 0.239 0.615 0 10 0 2 0 0.001 0.5 4 2 1 5 1 1 1 0.538 2 0 0.826617 1 0 3 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/README.md: -------------------------------------------------------------------------------- 1 | The "Matching_structures" directory contains the PPTBF parameters files that have been used for the supplemetal material #2 and the figure 11 or our article. 2 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Shaders/PPTBF/binaryStructureMap_frag.glsl: -------------------------------------------------------------------------------- 1 | //////////////////////////////////////////////////////////////////////////////// 2 | // 3 | // FRAGMENT SHADER 4 | // 5 | //////////////////////////////////////////////////////////////////////////////// 6 | 7 | /****************************************************************************** 8 | * Publication: By-Example Point Process Texture Basis Functions 9 | * Authors: anonymous 10 | ******************************************************************************/ 11 | 12 | //////////////////////////////////////////////////////////////////////////////// 13 | // VERSION 14 | //////////////////////////////////////////////////////////////////////////////// 15 | 16 | // OpenGL 17 | #version 460 18 | 19 | // WebGL 20 | //#version 300 es 21 | //precision highp float; 22 | 23 | //////////////////////////////////////////////////////////////////////////////// 24 | // INPUT 25 | //////////////////////////////////////////////////////////////////////////////// 26 | 27 | // Texture coordinates 28 | in vec2 texCoord; 29 | 30 | //////////////////////////////////////////////////////////////////////////////// 31 | // OUTPUT 32 | //////////////////////////////////////////////////////////////////////////////// 33 | 34 | layout (location = 0) out vec4 oColor; 35 | 36 | //////////////////////////////////////////////////////////////////////////////// 37 | // UNIFORM 38 | //////////////////////////////////////////////////////////////////////////////// 39 | 40 | // Texture 41 | uniform sampler2D uTexture; 42 | 43 | uniform float uThreshold; 44 | uniform float uMinValue; 45 | uniform float uMaxValue; 46 | uniform float uMeanValue; 47 | uniform int uSelected; 48 | 49 | //////////////////////////////////////////////////////////////////////////////// 50 | // PROGRAM 51 | //////////////////////////////////////////////////////////////////////////////// 52 | void main() 53 | { 54 | // Retrieve PPTBF 55 | float pptbf = texture( uTexture, texCoord ).r; 56 | 57 | // Check data validity 58 | if ( isnan( pptbf ) || isinf( pptbf ) ) 59 | { 60 | pptbf = 0.0; 61 | } 62 | 63 | // Normalization 64 | if ( pptbf < uMeanValue ) 65 | { 66 | pptbf = ( pptbf - uMinValue ) / ( uMeanValue - uMinValue ) * 0.5; 67 | } 68 | else 69 | { 70 | pptbf = ( pptbf - uMeanValue ) / ( uMaxValue - uMeanValue ) * 0.5 + 0.5; 71 | } 72 | 73 | // Threshold => binary structure map 74 | vec3 color = vec3( 0.0 ); 75 | if ( pptbf > uThreshold ) 76 | { 77 | // - binary structure map 78 | if ( uSelected == 1 ) 79 | { 80 | color = vec3( 1.0, 0.0, 0.0 ); 81 | } 82 | else 83 | { 84 | color = vec3( 1.0 ); 85 | } 86 | } 87 | 88 | // Write color 89 | oColor = vec4( color, 1.0 ); 90 | } 91 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Shaders/PPTBF/fullscreenTexturedTriangle_color_frag.glsl: -------------------------------------------------------------------------------- 1 | //////////////////////////////////////////////////////////////////////////////// 2 | // 3 | // FRAGMENT SHADER 4 | // 5 | //////////////////////////////////////////////////////////////////////////////// 6 | 7 | /****************************************************************************** 8 | * Publication: By-Example Point Process Texture Basis Functions 9 | * Authors: anonymous 10 | ******************************************************************************/ 11 | 12 | //////////////////////////////////////////////////////////////////////////////// 13 | // VERSION 14 | //////////////////////////////////////////////////////////////////////////////// 15 | 16 | // OpenGL 17 | #version 460 18 | 19 | //////////////////////////////////////////////////////////////////////////////// 20 | // INPUT 21 | //////////////////////////////////////////////////////////////////////////////// 22 | 23 | // Texture coordinates 24 | in vec2 texCoord; 25 | 26 | //////////////////////////////////////////////////////////////////////////////// 27 | // OUTPUT 28 | //////////////////////////////////////////////////////////////////////////////// 29 | 30 | layout (location = 0) out vec4 oColor; 31 | 32 | //////////////////////////////////////////////////////////////////////////////// 33 | // UNIFORM 34 | //////////////////////////////////////////////////////////////////////////////// 35 | 36 | // Texture 37 | uniform sampler2D uTexture; 38 | 39 | //////////////////////////////////////////////////////////////////////////////// 40 | // PROGRAM 41 | //////////////////////////////////////////////////////////////////////////////// 42 | void main() 43 | { 44 | vec3 color = texture( uTexture, texCoord ).rgb; 45 | oColor = vec4( color, 1.0 ); 46 | } 47 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Shaders/PPTBF/fullscreenTexturedTriangle_frag.glsl: -------------------------------------------------------------------------------- 1 | //////////////////////////////////////////////////////////////////////////////// 2 | // 3 | // FRAGMENT SHADER 4 | // 5 | //////////////////////////////////////////////////////////////////////////////// 6 | 7 | /****************************************************************************** 8 | * Publication: By-Example Point Process Texture Basis Functions 9 | * Authors: anonymous 10 | ******************************************************************************/ 11 | 12 | //////////////////////////////////////////////////////////////////////////////// 13 | // VERSION 14 | //////////////////////////////////////////////////////////////////////////////// 15 | 16 | // OpenGL 17 | #version 460 18 | 19 | //////////////////////////////////////////////////////////////////////////////// 20 | // INPUT 21 | //////////////////////////////////////////////////////////////////////////////// 22 | 23 | // Texture coordinates 24 | in vec2 texCoord; 25 | 26 | //////////////////////////////////////////////////////////////////////////////// 27 | // OUTPUT 28 | //////////////////////////////////////////////////////////////////////////////// 29 | 30 | layout (location = 0) out vec4 oColor; 31 | 32 | //////////////////////////////////////////////////////////////////////////////// 33 | // UNIFORM 34 | //////////////////////////////////////////////////////////////////////////////// 35 | 36 | // Texture 37 | uniform sampler2D uTexture; 38 | 39 | uniform int uSelected; 40 | 41 | //////////////////////////////////////////////////////////////////////////////// 42 | // PROGRAM 43 | //////////////////////////////////////////////////////////////////////////////// 44 | void main() 45 | { 46 | float pptbf = texture( uTexture, texCoord ).x; 47 | 48 | vec3 color = vec3( pptbf ); 49 | 50 | // Selection 51 | vec3 selectionColor = vec3( 1.0 ); 52 | if ( uSelected == 1 ) 53 | { 54 | selectionColor = vec3( 1.0, 0.0, 0.0 ); 55 | } 56 | color *= selectionColor; 57 | 58 | oColor = vec4( color, 1.0 ); 59 | } 60 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Shaders/PPTBF/fullscreenTexturedTriangle_vert.glsl: -------------------------------------------------------------------------------- 1 | //////////////////////////////////////////////////////////////////////////////// 2 | // 3 | // VERTEX SHADER 4 | // 5 | //////////////////////////////////////////////////////////////////////////////// 6 | 7 | /****************************************************************************** 8 | * Publication: By-Example Point Process Texture Basis Functions 9 | * Authors: anonymous 10 | ******************************************************************************/ 11 | 12 | /****************************************************************************** 13 | * Procedural vertex shader 14 | * 15 | * Only one triangle covering screen is rendered 16 | * - there is neither no VBO, nor VAO: only 1 triangle with 3 points is requested as a draw command in the GL pipeline 17 | * - based on gl_VertexID, one can deduce triangle geometry on-th-fly and send data to clip space 18 | ******************************************************************************/ 19 | 20 | //////////////////////////////////////////////////////////////////////////////// 21 | // VERSION 22 | //////////////////////////////////////////////////////////////////////////////// 23 | 24 | // OpenGL 25 | #version 460 26 | 27 | //////////////////////////////////////////////////////////////////////////////// 28 | // INPUT 29 | //////////////////////////////////////////////////////////////////////////////// 30 | 31 | //////////////////////////////////////////////////////////////////////////////// 32 | // OUTPUT 33 | //////////////////////////////////////////////////////////////////////////////// 34 | 35 | // Texture coordinates 36 | out vec2 texCoord; 37 | 38 | //////////////////////////////////////////////////////////////////////////////// 39 | // UNIFORM 40 | //////////////////////////////////////////////////////////////////////////////// 41 | 42 | //////////////////////////////////////////////////////////////////////////////// 43 | // PROGRAM 44 | //////////////////////////////////////////////////////////////////////////////// 45 | void main() 46 | { 47 | // Compute vertex position 48 | float x = -1.0 + float( ( gl_VertexID & 1 ) << 2 ); 49 | float y = -1.0 + float( ( gl_VertexID & 2 ) << 1 ); 50 | 51 | // Compute texture coordinates 52 | texCoord.x = x * 0.5 + 0.5; 53 | texCoord.y = y * 0.5 + 0.5; 54 | //texCoord = texCoord * 0.5 + 0.5; 55 | 56 | // Send position to clip space 57 | gl_Position = vec4( x, y, 0.0, 1.0 ); 58 | } 59 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Shaders/PPTBF/histogram_frag.glsl: -------------------------------------------------------------------------------- 1 | //////////////////////////////////////////////////////////////////////////////// 2 | // 3 | // FRAGMENT SHADER 4 | // 5 | // Author(s): anonymous 6 | //////////////////////////////////////////////////////////////////////////////// 7 | 8 | /****************************************************************************** 9 | * Publication: By-Example Point Process Texture Basis Functions 10 | * Authors: anonymous 11 | ******************************************************************************/ 12 | 13 | /****************************************************************************** 14 | * ... 15 | ******************************************************************************/ 16 | 17 | //////////////////////////////////////////////////////////////////////////////// 18 | // VERSION 19 | //////////////////////////////////////////////////////////////////////////////// 20 | 21 | // OpenGL 22 | #version 460 23 | 24 | //////////////////////////////////////////////////////////////////////////////// 25 | // INPUT 26 | //////////////////////////////////////////////////////////////////////////////// 27 | 28 | //////////////////////////////////////////////////////////////////////////////// 29 | // OUTPUT 30 | //////////////////////////////////////////////////////////////////////////////// 31 | 32 | // Histogram 33 | //layout (location = 0) out vec4 oHistogram; 34 | layout (location = 0) out float oHistogram; 35 | 36 | //////////////////////////////////////////////////////////////////////////////// 37 | // UNIFORM 38 | //////////////////////////////////////////////////////////////////////////////// 39 | 40 | void main() 41 | { 42 | // Increment 1 in current histogram bin 43 | //oHistogram = vec4( 1.0, 0.0, 0.0, 0.0 ); 44 | oHistogram = 1.0; 45 | } 46 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Shaders/PPTBF/histogram_vert.glsl: -------------------------------------------------------------------------------- 1 | //////////////////////////////////////////////////////////////////////////////// 2 | // 3 | // VERTEX SHADER 4 | // 5 | // Author(s): anonymous 6 | //////////////////////////////////////////////////////////////////////////////// 7 | 8 | /****************************************************************************** 9 | * Publication: By-Example Point Process Texture Basis Functions 10 | * Authors: anonymous 11 | ******************************************************************************/ 12 | 13 | /****************************************************************************** 14 | * ... 15 | ******************************************************************************/ 16 | 17 | //////////////////////////////////////////////////////////////////////////////// 18 | // VERSION 19 | //////////////////////////////////////////////////////////////////////////////// 20 | 21 | // OpenGL 22 | #version 460 23 | 24 | //////////////////////////////////////////////////////////////////////////////// 25 | // INPUT 26 | //////////////////////////////////////////////////////////////////////////////// 27 | 28 | //////////////////////////////////////////////////////////////////////////////// 29 | // OUTPUT 30 | //////////////////////////////////////////////////////////////////////////////// 31 | 32 | //////////////////////////////////////////////////////////////////////////////// 33 | // UNIFORM 34 | //////////////////////////////////////////////////////////////////////////////// 35 | 36 | uniform sampler2D uTexture; 37 | uniform int uTextureWidth; 38 | 39 | //////////////////////////////////////////////////////////////////////////////// 40 | // PROGRAM 41 | //////////////////////////////////////////////////////////////////////////////// 42 | void main() 43 | { 44 | // Retrieve vertex position 45 | ivec2 vertexPos; 46 | vertexPos.x = gl_VertexID % uTextureWidth; 47 | vertexPos.y = gl_VertexID / uTextureWidth; 48 | 49 | // Retrieve PPTBF value 50 | float pptbf = texelFetch( uTexture, vertexPos, 0 ).r; 51 | 52 | // Rescale data to be able to send it to clip space [-1;1] 53 | float value = 2.0 * pptbf - 1.0; 54 | 55 | // IMPORTANT: 56 | // We remap value to the range [-1 + 1/nbBins ; 1 - 1/nbBins] 57 | // to avoid culling problem near clip space borders (i.e. lost data) 58 | // => i.e. one half pixel on each side 59 | int nbBins = textureSize( uTexture, 0/*LOD*/ ).x; 60 | value *= ( float( nbBins - 1 ) / float( nbBins ) ); 61 | 62 | // Output data to clip-space 63 | gl_Position = vec4( value, 0.0, 0.0, 1.0 ); 64 | } 65 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Shaders/PPTBF/meshRendering_bump_vert.glsl: -------------------------------------------------------------------------------- 1 | //////////////////////////////////////////////////////////////////////////////// 2 | // 3 | // VERTEX SHADER 4 | // 5 | // Front to back peeling 6 | // - This shader program is used render a mesh 7 | // 8 | //////////////////////////////////////////////////////////////////////////////// 9 | 10 | //////////////////////////////////////////////////////////////////////////////// 11 | // VERSION 12 | //////////////////////////////////////////////////////////////////////////////// 13 | 14 | #version 460 15 | 16 | //////////////////////////////////////////////////////////////////////////////// 17 | // INPUT 18 | //////////////////////////////////////////////////////////////////////////////// 19 | 20 | // Model space vertex position (i.e object space) 21 | layout (location = 0) in vec3 iPosition; 22 | layout (location = 1) in vec2 iTextureCoordinate; 23 | layout (location = 2) in vec3 iNormal; 24 | 25 | //////////////////////////////////////////////////////////////////////////////// 26 | // UNIFORM 27 | //////////////////////////////////////////////////////////////////////////////// 28 | 29 | // Model-View-Projection matrix 30 | uniform mat4 uViewMatrix; 31 | uniform mat4 uProjectionMatrix; 32 | 33 | // Model 34 | uniform mat4 uModelMatrix; 35 | uniform mat3 uNormalMatrix; 36 | 37 | // Bump/Displacement 38 | uniform float hmax; 39 | uniform float mirrored; 40 | uniform sampler2D uPPTBFTexture; 41 | 42 | //////////////////////////////////////////////////////////////////////////////// 43 | // OUTPUT 44 | //////////////////////////////////////////////////////////////////////////////// 45 | 46 | out vec3 vPosition; 47 | out vec2 vTextureCoordinate; 48 | out vec3 vNormal; 49 | 50 | //////////////////////////////////////////////////////////////////////////////// 51 | // PROGRAM 52 | //////////////////////////////////////////////////////////////////////////////// 53 | void main() 54 | { 55 | //float h = 0.1 * hmax * texture( uPPTBFTexture, iTextureCoordinate ).r; 56 | float h = 0.075 * hmax * texture( uPPTBFTexture, iTextureCoordinate ).r; 57 | h = h * h; 58 | 59 | //vec4 p_eye = uViewMatrix * uModelMatrix * vec4( iPosition, 1.0 ); 60 | vec4 p_eye = uViewMatrix * uModelMatrix * vec4( iPosition + h * iNormal, 1.0 ) ; 61 | 62 | vPosition = p_eye.xyz; 63 | vTextureCoordinate = iTextureCoordinate; 64 | vNormal = uNormalMatrix * iNormal; 65 | 66 | // Transform model space position to clip space 67 | gl_Position = uProjectionMatrix * p_eye; 68 | } 69 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Shaders/PPTBF/meshRendering_vert.glsl: -------------------------------------------------------------------------------- 1 | //////////////////////////////////////////////////////////////////////////////// 2 | // 3 | // VERTEX SHADER 4 | // 5 | // Front to back peeling 6 | // - This shader program is used render a mesh 7 | // 8 | //////////////////////////////////////////////////////////////////////////////// 9 | 10 | //////////////////////////////////////////////////////////////////////////////// 11 | // VERSION 12 | //////////////////////////////////////////////////////////////////////////////// 13 | 14 | #version 460 15 | 16 | //////////////////////////////////////////////////////////////////////////////// 17 | // INPUT 18 | //////////////////////////////////////////////////////////////////////////////// 19 | 20 | // Model space vertex position (i.e object space) 21 | layout (location = 0) in vec3 iPosition; 22 | layout (location = 1) in vec2 iTextureCoordinate; 23 | //layout (location = 2) in vec3 iNormal; 24 | 25 | //////////////////////////////////////////////////////////////////////////////// 26 | // UNIFORM 27 | //////////////////////////////////////////////////////////////////////////////// 28 | 29 | // Model-View-Projection matrix 30 | //uniform mat4 uModelViewProjectionMatrix; 31 | uniform mat4 uViewMatrix; 32 | uniform mat4 uProjectionMatrix; 33 | 34 | // Model 35 | uniform mat4 uModelMatrix; 36 | 37 | //////////////////////////////////////////////////////////////////////////////// 38 | // OUTPUT 39 | //////////////////////////////////////////////////////////////////////////////// 40 | 41 | out vec2 tc; 42 | 43 | //////////////////////////////////////////////////////////////////////////////// 44 | // PROGRAM 45 | //////////////////////////////////////////////////////////////////////////////// 46 | void main() 47 | { 48 | tc = iTextureCoordinate; 49 | 50 | // Transform model space position to clip space 51 | //gl_Position = uModelViewProjectionMatrix * vec4( iPosition, 1.0 ); 52 | gl_Position = uProjectionMatrix * uViewMatrix * uModelMatrix * vec4( iPosition, 1.0 ); 53 | } 54 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Install/PPTBFProject/bin/Data/Shaders/PPTBF/pptbf_megakernel_threshold_v2_comp.glsl: -------------------------------------------------------------------------------- 1 | //////////////////////////////////////////////////////////////////////////////// 2 | // 3 | // COMPUTE SHADER 4 | // 5 | // Author(s): Anonymous 6 | //////////////////////////////////////////////////////////////////////////////// 7 | 8 | //////////////////////////////////////////////////////////////////////////////// 9 | // Publication: By-Example Point Process Texture Basis Functions 10 | // Authors: Anonymous 11 | //////////////////////////////////////////////////////////////////////////////// 12 | 13 | //////////////////////////////////////////////////////////////////////////////// 14 | // VERSION 15 | //////////////////////////////////////////////////////////////////////////////// 16 | 17 | // OpenGL 18 | #version 460 19 | 20 | //////////////////////////////////////////////////////////////////////////////// 21 | // MACRO 22 | //////////////////////////////////////////////////////////////////////////////// 23 | 24 | //////////////////////////////////////////////////////////////////////////////// 25 | // INPUTS 26 | //////////////////////////////////////////////////////////////////////////////// 27 | 28 | // Block size 29 | // - 8x8 threads 30 | layout( local_size_x = 8, local_size_y = 8 ) in; 31 | 32 | //////////////////////////////////////////////////////////////////////////////// 33 | // OUTPUTS 34 | //////////////////////////////////////////////////////////////////////////////// 35 | 36 | //////////////////////////////////////////////////////////////////////////////// 37 | // UNIFORMS 38 | //////////////////////////////////////////////////////////////////////////////// 39 | 40 | // PPTBF map 41 | layout( r32f, binding = 0 ) uniform writeonly image2D uPPTBFThresholdImage; 42 | 43 | // PPTBF map 44 | layout( r32f, binding = 1 ) uniform readonly image2D uPPTBFImage; 45 | 46 | // Binary structure map 47 | uniform float uThreshold; 48 | 49 | //////////////////////////////////////////////////////////////////////////////// 50 | // FUNCTIONS 51 | //////////////////////////////////////////////////////////////////////////////// 52 | 53 | //////////////////////////////////////////////////////////////////////////////// 54 | // Main Function 55 | //////////////////////////////////////////////////////////////////////////////// 56 | 57 | /****************************************************************************** 58 | * main 59 | ******************************************************************************/ 60 | void main() 61 | { 62 | // Bounds check for unneeded threads 63 | ivec2 imSize = imageSize( uPPTBFImage ); 64 | ivec2 gid = ivec2( gl_GlobalInvocationID.xy ); 65 | if ( gid.x < imSize.x && gid.y < imSize.y ) 66 | { 67 | // Fetch deformation (scale, rotation, strecth) 68 | float pptbf = imageLoad( uPPTBFImage, gid ).x; 69 | 70 | // Thresholding 71 | pptbf = step( uThreshold, pptbf ); 72 | 73 | // Write deformed position 74 | imageStore( uPPTBFThresholdImage, gid/*coordinate*/, vec4( pptbf, 0.0, 0.0, 0.0 )/*data*/ ); 75 | } 76 | } 77 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/PtGraphics/PtGraphicsConfig.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Publication: Semi-Procedural Textures Using Point Process Texture Basis Functions 3 | * Authors: anonymous 4 | * 5 | * Code author: Pascal Guehl 6 | * 7 | * anonymous 8 | * anonymous 9 | */ 10 | 11 | /** 12 | * @version 1.0 13 | */ 14 | 15 | #ifndef _PT_GRAPHICS_CONFIG_H_ 16 | #define _PT_GRAPHICS_CONFIG_H_ 17 | 18 | /****************************************************************************** 19 | ******************************* INCLUDE SECTION ****************************** 20 | ******************************************************************************/ 21 | 22 | /****************************************************************************** 23 | ************************* DEFINE AND CONSTANT SECTION ************************ 24 | ******************************************************************************/ 25 | 26 | //*** GsGraphics Library 27 | 28 | // Static or dynamic link configuration 29 | #ifdef WIN32 30 | # ifdef PTGRAPHICS_MAKELIB // Create a static library. 31 | # define PTGRAPHICS_EXPORT 32 | # define PTGRAPHICS_TEMPLATE_EXPORT 33 | # elif defined PTGRAPHICS_USELIB // Use a static library. 34 | # define PTGRAPHICS_EXPORT 35 | # define PTGRAPHICS_TEMPLATE_EXPORT 36 | # elif defined PTGRAPHICS_MAKEDLL // Create a DLL library. 37 | # define PTGRAPHICS_EXPORT __declspec(dllexport) 38 | # define PTGRAPHICS_TEMPLATE_EXPORT 39 | # else // Use DLL library 40 | # define PTGRAPHICS_EXPORT __declspec(dllimport) 41 | # define PTGRAPHICS_TEMPLATE_EXPORT extern 42 | # endif 43 | #else 44 | # if defined(PTGRAPHICS_MAKEDLL) || defined(PTGRAPHICS_MAKELIB) 45 | # define PTGRAPHICS_EXPORT 46 | # define PTGRAPHICS_TEMPLATE_EXPORT 47 | # else 48 | # define PTGRAPHICS_EXPORT 49 | # define PTGRAPHICS_TEMPLATE_EXPORT extern 50 | # endif 51 | #endif 52 | 53 | // ---------------- GLM library Management ---------------- 54 | 55 | ///** 56 | // * To remove warnings at compilation with GLM deprecated functions 57 | // */ 58 | #define GLM_ENABLE_EXPERIMENTAL 59 | #define GLM_FORCE_RADIANS 60 | 61 | //#define _OS_USE_HOME_PATH_ 62 | 63 | #endif // !_PT_GRAPHICS_CONFIG_H_ 64 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/PtGraphics/PtGraphicsHistogram.hpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Publication: Semi-Procedural Textures Using Point Process Texture Basis Functions 3 | * Authors: anonymous 4 | * 5 | * Code author: Pascal Guehl 6 | * 7 | * anonymous 8 | * anonymous 9 | */ 10 | 11 | /** 12 | * @version 1.0 13 | */ 14 | 15 | /****************************************************************************** 16 | ******************************* INCLUDE SECTION ****************************** 17 | ******************************************************************************/ 18 | 19 | // Project 20 | #include "PtShaderProgram.h" 21 | 22 | /****************************************************************************** 23 | ***************************** METHOD DEFINITION ****************************** 24 | ******************************************************************************/ 25 | 26 | namespace PtGraphics 27 | { 28 | } // namespace PtGraphics 29 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/PtGraphics/PtGraphicsLibrary.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Publication: Semi-Procedural Textures Using Point Process Texture Basis Functions 3 | * Authors: anonymous 4 | * 5 | * Code author: Pascal Guehl 6 | * 7 | * anonymous 8 | * anonymous 9 | */ 10 | 11 | /** 12 | * @version 1.0 13 | */ 14 | 15 | #include "PtGraphicsLibrary.h" 16 | 17 | /****************************************************************************** 18 | ******************************* INCLUDE SECTION ****************************** 19 | ******************************************************************************/ 20 | 21 | // Project 22 | #include 23 | 24 | // GsGraphics 25 | //#include "GsGraphics/GsAssetResourceManager.h" 26 | 27 | /****************************************************************************** 28 | ****************************** NAMESPACE SECTION ***************************** 29 | ******************************************************************************/ 30 | 31 | // Project 32 | using namespace PtGraphics; 33 | 34 | /****************************************************************************** 35 | ************************* DEFINE AND CONSTANT SECTION ************************ 36 | ******************************************************************************/ 37 | 38 | /****************************************************************************** 39 | ***************************** TYPE DEFINITION ******************************** 40 | ******************************************************************************/ 41 | 42 | bool PtGraphicsLibrary::mIsInitialized = false; 43 | 44 | /****************************************************************************** 45 | ***************************** METHOD DEFINITION ****************************** 46 | ******************************************************************************/ 47 | 48 | /****************************************************************************** 49 | * Main GsGraphics module initialization method 50 | ******************************************************************************/ 51 | bool PtGraphicsLibrary::initialize( const char* const pWorkingDirectory ) 52 | { 53 | if ( mIsInitialized ) 54 | { 55 | return true; 56 | } 57 | 58 | bool statusOK = Pt::PtDataModelLibrary::initialize( pWorkingDirectory ); 59 | if ( ! statusOK ) 60 | { 61 | return false; 62 | } 63 | 64 | // Load plugins 65 | //GsAssetResourceManager::get().loadPlugins(""); 66 | 67 | // Update flag 68 | mIsInitialized = true; 69 | 70 | return true; 71 | } 72 | 73 | /****************************************************************************** 74 | * Main GsGraphics module finalization method 75 | ******************************************************************************/ 76 | void PtGraphicsLibrary::finalize() 77 | { 78 | // Unload plugins 79 | //GsAssetResourceManager::get().unloadAll(); 80 | 81 | // Update flag 82 | mIsInitialized = false; 83 | } 84 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/PtGraphics/PtGraphicsLibrary.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Publication: Semi-Procedural Textures Using Point Process Texture Basis Functions 3 | * Authors: anonymous 4 | * 5 | * Code author: Pascal Guehl 6 | * 7 | * anonymous 8 | * anonymous 9 | */ 10 | 11 | /** 12 | * @version 1.0 13 | */ 14 | 15 | #ifndef _PT_GRAPHICS_LIBRARY_H_ 16 | #define _PT_GRAPHICS_LIBRARY_H_ 17 | 18 | /****************************************************************************** 19 | ******************************* INCLUDE SECTION ****************************** 20 | ******************************************************************************/ 21 | 22 | // Project 23 | #include "PtGraphicsConfig.h" 24 | 25 | /****************************************************************************** 26 | ************************* DEFINE AND CONSTANT SECTION ************************ 27 | ******************************************************************************/ 28 | 29 | /****************************************************************************** 30 | ***************************** TYPE DEFINITION ******************************** 31 | ******************************************************************************/ 32 | 33 | /****************************************************************************** 34 | ******************************** CLASS USED ********************************** 35 | ******************************************************************************/ 36 | 37 | /****************************************************************************** 38 | ****************************** CLASS DEFINITION ****************************** 39 | ******************************************************************************/ 40 | 41 | namespace PtGraphics 42 | { 43 | 44 | class PTGRAPHICS_EXPORT PtGraphicsLibrary 45 | { 46 | 47 | /************************************************************************** 48 | ***************************** PUBLIC SECTION ***************************** 49 | **************************************************************************/ 50 | 51 | public: 52 | 53 | /******************************* INNER TYPES *******************************/ 54 | 55 | /******************************* ATTRIBUTES *******************************/ 56 | 57 | /******************************** METHODS *********************************/ 58 | 59 | /** 60 | * Main GsGraphics module initialization method 61 | */ 62 | static bool initialize( const char* const pWorkingDirectory ); 63 | 64 | /** 65 | * Main GsGraphics module finalization method 66 | */ 67 | static void finalize(); 68 | 69 | /************************************************************************** 70 | **************************** PROTECTED SECTION *************************** 71 | **************************************************************************/ 72 | 73 | protected: 74 | 75 | /******************************* INNER TYPES *******************************/ 76 | 77 | /******************************* ATTRIBUTES *******************************/ 78 | 79 | /******************************** METHODS *********************************/ 80 | 81 | /************************************************************************** 82 | ***************************** PRIVATE SECTION **************************** 83 | **************************************************************************/ 84 | 85 | private: 86 | 87 | /******************************* INNER TYPES *******************************/ 88 | 89 | /******************************* ATTRIBUTES *******************************/ 90 | 91 | /** 92 | * Flag telling whether or not the library is initialized 93 | */ 94 | static bool mIsInitialized; 95 | 96 | /******************************** METHODS *********************************/ 97 | 98 | }; 99 | 100 | } 101 | 102 | #endif // !_PT_GRAPHICS_LIBRARY_H_ 103 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/PtGraphics/PtGraphicsMeshManager.hpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Publication: Semi-Procedural Textures Using Point Process Texture Basis Functions 3 | * Authors: anonymous 4 | * 5 | * Code author: Pascal Guehl 6 | * 7 | * anonymous 8 | * anonymous 9 | */ 10 | 11 | /** 12 | * @version 1.0 13 | */ 14 | 15 | /****************************************************************************** 16 | ******************************* INCLUDE SECTION ****************************** 17 | ******************************************************************************/ 18 | 19 | /****************************************************************************** 20 | ***************************** METHOD DEFINITION ****************************** 21 | ******************************************************************************/ 22 | 23 | namespace PtGraphics 24 | { 25 | 26 | inline bool PtGraphicsMeshManager::useMaterial() const 27 | { 28 | return mUseMaterial; 29 | } 30 | 31 | inline void PtGraphicsMeshManager::setUseMaterial( const bool pFlag ) 32 | { 33 | mUseMaterial = pFlag; 34 | } 35 | 36 | inline PtGraphicsMeshManager::MeshType PtGraphicsMeshManager::getMeshType() const 37 | { 38 | return mMeshType; 39 | } 40 | 41 | /****************************************************************************** 42 | * Color map 43 | ******************************************************************************/ 44 | inline int PtGraphicsMeshManager::getColormapIndex() const 45 | { 46 | return mColormapIndex; 47 | } 48 | inline void PtGraphicsMeshManager::setColormapIndex( const int pValue ) 49 | { 50 | mColormapIndex = pValue; 51 | } 52 | 53 | } // namespace PtGraphics 54 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/PtModel/PtConfig.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Publication: Semi-Procedural Textures Using Point Process Texture Basis Functions 3 | * Authors: anonymous 4 | * 5 | * Code author: Pascal Guehl 6 | * 7 | * anonymous 8 | * anonymous 9 | */ 10 | 11 | /** 12 | * @version 1.0 13 | */ 14 | 15 | #ifndef _PT_CONFIG_H_ 16 | #define _PT_CONFIG_H_ 17 | 18 | /****************************************************************************** 19 | ******************************* INCLUDE SECTION ****************************** 20 | ******************************************************************************/ 21 | 22 | // Project 23 | #include "PtModelConfig.h" 24 | 25 | /****************************************************************************** 26 | ************************* DEFINE AND CONSTANT SECTION ************************ 27 | ******************************************************************************/ 28 | 29 | // It seams to be used by "hview" library 30 | // - TODO: modify this... 31 | #ifndef M_PI 32 | #define M_PI 3.1415926535897932384626433832795 33 | #endif 34 | 35 | // GLM 36 | #define GLM_ENABLE_EXPERIMENTAL 37 | #define GLM_FORCE_MESSAGES 38 | #define GLM_FORCE_SWIZZLE 39 | 40 | /****************************************************************************** 41 | ***************************** TYPE DEFINITION ******************************** 42 | ******************************************************************************/ 43 | 44 | /****************************************************************************** 45 | ******************************** CLASS USED ********************************** 46 | ******************************************************************************/ 47 | 48 | /****************************************************************************** 49 | ****************************** CLASS DEFINITION ****************************** 50 | ******************************************************************************/ 51 | 52 | #endif // !_PT_CONFIG_H_ 53 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/PtModel/PtEnvironment.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Publication: Semi-Procedural Textures Using Point Process Texture Basis Functions 3 | * Authors: anonymous 4 | * 5 | * Code author: Pascal Guehl 6 | * 7 | * anonymous 8 | * anonymous 9 | */ 10 | 11 | /** 12 | * @version 1.0 13 | */ 14 | 15 | #include "PtEnvironment.h" 16 | 17 | /****************************************************************************** 18 | ******************************* INCLUDE SECTION ****************************** 19 | ******************************************************************************/ 20 | 21 | /****************************************************************************** 22 | ****************************** NAMESPACE SECTION ***************************** 23 | ******************************************************************************/ 24 | 25 | // Project 26 | using namespace Pt; 27 | 28 | /****************************************************************************** 29 | ************************* DEFINE AND CONSTANT SECTION ************************ 30 | ******************************************************************************/ 31 | 32 | /****************************************************************************** 33 | ***************************** TYPE DEFINITION ******************************** 34 | ******************************************************************************/ 35 | 36 | std::string PtEnvironment::mProgramPath = PT_PROJECT_PATH + std::string( "/" ); 37 | std::string PtEnvironment::mWorkingDirectory = PT_PROJECT_PATH + std::string( "/Dev/Install/PPTBFProject/bin/" ); 38 | std::string PtEnvironment::mSettingDirectory = PT_PROJECT_PATH + std::string( "/Dev/Install/PPTBFProject/bin/Settings/" ); 39 | std::string PtEnvironment::mDataPath = PT_DATA_PATH + std::string( "/" ); 40 | std::string PtEnvironment::mShaderPath = PT_SHADER_PATH + std::string( "/" ); 41 | std::string PtEnvironment::mImagePath = PT_IMAGE_PATH + std::string( "/" ); 42 | 43 | /****************************************************************************** 44 | ***************************** METHOD DEFINITION ****************************** 45 | ******************************************************************************/ 46 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/PtModel/PtEnvironment.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Publication: Semi-Procedural Textures Using Point Process Texture Basis Functions 3 | * Authors: anonymous 4 | * 5 | * Code author: Pascal Guehl 6 | * 7 | * anonymous 8 | * anonymous 9 | */ 10 | 11 | /** 12 | * @version 1.0 13 | */ 14 | 15 | #ifndef _PT_ENVIRONMENT_H_ 16 | #define _PT_ENVIRONMENT_H_ 17 | 18 | /****************************************************************************** 19 | ******************************* INCLUDE SECTION ****************************** 20 | ******************************************************************************/ 21 | 22 | // Project 23 | #include "PtConfig.h" 24 | 25 | // STL 26 | #include 27 | 28 | /****************************************************************************** 29 | ************************* DEFINE AND CONSTANT SECTION ************************ 30 | ******************************************************************************/ 31 | 32 | #define _OS_USE_VIEWER_REFRESH_ 33 | //#define _OS_USE_DEBUG_GL_ 34 | //#define _OS_USE_HOME_PATH_ 35 | 36 | #define _OS_USE_SHADER_DEBUG_ 37 | 38 | /****************************************************************************** 39 | ***************************** TYPE DEFINITION ******************************** 40 | ******************************************************************************/ 41 | 42 | /****************************************************************************** 43 | ******************************** CLASS USED ********************************** 44 | ******************************************************************************/ 45 | 46 | namespace Pt 47 | { 48 | 49 | class PTMODEL_EXPORT PtEnvironment 50 | { 51 | public: 52 | static std::string mProgramPath; 53 | static std::string mWorkingDirectory; 54 | static std::string mSettingDirectory; 55 | static std::string mDataPath; 56 | static std::string mShaderPath; 57 | static std::string mImagePath; 58 | }; 59 | 60 | } 61 | 62 | /****************************************************************************** 63 | ****************************** CLASS DEFINITION ****************************** 64 | ******************************************************************************/ 65 | 66 | #endif // !_PT_ENVIRONMENT_H_ 67 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/PtModel/PtFeature.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Publication: Semi-Procedural Textures Using Point Process Texture Basis Functions 3 | * Authors: anonymous 4 | * 5 | * Code author: Pascal Guehl 6 | * 7 | * anonymous 8 | * anonymous 9 | */ 10 | 11 | /** 12 | * @version 1.0 13 | */ 14 | 15 | #include "PtFeature.h" 16 | 17 | /****************************************************************************** 18 | ******************************* INCLUDE SECTION ****************************** 19 | ******************************************************************************/ 20 | 21 | // STL 22 | #include 23 | #include 24 | #include 25 | #include 26 | 27 | /****************************************************************************** 28 | ****************************** NAMESPACE SECTION ***************************** 29 | ******************************************************************************/ 30 | 31 | // Project 32 | using namespace Pt; 33 | 34 | /****************************************************************************** 35 | ************************* DEFINE AND CONSTANT SECTION ************************ 36 | ******************************************************************************/ 37 | 38 | /****************************************************************************** 39 | ***************************** TYPE DEFINITION ******************************** 40 | ******************************************************************************/ 41 | 42 | /****************************************************************************** 43 | ***************************** METHOD DEFINITION ****************************** 44 | ******************************************************************************/ 45 | 46 | /****************************************************************************** 47 | * Constructor 48 | ******************************************************************************/ 49 | PtFeature::PtFeature() 50 | { 51 | } 52 | 53 | /****************************************************************************** 54 | * Destructor 55 | ******************************************************************************/ 56 | PtFeature::~PtFeature() 57 | { 58 | } 59 | 60 | /****************************************************************************** 61 | * Initialize 62 | ******************************************************************************/ 63 | void PtFeature::initialize() 64 | { 65 | } 66 | 67 | /****************************************************************************** 68 | * Finalize 69 | ******************************************************************************/ 70 | void PtFeature::finalize() 71 | { 72 | } 73 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/PtModel/PtFeature.hpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Publication: Semi-Procedural Textures Using Point Process Texture Basis Functions 3 | * Authors: anonymous 4 | * 5 | * Code author: Pascal Guehl 6 | * 7 | * anonymous 8 | * anonymous 9 | */ 10 | 11 | /** 12 | * @version 1.0 13 | */ 14 | 15 | /****************************************************************************** 16 | ******************************* INCLUDE SECTION ****************************** 17 | ******************************************************************************/ 18 | 19 | /****************************************************************************** 20 | ***************************** METHOD DEFINITION ****************************** 21 | ******************************************************************************/ 22 | 23 | namespace Pt 24 | { 25 | } // namespace Pt 26 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/PtModel/PtImageHelper.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Publication: Semi-Procedural Textures Using Point Process Texture Basis Functions 3 | * Authors: anonymous 4 | * 5 | * Code author: Pascal Guehl 6 | * 7 | * anonymous 8 | * anonymous 9 | */ 10 | 11 | /** 12 | * @version 1.0 13 | */ 14 | 15 | #include "PtImageHelper.h" 16 | 17 | /****************************************************************************** 18 | ******************************* INCLUDE SECTION ****************************** 19 | ******************************************************************************/ 20 | 21 | // stb 22 | #define STB_IMAGE_IMPLEMENTATION 23 | #define STB_IMAGE_WRITE_IMPLEMENTATION 24 | #include 25 | #include 26 | 27 | /****************************************************************************** 28 | ****************************** NAMESPACE SECTION ***************************** 29 | ******************************************************************************/ 30 | 31 | /****************************************************************************** 32 | ************************* DEFINE AND CONSTANT SECTION ************************ 33 | ******************************************************************************/ 34 | 35 | /****************************************************************************** 36 | ***************************** TYPE DEFINITION ******************************** 37 | ******************************************************************************/ 38 | 39 | /****************************************************************************** 40 | ***************************** METHOD DEFINITION ****************************** 41 | ******************************************************************************/ 42 | 43 | // Project 44 | using namespace Pt; 45 | 46 | /****************************************************************************** 47 | * ... 48 | ******************************************************************************/ 49 | void PtImageHelper::loadImage( const char* pFilename, int& pWidth, int& pHeight, int& pNrChannels, unsigned char*& pData, int desired_channels ) 50 | { 51 | stbi_set_flip_vertically_on_load( 1 ); 52 | pData = stbi_load( pFilename, &pWidth, &pHeight, &pNrChannels, desired_channels ); 53 | } 54 | 55 | /****************************************************************************** 56 | * ... 57 | ******************************************************************************/ 58 | void PtImageHelper::freeImage( unsigned char* pData ) 59 | { 60 | // Free memory 61 | stbi_image_free( pData ); 62 | } 63 | 64 | /****************************************************************************** 65 | * ... 66 | ******************************************************************************/ 67 | int PtImageHelper::saveImage( const char* pFilename, const int pWidth, const int pHeight, const int pNrChannels, const void* pData ) 68 | { 69 | const void* data = pData; 70 | const int stride_in_bytes = pNrChannels * pWidth; 71 | stbi_flip_vertically_on_write( 1 ); 72 | int status = stbi_write_png( pFilename, pWidth, pHeight, pNrChannels, data, stride_in_bytes ); 73 | 74 | return status; 75 | } 76 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/PtModel/PtModelConfig.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Publication: Semi-Procedural Textures Using Point Process Texture Basis Functions 3 | * Authors: anonymous 4 | * 5 | * Code author: Pascal Guehl 6 | * 7 | * anonymous 8 | * anonymous 9 | */ 10 | 11 | /** 12 | * @version 1.0 13 | */ 14 | 15 | #ifndef _PT_MODEL_CONFIG_H_ 16 | #define _PT_MODEL_CONFIG_H_ 17 | 18 | /****************************************************************************** 19 | ******************************* INCLUDE SECTION ****************************** 20 | ******************************************************************************/ 21 | 22 | /****************************************************************************** 23 | ************************* DEFINE AND CONSTANT SECTION ************************ 24 | ******************************************************************************/ 25 | 26 | //*** GsGraphics Library 27 | 28 | // Static or dynamic link configuration 29 | #ifdef WIN32 30 | # ifdef PTMODEL_MAKELIB // Create a static library. 31 | # define PTMODEL_EXPORT 32 | # define PTMODEL_TEMPLATE_EXPORT 33 | # elif defined PTMODEL_USELIB // Use a static library. 34 | # define PTMODEL_EXPORT 35 | # define PTMODEL_TEMPLATE_EXPORT 36 | # elif defined PTMODEL_MAKEDLL // Create a DLL library. 37 | # define PTMODEL_EXPORT __declspec(dllexport) 38 | # define PTMODEL_TEMPLATE_EXPORT 39 | # else // Use DLL library 40 | # define PTMODEL_EXPORT __declspec(dllimport) 41 | # define PTMODEL_TEMPLATE_EXPORT extern 42 | # endif 43 | #else 44 | # if defined(PTMODEL_MAKEDLL) || defined(PTMODEL_MAKELIB) 45 | # define PTMODEL_EXPORT 46 | # define PTMODEL_TEMPLATE_EXPORT 47 | # else 48 | # define PTMODEL_EXPORT 49 | # define PTMODEL_TEMPLATE_EXPORT extern 50 | # endif 51 | #endif 52 | 53 | // ---------------- GLM library Management ---------------- 54 | 55 | ///** 56 | // * To remove warnings at compilation with GLM deprecated functions 57 | // */ 58 | //#define GLM_FORCE_RADIANS 59 | 60 | #endif // !_PT_MODEL_CONFIG_H_ 61 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/PtModel/PtModelLibrary.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Publication: Semi-Procedural Textures Using Point Process Texture Basis Functions 3 | * Authors: anonymous 4 | * 5 | * Code author: Pascal Guehl 6 | * 7 | * anonymous 8 | * anonymous 9 | */ 10 | 11 | /** 12 | * @version 1.0 13 | */ 14 | 15 | #include "PtModelLibrary.h" 16 | 17 | /****************************************************************************** 18 | ******************************* INCLUDE SECTION ****************************** 19 | ******************************************************************************/ 20 | 21 | // Project 22 | #include "PtEnvironment.h" 23 | 24 | // STL 25 | #include 26 | 27 | // System 28 | #include 29 | 30 | // GsGraphics 31 | //#include "GsGraphics/GsAssetResourceManager.h" 32 | 33 | /****************************************************************************** 34 | ****************************** NAMESPACE SECTION ***************************** 35 | ******************************************************************************/ 36 | 37 | // Project 38 | using namespace Pt; 39 | 40 | /****************************************************************************** 41 | ************************* DEFINE AND CONSTANT SECTION ************************ 42 | ******************************************************************************/ 43 | 44 | /****************************************************************************** 45 | ***************************** TYPE DEFINITION ******************************** 46 | ******************************************************************************/ 47 | 48 | bool PtDataModelLibrary::mIsInitialized = false; 49 | 50 | /****************************************************************************** 51 | ***************************** METHOD DEFINITION ****************************** 52 | ******************************************************************************/ 53 | 54 | /****************************************************************************** 55 | * Main GsGraphics module initialization method 56 | ******************************************************************************/ 57 | bool PtDataModelLibrary::initialize( const char* const pWorkingDirectory ) 58 | { 59 | if ( mIsInitialized ) 60 | { 61 | return true; 62 | } 63 | 64 | assert( pWorkingDirectory != nullptr ); 65 | if ( pWorkingDirectory == nullptr ) 66 | { 67 | return false; 68 | } 69 | 70 | std::string workingDirectory = std::string( pWorkingDirectory ); 71 | const size_t directoryIndex = workingDirectory.find_last_of( "/\\" ); 72 | workingDirectory = workingDirectory.substr( 0, directoryIndex ); 73 | 74 | PtEnvironment::mWorkingDirectory = workingDirectory; 75 | PtEnvironment::mSettingDirectory = PtEnvironment::mWorkingDirectory + std::string( "/" ) + std::string( "Settings" ); 76 | PtEnvironment::mDataPath = PtEnvironment::mWorkingDirectory + std::string( "/" ) + std::string( "Data" ); 77 | PtEnvironment::mShaderPath = PtEnvironment::mDataPath + std::string( "/" ) + std::string( "Shaders/PPTBF" ); 78 | PtEnvironment::mImagePath = PtEnvironment::mDataPath + std::string( "/" ) + std::string( "Images" ); 79 | 80 | // Load plugins 81 | //GsAssetResourceManager::get().loadPlugins(""); 82 | 83 | // Update flag 84 | mIsInitialized = true; 85 | 86 | return true; 87 | } 88 | 89 | /****************************************************************************** 90 | * Main GsGraphics module finalization method 91 | ******************************************************************************/ 92 | void PtDataModelLibrary::finalize() 93 | { 94 | // Unload plugins 95 | //GsAssetResourceManager::get().unloadAll(); 96 | 97 | // Update flag 98 | mIsInitialized = false; 99 | } 100 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/PtModel/PtModelLibrary.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Publication: Semi-Procedural Textures Using Point Process Texture Basis Functions 3 | * Authors: anonymous 4 | * 5 | * Code author: Pascal Guehl 6 | * 7 | * anonymous 8 | * anonymous 9 | */ 10 | 11 | /** 12 | * @version 1.0 13 | */ 14 | 15 | #ifndef _PT_MODEL_LIBRARY_H_ 16 | #define _PT_MODEL_LIBRARY_H_ 17 | 18 | /****************************************************************************** 19 | ******************************* INCLUDE SECTION ****************************** 20 | ******************************************************************************/ 21 | 22 | // Project 23 | #include "PtModelConfig.h" 24 | 25 | /****************************************************************************** 26 | ************************* DEFINE AND CONSTANT SECTION ************************ 27 | ******************************************************************************/ 28 | 29 | /****************************************************************************** 30 | ***************************** TYPE DEFINITION ******************************** 31 | ******************************************************************************/ 32 | 33 | /****************************************************************************** 34 | ******************************** CLASS USED ********************************** 35 | ******************************************************************************/ 36 | 37 | /****************************************************************************** 38 | ****************************** CLASS DEFINITION ****************************** 39 | ******************************************************************************/ 40 | 41 | namespace Pt 42 | { 43 | 44 | class PTMODEL_EXPORT PtDataModelLibrary 45 | { 46 | 47 | /************************************************************************** 48 | ***************************** PUBLIC SECTION ***************************** 49 | **************************************************************************/ 50 | 51 | public: 52 | 53 | /******************************* INNER TYPES *******************************/ 54 | 55 | /******************************* ATTRIBUTES *******************************/ 56 | 57 | /******************************** METHODS *********************************/ 58 | 59 | /** 60 | * Main GsGraphics module initialization method 61 | */ 62 | static bool initialize( const char* const pWorkingDirectory ); 63 | 64 | /** 65 | * Main GsGraphics module finalization method 66 | */ 67 | static void finalize(); 68 | 69 | /************************************************************************** 70 | **************************** PROTECTED SECTION *************************** 71 | **************************************************************************/ 72 | 73 | protected: 74 | 75 | /******************************* INNER TYPES *******************************/ 76 | 77 | /******************************* ATTRIBUTES *******************************/ 78 | 79 | /******************************** METHODS *********************************/ 80 | 81 | /************************************************************************** 82 | ***************************** PRIVATE SECTION **************************** 83 | **************************************************************************/ 84 | 85 | private: 86 | 87 | /******************************* INNER TYPES *******************************/ 88 | 89 | /******************************* ATTRIBUTES *******************************/ 90 | 91 | /** 92 | * Flag telling whether or not the library is initialized 93 | */ 94 | static bool mIsInitialized; 95 | 96 | /******************************** METHODS *********************************/ 97 | 98 | }; 99 | 100 | } 101 | 102 | #endif // !_PT_MODEL_LIBRARY_H_ 103 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/PtModel/PtNoise.hpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Publication: Semi-Procedural Textures Using Point Process Texture Basis Functions 3 | * Authors: anonymous 4 | * 5 | * Code author: Pascal Guehl 6 | * 7 | * anonymous 8 | * anonymous 9 | */ 10 | 11 | /** 12 | * @version 1.0 13 | */ 14 | 15 | /****************************************************************************** 16 | ******************************* INCLUDE SECTION ****************************** 17 | ******************************************************************************/ 18 | 19 | /****************************************************************************** 20 | ***************************** METHOD DEFINITION ****************************** 21 | ******************************************************************************/ 22 | 23 | namespace Pt 24 | { 25 | 26 | inline const std::vector< int >& PtNoise::getP() 27 | { 28 | return mP; 29 | } 30 | 31 | inline const std::vector< float >& PtNoise::getRndTab() 32 | { 33 | return mRndTab; 34 | } 35 | 36 | inline const std::vector< float >& PtNoise::getG() 37 | { 38 | return mG; 39 | } 40 | 41 | } // namespace Pt 42 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/PtModel/PtPPTBF.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ASTex-ICube/semiproctex/af5403a66fce584a34859b0e5e9fbd446fbd141a/PPTBF_Structures_Src/PtModel/PtPPTBF.cpp -------------------------------------------------------------------------------- /PPTBF_Structures_Src/PtModel/PtPPTBFLoader.hpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Publication: Semi-Procedural Textures Using Point Process Texture Basis Functions 3 | * Authors: anonymous 4 | * 5 | * Code author: Pascal Guehl 6 | * 7 | * anonymous 8 | * anonymous 9 | */ 10 | 11 | /** 12 | * @version 1.0 13 | */ 14 | 15 | /****************************************************************************** 16 | ******************************* INCLUDE SECTION ****************************** 17 | ******************************************************************************/ 18 | 19 | /****************************************************************************** 20 | ***************************** METHOD DEFINITION ****************************** 21 | ******************************************************************************/ 22 | 23 | namespace Pt 24 | { 25 | } // namespace Pt 26 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/PtModel/PtWindow.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Publication: Semi-Procedural Textures Using Point Process Texture Basis Functions 3 | * Authors: anonymous 4 | * 5 | * Code author: Pascal Guehl 6 | * 7 | * anonymous 8 | * anonymous 9 | */ 10 | 11 | /** 12 | * @version 1.0 13 | */ 14 | 15 | #include "PtWindow.h" 16 | 17 | /****************************************************************************** 18 | ******************************* INCLUDE SECTION ****************************** 19 | ******************************************************************************/ 20 | 21 | // STL 22 | #include 23 | #include 24 | #include 25 | #include 26 | 27 | /****************************************************************************** 28 | ****************************** NAMESPACE SECTION ***************************** 29 | ******************************************************************************/ 30 | 31 | // Project 32 | using namespace Pt; 33 | 34 | /****************************************************************************** 35 | ************************* DEFINE AND CONSTANT SECTION ************************ 36 | ******************************************************************************/ 37 | 38 | /****************************************************************************** 39 | ***************************** TYPE DEFINITION ******************************** 40 | ******************************************************************************/ 41 | 42 | /****************************************************************************** 43 | ***************************** METHOD DEFINITION ****************************** 44 | ******************************************************************************/ 45 | 46 | /****************************************************************************** 47 | * Constructor 48 | ******************************************************************************/ 49 | PtWindow::PtWindow() 50 | { 51 | } 52 | 53 | /****************************************************************************** 54 | * Destructor 55 | ******************************************************************************/ 56 | PtWindow::~PtWindow() 57 | { 58 | } 59 | 60 | /****************************************************************************** 61 | * Initialize 62 | ******************************************************************************/ 63 | void PtWindow::initialize() 64 | { 65 | } 66 | 67 | /****************************************************************************** 68 | * Finalize 69 | ******************************************************************************/ 70 | void PtWindow::finalize() 71 | { 72 | } 73 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/PtModel/PtWindow.hpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Publication: Semi-Procedural Textures Using Point Process Texture Basis Functions 3 | * Authors: anonymous 4 | * 5 | * Code author: Pascal Guehl 6 | * 7 | * anonymous 8 | * anonymous 9 | */ 10 | 11 | /** 12 | * @version 1.0 13 | */ 14 | 15 | /****************************************************************************** 16 | ******************************* INCLUDE SECTION ****************************** 17 | ******************************************************************************/ 18 | 19 | /****************************************************************************** 20 | ***************************** METHOD DEFINITION ****************************** 21 | ******************************************************************************/ 22 | 23 | namespace Pt 24 | { 25 | } // namespace Pt 26 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Tools/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | #---------------------------------------------------------------- 2 | # PCTS PROJECT CMake file 3 | # Main user file 4 | #---------------------------------------------------------------- 5 | 6 | #---------------------------------------------------------------- 7 | # Project 8 | #---------------------------------------------------------------- 9 | 10 | # Invite message 11 | message( STATUS "-------------------------------------------" ) 12 | message( STATUS "- PROJECT GENERATION : PPTBF Tools -" ) 13 | message( STATUS "-------------------------------------------" ) 14 | message( STATUS "" ) 15 | 16 | # Project name 17 | #project( PPTBFTools ) 18 | 19 | #---------------------------------------------------------------- 20 | # Add Library/Tools path 21 | #---------------------------------------------------------------- 22 | 23 | # Real-time viewer/designer of PPTBF model 24 | add_subdirectory( "${CMAKE_CURRENT_SOURCE_DIR}/PtViewer" ) 25 | 26 | # Command line PPTBF synthsizer from a PPTBF parameter file 27 | add_subdirectory( "${CMAKE_CURRENT_SOURCE_DIR}/PtBDDGenerator" ) 28 | 29 | # Sampling the PPTBF parameter space of produce BDD for use such as PPTBF parameter estimation, learning-based approaches... 30 | add_subdirectory( "${CMAKE_CURRENT_SOURCE_DIR}/PtBDDParameterSpaceSampler" ) 31 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Tools/PtBDDGenerator/PtViewerConfig.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Publication: Semi-Procedural Textures Using Point Process Texture Basis Functions 3 | * Authors: anonymous 4 | * 5 | * Code author: Pascal Guehl 6 | * 7 | * anonymous 8 | * anonymous 9 | */ 10 | 11 | /** 12 | * @version 1.0 13 | */ 14 | 15 | #include "PtViewerConfig.h" 16 | 17 | /****************************************************************************** 18 | ******************************* INCLUDE SECTION ****************************** 19 | ******************************************************************************/ 20 | 21 | /****************************************************************************** 22 | ****************************** NAMESPACE SECTION ***************************** 23 | ******************************************************************************/ 24 | 25 | // GsGraphics 26 | using namespace Pt; 27 | 28 | /****************************************************************************** 29 | ************************* DEFINE AND CONSTANT SECTION ************************ 30 | ******************************************************************************/ 31 | 32 | /****************************************************************************** 33 | ***************************** TYPE DEFINITION ******************************** 34 | ******************************************************************************/ 35 | 36 | //std::string PtEnvironment::mShaderPath = PT_SHADER_PATH + std::string( "/" ); 37 | //std::string PtEnvironment::mProgramPath = PT_PROJECT_PATH + std::string( "/" ); 38 | //std::string PtEnvironment::mImagePath = PT_IMAGE_PATH + std::string( "/" ); 39 | 40 | /****************************************************************************** 41 | ***************************** METHOD DEFINITION ****************************** 42 | ******************************************************************************/ 43 | 44 | /****************************************************************************** 45 | ***************************** METHOD DEFINITION ****************************** 46 | ******************************************************************************/ 47 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Tools/PtBDDGenerator/PtViewerConfig.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Publication: Semi-Procedural Textures Using Point Process Texture Basis Functions 3 | * Authors: anonymous 4 | * 5 | * Code author: Pascal Guehl 6 | * 7 | * anonymous 8 | * anonymous 9 | */ 10 | 11 | /** 12 | * @version 1.0 13 | */ 14 | 15 | #ifndef _OS_VIEWER_CONFIG_H_ 16 | #define _OS_VIEWER_CONFIG_H_ 17 | 18 | /****************************************************************************** 19 | ******************************* INCLUDE SECTION ****************************** 20 | ******************************************************************************/ 21 | 22 | // STL 23 | #include 24 | 25 | /****************************************************************************** 26 | ************************* DEFINE AND CONSTANT SECTION ************************ 27 | ******************************************************************************/ 28 | 29 | #define _OS_USE_VIEWER_REFRESH_ 30 | //#define _OS_USE_DEBUG_GL_ 31 | //#define _OS_USE_HOME_PATH_ 32 | 33 | #define _OS_USE_SHADER_DEBUG_ 34 | 35 | /****************************************************************************** 36 | ***************************** TYPE DEFINITION ******************************** 37 | ******************************************************************************/ 38 | 39 | /****************************************************************************** 40 | ******************************** CLASS USED ********************************** 41 | ******************************************************************************/ 42 | 43 | namespace Pt 44 | { 45 | 46 | //class PtEnvironment 47 | //{ 48 | // static std::string mShaderPath; 49 | // static std::string mImagePath; 50 | // static std::string mProgramPath; 51 | //}; 52 | 53 | } 54 | 55 | /****************************************************************************** 56 | ****************************** CLASS DEFINITION ****************************** 57 | ******************************************************************************/ 58 | 59 | #endif // !_OS_VIEWER_CONFIG_H_ 60 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Tools/PtBDDGenerator/imgui_impl_glfw_gl3.h: -------------------------------------------------------------------------------- 1 | // ImGui GLFW binding with OpenGL3 + shaders 2 | // In this binding, ImTextureID is used to store an OpenGL 'GLuint' texture identifier. Read the FAQ about ImTextureID in imgui.cpp. 3 | // (GLFW is a cross-platform general purpose library for handling windows, inputs, OpenGL/Vulkan graphics context creation, etc.) 4 | // (GL3W is a helper library to access OpenGL functions since there is no standard header to access modern OpenGL functions easily. Alternatives are GLEW, Glad, etc.) 5 | 6 | // You can copy and use unmodified imgui_impl_* files in your project. See main.cpp for an example of using this. 7 | // If you use this binding you'll need to call 4 functions: ImGui_ImplXXXX_Init(), ImGui_ImplXXXX_NewFrame(), ImGui::Render() and ImGui_ImplXXXX_Shutdown(). 8 | // If you are new to ImGui, see examples/README.txt and documentation at the top of imgui.cpp. 9 | // https://github.com/ocornut/imgui 10 | 11 | struct GLFWwindow; 12 | 13 | IMGUI_API bool ImGui_ImplGlfwGL3_Init(GLFWwindow* window, bool install_callbacks); 14 | IMGUI_API void ImGui_ImplGlfwGL3_Shutdown(); 15 | IMGUI_API void ImGui_ImplGlfwGL3_NewFrame(); 16 | 17 | // Use if you want to reset your rendering device without losing ImGui state. 18 | IMGUI_API void ImGui_ImplGlfwGL3_InvalidateDeviceObjects(); 19 | IMGUI_API bool ImGui_ImplGlfwGL3_CreateDeviceObjects(); 20 | 21 | // GLFW callbacks (installed by default if you enable 'install_callbacks' during initialization) 22 | // Provided here if you want to chain callbacks. 23 | // You can also handle inputs yourself and use those as a reference. 24 | IMGUI_API void ImGui_ImplGlfwGL3_MouseButtonCallback(GLFWwindow* window, int button, int action, int mods); 25 | IMGUI_API void ImGui_ImplGlfwGL3_ScrollCallback(GLFWwindow* window, double xoffset, double yoffset); 26 | IMGUI_API void ImGui_ImplGlfwGL3_KeyCallback(GLFWwindow* window, int key, int scancode, int action, int mods); 27 | IMGUI_API void ImGui_ImplGlfwGL3_CharCallback(GLFWwindow* window, unsigned int c); 28 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Tools/PtBDDGenerator/main.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Publication: Semi-Procedural Textures Using Point Process Texture Basis Functions 3 | * Authors: anonymous 4 | * 5 | * Code author: Pascal Guehl 6 | * 7 | * anonymous 8 | * anonymous 9 | */ 10 | 11 | /** 12 | * @version 1.0 13 | */ 14 | 15 | /****************************************************************************** 16 | ******************************* INCLUDE SECTION ****************************** 17 | ******************************************************************************/ 18 | 19 | // STL 20 | #include 21 | #include 22 | 23 | // System 24 | #include 25 | #include 26 | 27 | // Project 28 | #include "PtApplication.h" 29 | #include "PtGraphicsPPTBF.h" 30 | 31 | /****************************************************************************** 32 | ****************************** NAMESPACE SECTION ***************************** 33 | ******************************************************************************/ 34 | 35 | /****************************************************************************** 36 | ************************* DEFINE AND CONSTANT SECTION ************************ 37 | ******************************************************************************/ 38 | 39 | /****************************************************************************** 40 | ***************************** TYPE DEFINITION ******************************** 41 | ******************************************************************************/ 42 | 43 | /****************************************************************************** 44 | ***************************** METHOD DEFINITION ****************************** 45 | ******************************************************************************/ 46 | 47 | /****************************************************************************** 48 | * Main entry program 49 | * 50 | * @param pArgc Number of arguments 51 | * @param pArgv List of arguments 52 | * 53 | * @return flag telling whether or not it succeeds 54 | ******************************************************************************/ 55 | int main( int pArgc, char** pArgv ) 56 | { 57 | // LOG info 58 | std::cout << "-------------------------------------------------------------" << std::endl; 59 | std::cout << "- PPTBF Structures BDD Generator on GPU: Command Line Tool --" << std::endl; 60 | std::cout << "-------------------------------------------------------------" << std::endl; 61 | 62 | // Check command line arguments 63 | const int nbArguments = 3; 64 | if ( pArgc < ( 1 + nbArguments ) ) 65 | { 66 | std::cout << "ERROR: program requires 1 parameters..." << std::endl; 67 | std::cout << "\tprogram width height xxx_pptbf_params.txt" << std::endl; 68 | 69 | // Exit 70 | return -1; 71 | } 72 | 73 | // Retrieve program directory 74 | int indexParameter = 0; 75 | std::string workingDirectory = ""; 76 | workingDirectory = pArgv[ indexParameter++ ]; 77 | 78 | // User customizable parameters : retrieve command line parameters 79 | const int BDDImageWidth = std::stoi( pArgv[ indexParameter++ ] ); // default: 4 80 | const int BDDImageHeight = std::stoi( pArgv[ indexParameter++ ] ); // default: 4 81 | const char* pptbfParameterFilename = pArgv[ indexParameter++ ]; // default: "../imagestp/many_lichens_on_stone_6040019" 82 | std::cout << "\nPROCESSING: " << pptbfParameterFilename << std::endl; 83 | 84 | PtGUI::PtApplication& application = PtGUI::PtApplication::get(); 85 | 86 | // Initialization 87 | application.initialize( workingDirectory.c_str() ); 88 | 89 | // Set user parameters 90 | application.setBDDImageWidth( BDDImageWidth ); 91 | application.setBDDImageHeight( BDDImageHeight ); 92 | application.setPPTBFParameterFilename( pptbfParameterFilename ); 93 | 94 | PtGUI::PtApplication::get().execute(); 95 | 96 | // LOG info 97 | std::cout << "---------------------" << std::endl; 98 | std::cout << "- This is the end! --" << std::endl; 99 | std::cout << "---------------------" << std::endl; 100 | 101 | // Finalization 102 | application.finalize(); 103 | 104 | return 0; 105 | } 106 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Tools/PtBDDParameterSpaceSampler/PtViewerConfig.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Publication: Semi-Procedural Textures Using Point Process Texture Basis Functions 3 | * Computer Graphics Forum (EGSR 2020 special issue) 4 | * Authors: P. Guehl , R. AllEgre , J.-M. Dischler, B. Benes , and E. Galin 5 | * 6 | * Code author: Pascal Guehl 7 | */ 8 | 9 | /** 10 | * @version 1.0 11 | */ 12 | 13 | #include "PtViewerConfig.h" 14 | 15 | /****************************************************************************** 16 | ******************************* INCLUDE SECTION ****************************** 17 | ******************************************************************************/ 18 | 19 | /****************************************************************************** 20 | ****************************** NAMESPACE SECTION ***************************** 21 | ******************************************************************************/ 22 | 23 | // GsGraphics 24 | using namespace Pt; 25 | 26 | /****************************************************************************** 27 | ************************* DEFINE AND CONSTANT SECTION ************************ 28 | ******************************************************************************/ 29 | 30 | /****************************************************************************** 31 | ***************************** TYPE DEFINITION ******************************** 32 | ******************************************************************************/ 33 | 34 | //std::string PtEnvironment::mShaderPath = PT_SHADER_PATH + std::string( "/" ); 35 | //std::string PtEnvironment::mProgramPath = PT_PROJECT_PATH + std::string( "/" ); 36 | //std::string PtEnvironment::mImagePath = PT_IMAGE_PATH + std::string( "/" ); 37 | 38 | /****************************************************************************** 39 | ***************************** METHOD DEFINITION ****************************** 40 | ******************************************************************************/ 41 | 42 | /****************************************************************************** 43 | ***************************** METHOD DEFINITION ****************************** 44 | ******************************************************************************/ 45 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Tools/PtBDDParameterSpaceSampler/PtViewerConfig.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Publication: Semi-Procedural Textures Using Point Process Texture Basis Functions 3 | * Computer Graphics Forum (EGSR 2020 special issue) 4 | * Authors: P. Guehl , R. AllEgre , J.-M. Dischler, B. Benes , and E. Galin 5 | * 6 | * Code author: Pascal Guehl 7 | */ 8 | 9 | /** 10 | * @version 1.0 11 | */ 12 | 13 | #ifndef _OS_VIEWER_CONFIG_H_ 14 | #define _OS_VIEWER_CONFIG_H_ 15 | 16 | /****************************************************************************** 17 | ******************************* INCLUDE SECTION ****************************** 18 | ******************************************************************************/ 19 | 20 | // STL 21 | #include 22 | 23 | /****************************************************************************** 24 | ************************* DEFINE AND CONSTANT SECTION ************************ 25 | ******************************************************************************/ 26 | 27 | #define _OS_USE_VIEWER_REFRESH_ 28 | //#define _OS_USE_DEBUG_GL_ 29 | //#define _OS_USE_HOME_PATH_ 30 | 31 | #define _OS_USE_SHADER_DEBUG_ 32 | 33 | /****************************************************************************** 34 | ***************************** TYPE DEFINITION ******************************** 35 | ******************************************************************************/ 36 | 37 | /****************************************************************************** 38 | ******************************** CLASS USED ********************************** 39 | ******************************************************************************/ 40 | 41 | namespace Pt 42 | { 43 | 44 | //class PtEnvironment 45 | //{ 46 | // static std::string mShaderPath; 47 | // static std::string mImagePath; 48 | // static std::string mProgramPath; 49 | //}; 50 | 51 | } 52 | 53 | /****************************************************************************** 54 | ****************************** CLASS DEFINITION ****************************** 55 | ******************************************************************************/ 56 | 57 | #endif // !_OS_VIEWER_CONFIG_H_ 58 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Tools/PtBDDParameterSpaceSampler/imgui_impl_glfw_gl3.h: -------------------------------------------------------------------------------- 1 | // ImGui GLFW binding with OpenGL3 + shaders 2 | // In this binding, ImTextureID is used to store an OpenGL 'GLuint' texture identifier. Read the FAQ about ImTextureID in imgui.cpp. 3 | // (GLFW is a cross-platform general purpose library for handling windows, inputs, OpenGL/Vulkan graphics context creation, etc.) 4 | // (GL3W is a helper library to access OpenGL functions since there is no standard header to access modern OpenGL functions easily. Alternatives are GLEW, Glad, etc.) 5 | 6 | // You can copy and use unmodified imgui_impl_* files in your project. See main.cpp for an example of using this. 7 | // If you use this binding you'll need to call 4 functions: ImGui_ImplXXXX_Init(), ImGui_ImplXXXX_NewFrame(), ImGui::Render() and ImGui_ImplXXXX_Shutdown(). 8 | // If you are new to ImGui, see examples/README.txt and documentation at the top of imgui.cpp. 9 | // https://github.com/ocornut/imgui 10 | 11 | struct GLFWwindow; 12 | 13 | IMGUI_API bool ImGui_ImplGlfwGL3_Init(GLFWwindow* window, bool install_callbacks); 14 | IMGUI_API void ImGui_ImplGlfwGL3_Shutdown(); 15 | IMGUI_API void ImGui_ImplGlfwGL3_NewFrame(); 16 | 17 | // Use if you want to reset your rendering device without losing ImGui state. 18 | IMGUI_API void ImGui_ImplGlfwGL3_InvalidateDeviceObjects(); 19 | IMGUI_API bool ImGui_ImplGlfwGL3_CreateDeviceObjects(); 20 | 21 | // GLFW callbacks (installed by default if you enable 'install_callbacks' during initialization) 22 | // Provided here if you want to chain callbacks. 23 | // You can also handle inputs yourself and use those as a reference. 24 | IMGUI_API void ImGui_ImplGlfwGL3_MouseButtonCallback(GLFWwindow* window, int button, int action, int mods); 25 | IMGUI_API void ImGui_ImplGlfwGL3_ScrollCallback(GLFWwindow* window, double xoffset, double yoffset); 26 | IMGUI_API void ImGui_ImplGlfwGL3_KeyCallback(GLFWwindow* window, int key, int scancode, int action, int mods); 27 | IMGUI_API void ImGui_ImplGlfwGL3_CharCallback(GLFWwindow* window, unsigned int c); 28 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Tools/PtViewer/PtViewerConfig.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Publication: Semi-Procedural Textures Using Point Process Texture Basis Functions 3 | * Authors: anonymous 4 | * 5 | * Code author: Pascal Guehl 6 | * 7 | * anonymous 8 | * anonymous 9 | */ 10 | 11 | /** 12 | * @version 1.0 13 | */ 14 | 15 | #include "PtViewerConfig.h" 16 | 17 | /****************************************************************************** 18 | ******************************* INCLUDE SECTION ****************************** 19 | ******************************************************************************/ 20 | 21 | /****************************************************************************** 22 | ****************************** NAMESPACE SECTION ***************************** 23 | ******************************************************************************/ 24 | 25 | // GsGraphics 26 | using namespace Pt; 27 | 28 | /****************************************************************************** 29 | ************************* DEFINE AND CONSTANT SECTION ************************ 30 | ******************************************************************************/ 31 | 32 | /****************************************************************************** 33 | ***************************** TYPE DEFINITION ******************************** 34 | ******************************************************************************/ 35 | 36 | //std::string PtEnvironment::mShaderPath = PT_SHADER_PATH + std::string( "/" ); 37 | //std::string PtEnvironment::mProgramPath = PT_PROJECT_PATH + std::string( "/" ); 38 | //std::string PtEnvironment::mImagePath = PT_IMAGE_PATH + std::string( "/" ); 39 | 40 | /****************************************************************************** 41 | ***************************** METHOD DEFINITION ****************************** 42 | ******************************************************************************/ 43 | 44 | /****************************************************************************** 45 | ***************************** METHOD DEFINITION ****************************** 46 | ******************************************************************************/ 47 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Tools/PtViewer/PtViewerConfig.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Publication: Semi-Procedural Textures Using Point Process Texture Basis Functions 3 | * Authors: anonymous 4 | * 5 | * Code author: Pascal Guehl 6 | * 7 | * anonymous 8 | * anonymous 9 | */ 10 | 11 | /** 12 | * @version 1.0 13 | */ 14 | 15 | #ifndef _OS_VIEWER_CONFIG_H_ 16 | #define _OS_VIEWER_CONFIG_H_ 17 | 18 | /****************************************************************************** 19 | ******************************* INCLUDE SECTION ****************************** 20 | ******************************************************************************/ 21 | 22 | // STL 23 | #include 24 | 25 | /****************************************************************************** 26 | ************************* DEFINE AND CONSTANT SECTION ************************ 27 | ******************************************************************************/ 28 | 29 | #define _OS_USE_VIEWER_REFRESH_ 30 | //#define _OS_USE_DEBUG_GL_ 31 | //#define _OS_USE_HOME_PATH_ 32 | 33 | #define _OS_USE_SHADER_DEBUG_ 34 | 35 | /****************************************************************************** 36 | ***************************** TYPE DEFINITION ******************************** 37 | ******************************************************************************/ 38 | 39 | /****************************************************************************** 40 | ******************************** CLASS USED ********************************** 41 | ******************************************************************************/ 42 | 43 | namespace Pt 44 | { 45 | 46 | //class PtEnvironment 47 | //{ 48 | // static std::string mShaderPath; 49 | // static std::string mImagePath; 50 | // static std::string mProgramPath; 51 | //}; 52 | 53 | } 54 | 55 | /****************************************************************************** 56 | ****************************** CLASS DEFINITION ****************************** 57 | ******************************************************************************/ 58 | 59 | #endif // !_OS_VIEWER_CONFIG_H_ 60 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Tools/PtViewer/imgui_impl_glfw_gl3.h: -------------------------------------------------------------------------------- 1 | // ImGui GLFW binding with OpenGL3 + shaders 2 | // In this binding, ImTextureID is used to store an OpenGL 'GLuint' texture identifier. Read the FAQ about ImTextureID in imgui.cpp. 3 | // (GLFW is a cross-platform general purpose library for handling windows, inputs, OpenGL/Vulkan graphics context creation, etc.) 4 | // (GL3W is a helper library to access OpenGL functions since there is no standard header to access modern OpenGL functions easily. Alternatives are GLEW, Glad, etc.) 5 | 6 | // You can copy and use unmodified imgui_impl_* files in your project. See main.cpp for an example of using this. 7 | // If you use this binding you'll need to call 4 functions: ImGui_ImplXXXX_Init(), ImGui_ImplXXXX_NewFrame(), ImGui::Render() and ImGui_ImplXXXX_Shutdown(). 8 | // If you are new to ImGui, see examples/README.txt and documentation at the top of imgui.cpp. 9 | // https://github.com/ocornut/imgui 10 | 11 | struct GLFWwindow; 12 | 13 | IMGUI_API bool ImGui_ImplGlfwGL3_Init(GLFWwindow* window, bool install_callbacks); 14 | IMGUI_API void ImGui_ImplGlfwGL3_Shutdown(); 15 | IMGUI_API void ImGui_ImplGlfwGL3_NewFrame(); 16 | 17 | // Use if you want to reset your rendering device without losing ImGui state. 18 | IMGUI_API void ImGui_ImplGlfwGL3_InvalidateDeviceObjects(); 19 | IMGUI_API bool ImGui_ImplGlfwGL3_CreateDeviceObjects(); 20 | 21 | // GLFW callbacks (installed by default if you enable 'install_callbacks' during initialization) 22 | // Provided here if you want to chain callbacks. 23 | // You can also handle inputs yourself and use those as a reference. 24 | IMGUI_API void ImGui_ImplGlfwGL3_MouseButtonCallback(GLFWwindow* window, int button, int action, int mods); 25 | IMGUI_API void ImGui_ImplGlfwGL3_ScrollCallback(GLFWwindow* window, double xoffset, double yoffset); 26 | IMGUI_API void ImGui_ImplGlfwGL3_KeyCallback(GLFWwindow* window, int key, int scancode, int action, int mods); 27 | IMGUI_API void ImGui_ImplGlfwGL3_CharCallback(GLFWwindow* window, unsigned int c); 28 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/Tools/PtViewer/main.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Publication: Semi-Procedural Textures Using Point Process Texture Basis Functions 3 | * Authors: anonymous 4 | * 5 | * Code author: Pascal Guehl 6 | * 7 | * anonymous 8 | * anonymous 9 | */ 10 | 11 | /** 12 | * @version 1.0 13 | */ 14 | 15 | /****************************************************************************** 16 | ******************************* INCLUDE SECTION ****************************** 17 | ******************************************************************************/ 18 | 19 | // STL 20 | #include 21 | #include 22 | 23 | // System 24 | #include 25 | #include 26 | 27 | // Project 28 | #include "PtApplication.h" 29 | #include 30 | 31 | #include 32 | #include 33 | #include 34 | #include 35 | #include 36 | 37 | /****************************************************************************** 38 | ****************************** NAMESPACE SECTION ***************************** 39 | ******************************************************************************/ 40 | 41 | /****************************************************************************** 42 | ************************* DEFINE AND CONSTANT SECTION ************************ 43 | ******************************************************************************/ 44 | 45 | /****************************************************************************** 46 | ***************************** TYPE DEFINITION ******************************** 47 | ******************************************************************************/ 48 | 49 | /****************************************************************************** 50 | ***************************** METHOD DEFINITION ****************************** 51 | ******************************************************************************/ 52 | 53 | /****************************************************************************** 54 | * Main entry program 55 | * 56 | * @param pArgc Number of arguments 57 | * @param pArgv List of arguments 58 | * 59 | * @return flag telling whether or not it succeeds 60 | ******************************************************************************/ 61 | int main( int pArgc, char** pArgv ) 62 | { 63 | std::cout << "------------------------" << std::endl; 64 | std::cout << "- PPTBF Designer Tool --" << std::endl; 65 | std::cout << "------------------------" << std::endl; 66 | 67 | // Retrieve program directory 68 | int indexParameter = 0; 69 | std::string workingDirectory = ""; 70 | workingDirectory = pArgv[ indexParameter++ ]; 71 | 72 | PtGUI::PtApplication::get(); 73 | PtGUI::PtApplication::get().initialize( workingDirectory.c_str() ); 74 | 75 | // Special settings 76 | // - check command line arguments 77 | const int nbArguments = 1; 78 | if ( pArgc >= ( 1 + nbArguments ) ) 79 | { 80 | Pt::PtEnvironment::mImagePath = std::string( pArgv[ indexParameter++ ] ); 81 | } 82 | 83 | PtGUI::PtApplication::get().execute(); 84 | 85 | PtGUI::PtApplication::get().finalize(); 86 | // todo: add a GLOBAL static finalize(); 87 | 88 | return 0; 89 | } 90 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/cmake_generateProjects.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | rem ************************************************************************** 4 | rem USER : Choose your compiler 5 | rem ************************************************************************** 6 | 7 | rem Call the script selecting the CMAKE compiler (Visual Studio 2010, 2012, etc...) 8 | rem set GS_COMPILER="Visual Studio 14 2015 Win64" 9 | set GS_COMPILER="Visual Studio 15 2017 Win64" 10 | rem set GS_COMPILER="Visual Studio 16 2019 Win64" 11 | 12 | rem ************************************************************************** 13 | rem CMAKE GENERATION 14 | rem ************************************************************************** 15 | 16 | set CURRENTSCRIPTPATH=%CD% 17 | 18 | mkdir Generated 19 | cd Generated 20 | cmake -G %GS_COMPILER% .. 21 | 22 | rem exit 23 | if NOT ERRORLEVEL 0 pause 24 | cd %CURRENTSCRIPTPATH% 25 | pause 26 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/cmake_generateProjects.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # ************************************************************************** 4 | # USER : Choose your compiler 5 | # ************************************************************************** 6 | 7 | # ************************************************************************** 8 | # CMAKE GENERATION 9 | # ************************************************************************** 10 | 11 | mkdir Generated 12 | cd Generated 13 | cmake .. 14 | 15 | # exit 16 | cd .. 17 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/replicate_pptbfResults_matchingStructures.bat: -------------------------------------------------------------------------------- 1 | rem *************************************************************** 2 | rem Reproduce visual structures from PPTBF parameters files 3 | rem *************************************************************** 4 | 5 | rem Data Path (user provided) 6 | set PPTBF_DATA_PATH=Install\PPTBFProject\bin\Data\Matching_structures 7 | 8 | rem go to current directory (for resource path) 9 | set PPTBF_BIN_PATH=Install\PPTBFProject\bin 10 | cd %~dp0%PPTBF_BIN_PATH% 11 | 12 | rem Display BDD file names 13 | rem forfiles /P %~dp0%PPTBF_DATA_PATH% /S /M *.txt /c "cmd /c echo @file" 14 | 15 | rem Launch batch generation 16 | rem - generated images are 400x400 pixels by default 17 | forfiles /P %~dp0%PPTBF_DATA_PATH% /S /M *.txt /c "cmd /c %~dp0%PPTBF_BIN_PATH%\PtBDDGenerator.exe 400 400 @path" 18 | 19 | rem go back to original ditrectory 20 | cd %~dp0 21 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/semiproctex_PPTBF_pseudocode.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ASTex-ICube/semiproctex/af5403a66fce584a34859b0e5e9fbd446fbd141a/PPTBF_Structures_Src/semiproctex_PPTBF_pseudocode.pdf -------------------------------------------------------------------------------- /PPTBF_Structures_Src/tool_launchViewer.bat: -------------------------------------------------------------------------------- 1 | @Echo off 2 | 3 | rem *************************************** 4 | rem CURRENT WORKING DIRECTORY 5 | rem *************************************** 6 | 7 | rem - working directory 8 | cd Install\PPTBFProject\bin 9 | 10 | rem - data path 11 | SET PT_PROJECT_BIN_PATH=%~dp0 12 | SET PT_PROJECT_PATH=%PT_PROJECT_BIN_PATH%/.. 13 | SET PT_DATA_PATH=%PT_PROJECT_PATH%/Data 14 | SET PT_IMAGE_PATH=%PT_DATA_PATH%/Images 15 | SET PT_SHADER_PATH=%PT_DATA_PATH%/Shaders 16 | 17 | rem *************************************** 18 | rem USER CUSTOMIZABLE PARAMETERS 19 | rem *************************************** 20 | 21 | rem *************************************** 22 | rem LAUNCH PROGRAM 23 | rem *************************************** 24 | 25 | @Echo off 26 | 27 | %~dp0Install/PPTBFProject/bin/PtViewer.exe 28 | 29 | @Echo off 30 | 31 | rem *************************************** 32 | rem CURRENT WORKING DIRECTORY 33 | rem *************************************** 34 | 35 | cd ..\..\.. 36 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/tool_launchViewer_DEBUG.bat: -------------------------------------------------------------------------------- 1 | @Echo off 2 | 3 | rem *************************************** 4 | rem CURRENT WORKING DIRECTORY 5 | rem *************************************** 6 | 7 | rem - working directory 8 | cd Install\PPTBFProject\bin 9 | 10 | rem - data path 11 | SET PT_PROJECT_BIN_PATH=%~dp0 12 | SET PT_PROJECT_PATH=%PT_PROJECT_BIN_PATH%/.. 13 | SET PT_DATA_PATH=%PT_PROJECT_PATH%/Data 14 | SET PT_IMAGE_PATH=%PT_DATA_PATH%/Images 15 | SET PT_SHADER_PATH=%PT_DATA_PATH%/Shaders 16 | 17 | rem *************************************** 18 | rem USER CUSTOMIZABLE PARAMETERS 19 | rem *************************************** 20 | 21 | rem *************************************** 22 | rem LAUNCH PROGRAM 23 | rem *************************************** 24 | 25 | @Echo off 26 | 27 | %~dp0Install/PPTBFProject/bin/PtViewerd.exe 28 | 29 | @Echo off 30 | 31 | rem *************************************** 32 | rem CURRENT WORKING DIRECTORY 33 | rem *************************************** 34 | 35 | cd ..\..\.. 36 | -------------------------------------------------------------------------------- /PPTBF_Structures_Src/visualStudio_openSolution.bat: -------------------------------------------------------------------------------- 1 | start Generated\PPTBFProject.sln 2 | -------------------------------------------------------------------------------- /Replicability/Replicability_fromBinaries.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ASTex-ICube/semiproctex/af5403a66fce584a34859b0e5e9fbd446fbd141a/Replicability/Replicability_fromBinaries.pdf -------------------------------------------------------------------------------- /Replicability/figure_11_from_paper.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ASTex-ICube/semiproctex/af5403a66fce584a34859b0e5e9fbd446fbd141a/Replicability/figure_11_from_paper.png -------------------------------------------------------------------------------- /Replicability/supplemental_2_snapshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ASTex-ICube/semiproctex/af5403a66fce584a34859b0e5e9fbd446fbd141a/Replicability/supplemental_2_snapshot.png -------------------------------------------------------------------------------- /Semiproc_synthesis_Src/3rdParty/Externals/build_hview.bat: -------------------------------------------------------------------------------- 1 | mkdir hview-build 2 | cd hview-build 3 | cmake -G "Visual Studio 15 2017 Win64" ..\hview 4 | -------------------------------------------------------------------------------- /Semiproc_synthesis_Src/3rdParty/Externals/hview/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Check CMAKE version 2 | cmake_minimum_required( VERSION 3.0 ) 3 | 4 | # Invite message 5 | message( STATUS "-------------------------------------" ) 6 | message( STATUS "- PROJECT GENERATION : hview Module -" ) 7 | message( STATUS "-------------------------------------" ) 8 | message( STATUS "" ) 9 | 10 | ################################################################################## 11 | # Copy 3rd party dependencies 12 | ################################################################################## 13 | 14 | ################################################################################## 15 | # Copy resources 16 | ################################################################################## 17 | 18 | ################################################################################## 19 | # Project 20 | ################################################################################## 21 | 22 | # Project name 23 | project( hview ) 24 | 25 | set( CMAKE_INSTALL_PREFIX "${CMAKE_SOURCE_DIR}/../../hview" ) 26 | 27 | # Set parallel build mode 28 | #set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /MP" ) 29 | #set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /MP" ) 30 | 31 | # Remove some compilation warnings 32 | add_definitions( -D_CRT_SECURE_NO_WARNINGS ) 33 | 34 | ################################################################################## 35 | # Package Management 36 | ################################################################################## 37 | 38 | ################################################################################## 39 | # Include directories 40 | ################################################################################## 41 | 42 | ################################################################################## 43 | # Program 44 | ################################################################################## 45 | 46 | # Retrieve source files 47 | file( GLOB incList "${CMAKE_CURRENT_SOURCE_DIR}/*.h" ) 48 | file( GLOB srcList "${CMAKE_CURRENT_SOURCE_DIR}/*.cpp" ) 49 | 50 | # Group files in IDE (Visual Studio) 51 | source_group( "Include" FILES ${incList} ) 52 | source_group( "Source" FILES ${srcList} ) 53 | 54 | # Target program 55 | # - source files 56 | set( resList ${resList} ${incList} ) 57 | # target 58 | add_library( ${PROJECT_NAME} STATIC ${srcList} ${resList} ) 59 | 60 | ##################################################### 61 | set( CUSTOM_DEBUG_POSTFIX "d" ) 62 | set_target_properties( ${PROJECT_NAME} PROPERTIES DEBUG_POSTFIX ${CUSTOM_DEBUG_POSTFIX} ) 63 | ##################################################### 64 | 65 | ################################################################################## 66 | # Linked libraries 67 | ################################################################################## 68 | 69 | # Project property 70 | set_property( TARGET ${PROJECT_NAME} PROPERTY CXX_STANDARD 11 ) 71 | 72 | ################################################################################## 73 | # Custom commands 74 | ################################################################################## 75 | 76 | # Copy library 77 | #add_custom_command(TARGET ${PROJECT_NAME} 78 | # POST_BUILD 79 | # #COMMAND ${CMAKE_COMMAND} -E echo "Copy DLL" 80 | # COMMAND ${CMAKE_COMMAND} -E copy_if_different $ ${CMAKE_CURRENT_BINARY_DIR}/../PtViewer/$ 81 | #) 82 | 83 | # Executables 84 | #install( TARGETS ${PROJECT_NAME} DESTINATION bin ) 85 | # Libraries 86 | install( TARGETS ${PROJECT_NAME} ARCHIVE DESTINATION lib ) 87 | install( FILES ${resList} DESTINATION include ) 88 | #install( FILES $ DESTINATION bin OPTIONAL ) 89 | 90 | -------------------------------------------------------------------------------- /Semiproc_synthesis_Src/3rdParty/Externals/hview/MyThreadPool.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Code author: Frederic Larue 3 | */ 4 | 5 | /** 6 | * @version 1.0 7 | */ 8 | 9 | #ifndef __MYTHREADPOOL_H__ 10 | #define __MYTHREADPOOL_H__ 11 | 12 | 13 | 14 | 15 | #include 16 | #include 17 | #include 18 | 19 | 20 | class MyThreadPool 21 | { 22 | public: 23 | using Task = std::packaged_task; 24 | 25 | // Some data associated to each thread. 26 | struct ThreadData 27 | { 28 | int id; // Could use thread::id, but this is filled before the thread is started 29 | int nThreads; // Total number of threads. 30 | std::thread t; // The thread object 31 | std::queue tasks; // The job queue 32 | std::condition_variable cv; // The condition variable to wait for threads 33 | std::mutex m; // Mutex used for avoiding data races 34 | bool stop; // When set, this flag tells the thread that it should exit 35 | }; 36 | 37 | private: 38 | // The thread function executed by each thread 39 | static inline void threadFunc( ThreadData* pData ) 40 | { 41 | std::unique_lock l( pData->m, std::defer_lock ); 42 | while( true ) 43 | { 44 | l.lock(); 45 | 46 | // Wait until the queue won't be empty or stop is signaled 47 | pData->cv.wait(l, [pData] () 48 | { 49 | return (pData->stop || !pData->tasks.empty()); 50 | } ); 51 | 52 | // Stop was signaled, let's exit the thread 53 | if (pData->stop) { return; } 54 | 55 | // Pop one task from the queue... 56 | Task task = std::move( pData->tasks.front() ); 57 | pData->tasks.pop(); 58 | 59 | l.unlock(); 60 | 61 | // Execute the task! 62 | task(); 63 | } 64 | } 65 | 66 | int nThreads; 67 | ThreadData* threads; 68 | std::vector< std::future > futures; 69 | 70 | public: 71 | inline MyThreadPool() 72 | { 73 | nThreads = (int) std::thread::hardware_concurrency(); 74 | threads = new ThreadData [ nThreads ]; 75 | 76 | for( int i=0; i 86 | inline void AppendTask( const TFunc& func ) 87 | { 88 | for( int i=0; i l( threads[i].m ); 96 | threads[i].tasks.push( std::move(task) ); 97 | 98 | // Notify the thread that there is work do to... 99 | threads[i].cv.notify_one(); 100 | } 101 | 102 | // Wait for all the tasks to be completed... 103 | for( auto& f : futures ) 104 | f.wait(); 105 | futures.clear(); 106 | } 107 | 108 | inline ~MyThreadPool() 109 | { 110 | // Send stop signal to all threads and join them... 111 | for( int i=0; i l( threads[i].m ); 114 | threads[i].stop = true; 115 | threads[i].cv.notify_one(); 116 | } 117 | 118 | // Join all the threads 119 | for( int i=0; i 1000 13 | #pragma once 14 | #endif // _MSC_VER > 1000 15 | 16 | #include "hvError.h" 17 | 18 | #include 19 | 20 | namespace hview { 21 | 22 | template class hvArray2 23 | { 24 | protected: 25 | T *t; 26 | int sx, sy; 27 | 28 | public: 29 | hvArray2() { t=0; sx=0; sy=0; } 30 | hvArray2(int x, int y, T nil) 31 | { 32 | t = new T[x*y]; 33 | if (t==0) { sx=-1; sy=1; return; } 34 | for (int i=0; i= sx || y < 0 || y >= sy)); 132 | assert(t != NULL); 133 | return t[x+y*sx]; 134 | } 135 | void update(int x, int y, T val) 136 | { 137 | assert(!(x < 0 || x >= sx || y < 0 || y >= sy)); 138 | assert(t != NULL); 139 | t[x+y*sx]=val; 140 | } 141 | 142 | ~hvArray2() { if (t!=0) delete [] t; } 143 | 144 | }; 145 | 146 | 147 | } 148 | #endif // !defined(AFX_ARRAY2_H__164A3508_C961_4D87_AD7A_9D43051600EA__INCLUDED_) 149 | -------------------------------------------------------------------------------- /Semiproc_synthesis_Src/3rdParty/Externals/hview/hvError.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Code author: Jean-Michel Dischler 3 | */ 4 | 5 | /** 6 | * @version 1.0 7 | */ 8 | 9 | #if !defined(AFX_ERROR_H__09002DDD_2472_43B9_B7B6_FCB6FF1B6B0D__INCLUDED_) 10 | #define AFX_ERROR_H__09002DDD_2472_43B9_B7B6_FCB6FF1B6B0D__INCLUDED_ 11 | 12 | #if _MSC_VER > 1000 13 | #pragma once 14 | #endif // _MSC_VER > 1000 15 | 16 | 17 | #include 18 | #include 19 | 20 | inline void hvFatal(const char *str) 21 | { 22 | std::cout<<"Internal error:"< 1000 13 | #pragma once 14 | #endif // _MSC_VER > 1000 15 | 16 | //////////////////////////////////////////// 17 | /* 18 | Field: is an array of dimension N=1,2,3 containing elements of type X. 19 | X : is a scalable (implements hviAlgebra operators) 20 | */ 21 | //////////////////////////////////////////// 22 | //////////////////////////////////////////// 23 | 24 | #include 25 | #include "hvError.h" 26 | 27 | namespace hview { 28 | 29 | const unsigned int MAX_FIELD_DIMENSION=3; 30 | 31 | template class hvField 32 | { 33 | public: 34 | enum bordertype { CLAMP, LOOP, MIRROR }; 35 | protected: 36 | bordertype loop[MAX_FIELD_DIMENSION]; 37 | X clampvalue; 38 | public: 39 | hvField() { clampvalue=X(0); } 40 | hvField(const X &cl) { clampvalue=cl; } 41 | // copy 42 | hvField(const hvField &a) 43 | { 44 | hvFatal("No temporary creation of hvField!"); 45 | } 46 | hvField &operator=(hvField &a) 47 | { 48 | hvFatal("No operator= for hvField!"); 49 | return a; 50 | } 51 | 52 | static int index(int i, bordertype b, int s) 53 | { 54 | int id=i; 55 | if (b==CLAMP) return i; 56 | while (id<0) { if (b==MIRROR) id=-id; else id += s; } 57 | if (b==MIRROR && (id/s)%2==1) id = s-(id%s)-1; 58 | else id = id%s; 59 | return id; 60 | } 61 | 62 | virtual void update(int ind[], X val) =0; 63 | virtual void clear(X val) =0; 64 | virtual int size(int dim) const =0; 65 | X getClampValue() const { return clampvalue; } 66 | bordertype getLoop(int dim) 67 | { 68 | if (dim>=dimension()) hvFatal("too high dimension in hvField::getLoop"); 69 | return loop[dim]; 70 | } 71 | 72 | virtual void setLoop(int dim, bordertype v) 73 | { 74 | if (dim>=dimension()) hvFatal("too high dimension in hvField::setLoop"); 75 | loop[dim]=v; 76 | } 77 | virtual void setClampValue(X v) { clampvalue=v; } 78 | 79 | virtual int dimension() const = 0; 80 | virtual X operator()(int ind[]) const = 0; 81 | virtual X get(int ind[]) const = 0; 82 | 83 | virtual void scale(int k) =0; 84 | virtual void scale(float k) =0; 85 | virtual void scale(double k) =0; 86 | 87 | virtual void add(hvField *f) =0; 88 | 89 | virtual void clone(hvField *f) =0; 90 | virtual void shrink(hvField *f) =0; 91 | 92 | virtual void derivative(hvField *f, int dim) =0; 93 | 94 | }; 95 | 96 | 97 | 98 | } 99 | 100 | #endif // !defined(AFX_SCAL_H__B6AC0A32_75EF_428E_BC10_6219F619FA29__INCLUDED_) 101 | -------------------------------------------------------------------------------- /Semiproc_synthesis_Src/3rdParty/Externals/hview/hvFrame3.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Code author: Jean-Michel Dischler 3 | */ 4 | 5 | /** 6 | * @version 1.0 7 | */ 8 | 9 | // hvFrame3.h: interface for the frame3 class. 10 | // 11 | // hvFrame3: defines a frame for an euclidian 3D space 12 | // a frame is composed of an origin point and 3 orthonormal vectors 13 | // frame3 is composed of a vec3 and a mat3 14 | // main operations allow to change points and vectors from one frame to another 15 | // by extracting transfer matrices 16 | // 17 | // By JMD 10/8/06 18 | ////////////////////////////////////////////////////////////////////// 19 | 20 | #if !defined(AFX_FRAME3_H__824D3162_521A_4FD7_9D86_19B3BA026926__INCLUDED_) 21 | #define AFX_FRAME3_H__824D3162_521A_4FD7_9D86_19B3BA026926__INCLUDED_ 22 | 23 | #if _MSC_VER > 1000 24 | #pragma once 25 | #endif // _MSC_VER > 1000 26 | 27 | #include "hvMat4.h" 28 | 29 | namespace hview { 30 | 31 | template class hvFrame3 32 | { 33 | protected: 34 | 35 | hvVec3 ori; 36 | hvMat3 mat; 37 | 38 | public: 39 | // constructors 40 | hvFrame3():mat(), ori(hvVec3(T(0),T(0),T(0))) { } 41 | hvFrame3(const hvVec3 &o, const hvVec3 &x, const hvVec3 &y, const hvVec3 &z) : mat(x,y,z),ori(o) { } 42 | hvFrame3(const hvVec3 &o):mat(), ori(o) { } 43 | hvFrame3(const hvVec3 &o, const hvMat3 &m):mat(m), ori(o) { } 44 | 45 | void setOrigin(const hvVec3 &o) { ori=o; } 46 | 47 | // selectors 48 | hvVec3 origin() const { return ori; } 49 | hvVec3 I() const { return mat.I(); } 50 | hvVec3 J() const { return mat.J(); } 51 | hvVec3 K() const { return mat.K(); } 52 | 53 | 54 | hvVec3 coordinates(const hvVec3 &pt) const 55 | { 56 | hvVec3 p; p.PVec(ori,pt); 57 | return hvVec3(p.dot(this->I())/ this->I().normSquared(),p.dot(this->J())/ this->J().normSquared(),p.dot(this->K())/ this->K().normSquared()); 58 | } 59 | 60 | T det() const { return mat.det(); } 61 | bool operator==(const hvFrame3 &f) const 62 | { 63 | return ori==f.ori && mat==f.mat; 64 | } 65 | // Compute change of frame matrix (dimension 3) for vectors 66 | // Resulting matrix allows to express a vector given in base coordinates : 67 | // (1,0,0);(0,1,0);(0,0,1) into the frame coordinates 68 | hvMat3 changeToFrame3(T det) const 69 | { 70 | hvMat3 r; 71 | r.inverse(mat, det); 72 | return r; 73 | } 74 | 75 | // Compute change of frame matrix (dimension 3) for vectors 76 | // Resulting matrix allows to express a vector given in frame coordinates 77 | // into basic coordinates, e.g. (1,0,0);(0,1,0);(0,0,1) 78 | hvMat3 changeFromFrame3() const 79 | { 80 | return mat; 81 | } 82 | 83 | // Compute change of frame matrix (dimension 4) for points 84 | // Resulting matrix allows to express a point given in base coordinates : 85 | // O(0,0,0);i(1,0,0);j(0,1,0);k(0,0,1) into the frame coordinates 86 | hvMat4 changeToFrame4(T det) const 87 | { 88 | hvVec3 io=ori; io.reverse(); 89 | hvMat4 m1(hvMat3(), io); 90 | hvMat3 r=this->changeToFrame3(det); 91 | hvMat4 m2(r); 92 | m1.mult(m1, m2); 93 | return m1; 94 | } 95 | 96 | // Compute change of frame matrix (dimension 4) for points 97 | // Resulting matrix allows to express a point given in frame coordinates 98 | // into basic coordinates, e.g. O(0,0,0);i(1,0,0);j(0,1,0);k(0,0,1) 99 | hvMat4 changeFromFrame4() const 100 | { 101 | hvMat3 r=this->changeFromFrame3(); 102 | hvMat4 m1(r); 103 | hvVec3 io=ori; 104 | hvMat4 m2(hvMat3(), io); 105 | m1.mult(m1, m2); 106 | return m1; 107 | } 108 | 109 | }; 110 | 111 | } 112 | 113 | 114 | #endif // !defined(AFX_FRAME3_H__824D3162_521A_4FD7_9D86_19B3BA026926__INCLUDED_) 115 | -------------------------------------------------------------------------------- /Semiproc_synthesis_Src/3rdParty/Externals/hview/hvLine3.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Code author: Jean-Michel Dischler 3 | */ 4 | 5 | /** 6 | * @version 1.0 7 | */ 8 | 9 | // line3.h: interface for the line3 class. 10 | // 11 | // line3 defines a line in a 3D space: L= O+Dl, where O is origin and D direction 12 | // 13 | // By JMD 10/8/06 14 | ////////////////////////////////////////////////////////////////////// 15 | 16 | #if !defined(AFX_LINE3_H__EC87CD56_6E08_4390_B876_CEC6D44EEA86__INCLUDED_) 17 | #define AFX_LINE3_H__EC87CD56_6E08_4390_B876_CEC6D44EEA86__INCLUDED_ 18 | 19 | #if _MSC_VER > 1000 20 | #pragma once 21 | #endif // _MSC_VER > 1000 22 | 23 | #include "hvVec3.h" 24 | 25 | namespace hview { 26 | 27 | template class line3 28 | { 29 | protected: 30 | hvVec3 o; // origin 31 | hvVec3 d; // direction 32 | public: 33 | // constructors 34 | line3() { } 35 | 36 | // defines a line by a point pt (origin) and a vector dir (direction) 37 | // dir must be normalized 38 | line3(const hvVec3 &pt, const hvVec3 &dir) { o = pt; d = dir; } 39 | 40 | // defines a line from origin (0,0,0) in direction dir 41 | // dir must be normalized 42 | line3(const hvVec3 &dir) : o(T(0)) { d = dir; } 43 | 44 | // selectors 45 | hvVec3 origin() const { return o; } 46 | hvVec3 direction() const { return d; } 47 | 48 | // Compute a point (result) on the line at distance l from the origin 49 | hvVec3 pointOfLine(T l) const 50 | { 51 | hvVec3 p; p.scale(d, l); 52 | p += o; 53 | return p; 54 | } 55 | 56 | void reverse() { d.reverse(); } 57 | 58 | }; 59 | 60 | } 61 | #endif // !defined(AFX_LINE3_H__EC87CD56_6E08_4390_B876_CEC6D44EEA86__INCLUDED_) 62 | -------------------------------------------------------------------------------- /Semiproc_synthesis_Src/3rdParty/Externals/hview/hvLinearTransform2.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Code author: Jean-Michel Dischler 3 | */ 4 | 5 | /** 6 | * @version 1.0 7 | */ 8 | 9 | // LinearTransform2.h: interface for the LinearTransform2 class. 10 | // 11 | // Define a linear transform in 2D space (scaling, translation, rotation, etc.) 12 | // 13 | // LinearTransform2 derives from matrix 3x3 (homogenous coordinates) 14 | // A main operation consists in applying the transform to 2D points 15 | // 16 | // By JMD 18/1/08 17 | ////////////////////////////////////////////////////////////////////// 18 | 19 | #if !defined(AFX_LINEARTRANSFORM2_H__33F894B9_F2FB_4902_97D2_D69639938055__INCLUDED_) 20 | #define AFX_LINEARTRANSFORM2_H__33F894B9_F2FB_4902_97D2_D69639938055__INCLUDED_ 21 | 22 | #if _MSC_VER > 1000 23 | #pragma once 24 | #endif // _MSC_VER > 1000 25 | 26 | #include "hvMat3.h" 27 | #include "hviTransform.h" 28 | 29 | namespace hview { 30 | 31 | template class hvLinearTransform2 : public hvMat3, public hviTransform, hvVec2 > 32 | { 33 | public: 34 | // constructor: defines identity transform 35 | hvLinearTransform2() { } 36 | 37 | template void cast(const hvLinearTransform2 &v) { hvMat3::i.cast(v.I()); hvMat3::j.cast(v.J()); hvMat3::k.cast(v.K()); } 38 | 39 | void setIdentity() { hvMat3::i=hvVec3(1,0,0); hvMat3::j=hvVec3(0,1,0); hvMat3::k=hvVec3(0,0,1); } 40 | 41 | // List of transforms: each is composed with the current one 42 | 43 | // shift of vector v 44 | void translation(const hvVec2 &v) 45 | { 46 | hvMat3 m(hvVec3(1,0,0), hvVec3(0,1,0), hvVec3(v.X(),v.Y(),1)); 47 | this->mult(*this, m); 48 | } 49 | 50 | // scale the three components by factors given by v 51 | void scale(const hvVec2 &v) 52 | { 53 | hvMat3 m(hvVec3(v.X(),0,0), hvVec3(0,v.Y(),0), hvVec3(0,0,1)); 54 | this->mult(*this, m); 55 | } 56 | 57 | 58 | // rotation by angle a in radiant 59 | void rot(T a) 60 | { 61 | hvMat3 m( hvVec3(cos(a), sin(a), 0.0), 62 | hvVec3(-sin(a), cos(a), 0.0), 63 | hvVec3(0.0, 0.0, 1.0) ); 64 | this->mult(*this, m); 65 | } 66 | 67 | 68 | // compose two transforms with each other 69 | void compose(const hvLinearTransform2 &a, const hvLinearTransform2 &b) { this->mult(a,b); } 70 | 71 | // apply a transform to a 2D point, result is a 2D point 72 | hvVec2 apply(const hvVec2 &v) const { hvVec3 u(v.X(), v.Y(), 1); hvVec3 r=this->mult(u); return hvVec2(r.X()/r.Z(),r.Y()/r.Z()); } 73 | hvVec3 apply(const hvVec3 &v) const { return this->mult(v); } 74 | 75 | // apply transform to a vector, result is a new vector 76 | // this is the same as for point, but no translation is applied 77 | // NOTE: the norm of resulting vector is not preserved 78 | hvVec2 applyVec2(const hvVec2 &v) const 79 | { 80 | hvMat3 m = *this; 81 | hvMat2 mm= (hvMat2)m; 82 | return mm.mult(v); 83 | } 84 | 85 | 86 | }; 87 | 88 | } 89 | 90 | #endif // !defined(AFX_TRANSFORM2_H__33F894B9_F2FB_4902_97D2_D69639938055__INCLUDED_) 91 | -------------------------------------------------------------------------------- /Semiproc_synthesis_Src/3rdParty/Externals/hview/hvPair.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Code author: Jean-Michel Dischler 3 | */ 4 | 5 | /** 6 | * @version 1.0 7 | */ 8 | 9 | // hvPair.h: interface for the pair class. 10 | // 11 | ////////////////////////////////////////////////////////////////////// 12 | 13 | #if !defined(AFX_PAIR_H__09002DDD_2472_43B9_B7B6_FCB6FF1B6B0D__INCLUDED_) 14 | #define AFX_PAIR_H__09002DDD_2472_43B9_B7B6_FCB6FF1B6B0D__INCLUDED_ 15 | 16 | #if _MSC_VER > 1000 17 | #pragma once 18 | #endif // _MSC_VER > 1000 19 | 20 | #include "hvError.h" 21 | 22 | namespace hview { 23 | 24 | template class hvPair 25 | { 26 | protected: 27 | T left; 28 | U right; 29 | 30 | public: 31 | hvPair() { left=T(0); right=U(0); } 32 | hvPair(const T &x, const U &y) { left=x; right=y; } 33 | 34 | void setLeft(const T &x) { left=x; } 35 | void setRight(const U &x) { right=x; } 36 | T getLeft() { return left; } 37 | U getRight() { return right; } 38 | bool operator==(const hvPair &pp) const 39 | { 40 | return left==pp.left && right==pp.right; 41 | } 42 | 43 | // complex numbers 44 | double mod() { return sqrt((double)left*(double)left+(double)right*(double)right); } 45 | double energy() { return (double)left*(double)left+(double)right*(double)right; } 46 | double phase() 47 | { 48 | double rr, r = (double)left, i = (double)right; 49 | 50 | if (r==0.0 && i==0.0) return(0.0); 51 | if ((r>0.0?r:-r)>(i>0.0?i:-i)) 52 | { 53 | rr = i/r; 54 | if (r<0.0) rr = M_PI+atan(rr); 55 | else rr = atan(rr); 56 | } 57 | else 58 | { 59 | rr = r/i; 60 | if (i>0.0) rr = M_PI/2.0-atan(rr); 61 | else rr = 3.0*M_PI/2.0-atan(rr); 62 | } 63 | if (rr>M_PI) return(rr-2.0*M_PI); 64 | else if (rr<-M_PI) return(rr+2.0*M_PI); 65 | return(rr); 66 | } 67 | 68 | }; 69 | 70 | } 71 | #endif // !defined(AFX_PAIR_H__09002DDD_2472_43B9_B7B6_FCB6FF1B6B0D__INCLUDED_) 72 | -------------------------------------------------------------------------------- /Semiproc_synthesis_Src/3rdParty/Externals/hview/hvPerspective.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Code author: Jean-Michel Dischler 3 | */ 4 | 5 | /** 6 | * @version 1.0 7 | */ 8 | 9 | // perspect.h: interface for the perspective class. 10 | // 11 | ////////////////////////////////////////////////////////////////////// 12 | 13 | #if !defined(AFX_PERSPECT_H__BB034B5A_4CC1_4FBC_B131_9AECA8B630DB__INCLUDED_) 14 | #define AFX_PERSPECT_H__BB034B5A_4CC1_4FBC_B131_9AECA8B630DB__INCLUDED_ 15 | 16 | #if _MSC_VER > 1000 17 | #pragma once 18 | #endif // _MSC_VER > 1000 19 | 20 | #include "hvFrame3.h" 21 | #include "hvTransform.h" 22 | #include "hvLine3.h" 23 | 24 | namespace hview { 25 | 26 | // Defines a perspective projection in 3D space: a linear transform that changes a 3D point into another 3D point belonging to a projection 27 | // plan. The result of projection is a point P(x,y,z) where x,y,z are normalized between -1 and 1 28 | // (x,y) defines a 2D vector according to a 2D frame located on the projection plane 29 | // z is a distance measurement of the projected point towards the projection plane (it is normalized according 30 | // to a maximal distance called farplane) 31 | 32 | template class perspective : public transform 33 | { 34 | protected: 35 | hvFrame3 eyeframe; 36 | hvVec3 lookat; 37 | T width, height, focus, farplane; 38 | 39 | public: 40 | perspective() : eyeframe(), lookat() { width = T(0.0); height = T(0.0); focus = T(0.0); farplane = T(1.0); } 41 | 42 | perspective(const hvVec3 &eye, const hvVec3 &at, const hvVec3 &up, T w, T h, T n, T f) 43 | { 44 | hvVec3 zaxis; zaxis.PVec(eye, at); 45 | zaxis.normalize(zaxis.norm()); 46 | hvVec3 xaxis; 47 | xaxis.cross(up, zaxis); 48 | xaxis.normalize(xaxis.norm()); 49 | zaxis.reverse(); 50 | eyeframe = hvFrame3(eye, xaxis, up, zaxis); 51 | lookat = at; 52 | width = w; height = h; focus = n; farplane = f; 53 | this->frustum(-w / T(2.0), w / T(2.0), -h / T(2.0), h / T(2.0), n, f); 54 | this->lookAt(eye, at, up); 55 | } 56 | 57 | // selectors 58 | hvVec3 getOrigin() const { return eyeframe.origin(); } 59 | hvFrame3 getFrame() const { return eyeframe; } 60 | hvVec3 getLookAt() const { return lookat; } 61 | 62 | bool project(const hvVec3 &p, hvVec3 &res) const 63 | { 64 | hvVec3 pv; pv.PVec(eyeframe.origin(), p); 65 | if (pv.dot(eyeframe.K()) >= 0.0) return false; 66 | hvVec4 u(p); 67 | hvVec4 v = this->mult(u); 68 | if (v.W() == T(0.0)) return false; 69 | res = hvVec3(v); 70 | return true; 71 | } 72 | 73 | line3 reverse(const hvVec3 &p) const 74 | { 75 | hvVec3 r = eyeframe.K(); 76 | r.scale(-focus); 77 | hvVec3 xx = eyeframe.I(); 78 | xx.scale(p.X()*width / T(2.0)); 79 | hvVec3 yy = eyeframe.J(); 80 | yy.scale(p.Y()*height / T(2.0)); 81 | r += xx; r += yy; 82 | r.normalize(r.norm()); 83 | return line3(eyeframe.origin(), r); 84 | } 85 | 86 | }; 87 | 88 | } 89 | #endif // !defined(AFX_MONOPERSPECT_H__BB034B5A_4CC1_4FBC_B131_9AECA8B630DB__INCLUDED_) 90 | -------------------------------------------------------------------------------- /Semiproc_synthesis_Src/3rdParty/Externals/hview/hvPlan3.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Code author: Jean-Michel Dischler 3 | */ 4 | 5 | /** 6 | * @version 1.0 7 | */ 8 | 9 | // plan3.h: interface for the plan3 class. 10 | // 11 | // Defines a plane in 3D space, it is defined by equation: aX+bY+cZ+d=0 12 | // 13 | // By JMD 10/8/06 14 | ////////////////////////////////////////////////////////////////////// 15 | 16 | #if !defined(AFX_PLAN3_H__7DA1FB24_546C_442A_A00F_9F3F688FEBCD__INCLUDED_) 17 | #define AFX_PLAN3_H__7DA1FB24_546C_442A_A00F_9F3F688FEBCD__INCLUDED_ 18 | 19 | #if _MSC_VER > 1000 20 | #pragma once 21 | #endif // _MSC_VER > 1000 22 | 23 | namespace hview { 24 | 25 | #include "hvLine3.h" 26 | 27 | template class plan3 28 | { 29 | protected: 30 | T a, b, c, d; /* ax + by + cz +d =0 */ 31 | 32 | public: 33 | // constructor 34 | plan3() { a = T(0); b = T(0); c = T(0); d = T(0); } 35 | 36 | // defines a plane with one point p and two vectors u and v 37 | // p is the origin, u and v must be two non-colinear vectors 38 | plan3(const hvVec3 &p, const hvVec3 &u, const hvVec3 &v) 39 | { 40 | hvVec3 n; n.cross(u, v); 41 | n.normalize(n.norm()); 42 | a = n.X(); b = n.Y(); c = n.Z(); 43 | d = -n.dot(p); 44 | } 45 | 46 | // defines a plane with a point p and a normal vector n 47 | // p is the origin, n is normal vector to plane 48 | plan3(const hvVec3 &p, const hvVec3 &n) 49 | { 50 | a = n.X(); b = n.Y(); c = n.Z(); 51 | d = -n.dot(p); 52 | } 53 | 54 | // get the plane normal 55 | hvVec3 normal() const { return hvVec3(a, b, c); } 56 | 57 | // compute plane equation using p coordinates, e.g. ap.X+bp.Y+cp.Z+d 58 | // result is scalar value: 0 means p is exactly on the plane 59 | T pointInPlan(const hvVec3 &p) const 60 | { 61 | return d + p.dot(normal()); 62 | } 63 | 64 | void reverse() { a = -a; b = -b; c = -c; d = -d; } 65 | 66 | }; 67 | 68 | } 69 | 70 | #endif // !defined(AFX_PLAN3_H__7DA1FB24_546C_442A_A00F_9F3F688FEBCD__INCLUDED_) 71 | -------------------------------------------------------------------------------- /Semiproc_synthesis_Src/3rdParty/Externals/hview/hviTransform.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Code author: Jean-Michel Dischler 3 | */ 4 | 5 | /** 6 | * @version 1.0 7 | */ 8 | 9 | // hviTransform.h: interface (abstract object) for a Transformation. 10 | // 11 | // JMD 1/01/2007 12 | ////////////////////////////////////////////////////////////////////// 13 | 14 | #if !defined(AFX_TRANSFORM_H__B6AC0A32_75EF_428E_BC10_6219F619FA29__INCLUDED_) 15 | #define AFX_TRANSFORM_H__B6AC0A32_75EF_428E_BC10_6219F619FA29__INCLUDED_ 16 | 17 | #if _MSC_VER > 1000 18 | #pragma once 19 | #endif // _MSC_VER > 1000 20 | 21 | //////////////////////////////////////////// 22 | /* 23 | A Transformation T consists of a conversion of an object U to another object of the same data type U 24 | The interface implements following issues: 25 | the application of the transform to an object U 26 | and the composition of two transforms 27 | Neutral transform is called Identity. 28 | */ 29 | //////////////////////////////////////////// 30 | //////////////////////////////////////////// 31 | 32 | namespace hview { 33 | 34 | template class hviTransform 35 | { 36 | public: 37 | // apply a transform to an object of type T, returns another object of type T 38 | virtual U apply(const U &a) const =0; 39 | 40 | // compose two transforms 41 | virtual void compose(const T &a, const T &b) =0; 42 | 43 | // set identity 44 | virtual void setIdentity() =0; 45 | }; 46 | 47 | } 48 | #endif // !defined(AFX_ALGEBRA_H__B6AC0A32_75EF_428E_BC10_6219F619FA29__INCLUDED_) 49 | -------------------------------------------------------------------------------- /Semiproc_synthesis_Src/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | #---------------------------------------------------------------- 2 | # SemiProcTex PROJECT CMake file 3 | # Main user file 4 | #---------------------------------------------------------------- 5 | 6 | # Check CMAKE version 7 | cmake_minimum_required( VERSION 3.0 ) 8 | 9 | #---------------------------------------------------------------- 10 | # Project 11 | #---------------------------------------------------------------- 12 | 13 | # Invite message 14 | message( STATUS "--------------------------------------------" ) 15 | message( STATUS "- PROJECT GENERATION : SemiProcTex Library -" ) 16 | message( STATUS "--------------------------------------------" ) 17 | message( STATUS "" ) 18 | 19 | # Project name 20 | project( SemiProcTexProject ) 21 | 22 | set( CMAKE_INSTALL_PREFIX "${CMAKE_SOURCE_DIR}/Install/SemiProcTexProject" ) 23 | 24 | # Add PATH variables to be retrieved in source code 25 | set( PT_PROJECT_PATH "${CMAKE_SOURCE_DIR}/.." ) 26 | set( PT_DATA_PATH "${PT_PROJECT_PATH}/Data" ) 27 | set( PT_IMAGE_PATH "${PT_DATA_PATH}/Images" ) 28 | set( PT_SHADER_PATH "${PT_DATA_PATH}/Shaders" ) 29 | get_filename_component( PT_PROJECT_PATH "${CMAKE_SOURCE_DIR}/.." ABSOLUTE ) 30 | get_filename_component( PT_DATA_PATH "${PT_PROJECT_PATH}/Data" ABSOLUTE ) 31 | get_filename_component( PT_IMAGE_PATH "${PT_DATA_PATH}/Images" ABSOLUTE ) 32 | get_filename_component( PT_SHADER_PATH "${PT_DATA_PATH}/Shaders" ABSOLUTE ) 33 | add_definitions( -DPT_PROJECT_PATH="${PT_PROJECT_PATH}" ) 34 | add_definitions( -DPT_DATA_PATH="${PT_DATA_PATH}" ) 35 | add_definitions( -DPT_IMAGE_PATH="${PT_IMAGE_PATH}" ) 36 | add_definitions( -DPT_SHADER_PATH="${PT_SHADER_PATH}" ) 37 | 38 | #---------------------------------------------------------------- 39 | # Add Library/Tools path 40 | #---------------------------------------------------------------- 41 | 42 | # SDK / API 43 | add_subdirectory( "${CMAKE_SOURCE_DIR}/SptSynthesizer" ) 44 | -------------------------------------------------------------------------------- /Semiproc_synthesis_Src/Data/Textures/cells/20181215_153153_featcol_class.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ASTex-ICube/semiproctex/af5403a66fce584a34859b0e5e9fbd446fbd141a/Semiproc_synthesis_Src/Data/Textures/cells/20181215_153153_featcol_class.png -------------------------------------------------------------------------------- /Semiproc_synthesis_Src/Data/Textures/cells/20181215_153153_scrop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ASTex-ICube/semiproctex/af5403a66fce584a34859b0e5e9fbd446fbd141a/Semiproc_synthesis_Src/Data/Textures/cells/20181215_153153_scrop.png -------------------------------------------------------------------------------- /Semiproc_synthesis_Src/Data/Textures/cells/20181215_153153_scrop_semiproctex_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.631067 2 | 7 0.692 140 1.096 0.971 0.017 0.231 4 1 3.646 0 2 2 1 2.158 0 2 0 0 9 9 2 0.2 1 1 0.109112 1 0 3 | -------------------------------------------------------------------------------- /Semiproc_synthesis_Src/Data/Textures/cells/20181215_153153_scrop_synthesis_params.txt: -------------------------------------------------------------------------------- 1 | [EXEMPLAR] 2 | name 20181215_153153 3 | exemplarSize 450 450 4 | [SYNTHESIS] 5 | outputSize 900 900 6 | [PYRAMID] 7 | nbMipmapLevels 9 8 | pyramidMaxLevel 8 9 | pyramidMinSize 14 10 | nbPyramidLevels 6 11 | [BLOCK INITIALIZATION] 12 | blockGrid 4 4 13 | blockSize 256 256 14 | useSmartInitialization 1 15 | smartInitNbPasses 136 16 | [CORRECTION PASS] 17 | correctionNbPasses 1 18 | correctionSubPassBlockSize 3 19 | correctionNeighborhoodSize 2 20 | correctionNeighborSearchRadius 3 21 | correctionNeighborSearchNbSamples 16 22 | correctionNeighborSearchDDepth 2 23 | [MATERIAL] 24 | correctionWeightAlbedo 1 25 | correctionWeightHeight 1 26 | correctionWeightNormal 1 27 | correctionWeightRoughness 1 28 | [LABEL MAP] 29 | useLabelMap 1 30 | labelmapType 0 31 | useLabelSampler 0 32 | labelSamplerAreaThreshold 2500 33 | [GUIDANCE] 34 | correctionGuidanceWeight 0.85 35 | correctionExemplarWeightDistance 0 36 | correctionGuidanceWeightDistance 0 37 | correctionLabelErrorAmount 0.765 38 | [SEMI PROCEDURAL] 39 | PPTBFThreshold 0.0546875 40 | relaxContraints 0.0546875 0.0546875 41 | guidanceWeight 1 0 42 | distancePower 0.1 43 | initializationError 0.196078 44 | nbLabels 6 45 | [PPTBF] 46 | shift 10 10 47 | -------------------------------------------------------------------------------- /Semiproc_synthesis_Src/Data/Textures/cells/20181215_153153_seg_scrop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ASTex-ICube/semiproctex/af5403a66fce584a34859b0e5e9fbd446fbd141a/Semiproc_synthesis_Src/Data/Textures/cells/20181215_153153_seg_scrop.png -------------------------------------------------------------------------------- /Semiproc_synthesis_Src/Data/Textures/cells/20181215_153153_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.631067 2 | 7 0.692 130 1.096 0.971 0.017 0.231 4 1 3.646 0 2 2 1 2.158 0 2 0 0 9 9 2 0.2 1 1 0.109112 1 0 3 | -------------------------------------------------------------------------------- /Semiproc_synthesis_Src/Data/Textures/cells/20181215_153153_synthesis_params.txt: -------------------------------------------------------------------------------- 1 | [EXEMPLAR] 2 | name 20181215_153153 3 | exemplarSize 450 450 4 | [SYNTHESIS] 5 | outputSize 900 900 6 | [PYRAMID] 7 | nbMipmapLevels 9 8 | pyramidMaxLevel 9 9 | pyramidMinSize 32 10 | nbPyramidLevels 4 11 | [BLOCK INITIALIZATION] 12 | blockGrid 14 14 13 | blockSize 64 64 14 | useSmartInitialization 1 15 | smartInitNbPasses 10 16 | [CORRECTION PASS] 17 | correctionNbPasses 1 18 | correctionSubPassBlockSize 3 19 | correctionNeighborhoodSize 2 20 | correctionNeighborSearchRadius 10 21 | correctionNeighborSearchNbSamples 5 22 | correctionNeighborSearchDDepth 3 23 | [MATERIAL] 24 | correctionWeightAlbedo 1 25 | correctionWeightHeight 1 26 | correctionWeightNormal 1 27 | correctionWeightRoughness 1 28 | [LABEL MAP] 29 | useLabelMap 1 30 | labelmapType 0 31 | useLabelSampler 0 32 | labelSamplerAreaThreshold 2500 33 | [GUIDANCE] 34 | correctionGuidanceWeight 0.85 35 | correctionExemplarWeightDistance 0 36 | correctionGuidanceWeightDistance 0 37 | correctionLabelErrorAmount 0.25 38 | [SEMI PROCEDURAL] 39 | PPTBFThreshold 0.0546875 40 | relaxContraints 0.0546875 0.0546875 41 | guidanceWeight 1 42 | distancePower 0.1 0.0546875 43 | initializationError 0.196078 44 | nbLabels 6 45 | [PPTBF] 46 | shift 10 10 47 | -------------------------------------------------------------------------------- /Semiproc_synthesis_Src/Install/SemiProcTexProject/bin/cracked_asphalt_160796_scrop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ASTex-ICube/semiproctex/af5403a66fce584a34859b0e5e9fbd446fbd141a/Semiproc_synthesis_Src/Install/SemiProcTexProject/bin/cracked_asphalt_160796_scrop.png -------------------------------------------------------------------------------- /Semiproc_synthesis_Src/Install/SemiProcTexProject/bin/cracked_asphalt_160796_seg_scrop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ASTex-ICube/semiproctex/af5403a66fce584a34859b0e5e9fbd446fbd141a/Semiproc_synthesis_Src/Install/SemiProcTexProject/bin/cracked_asphalt_160796_seg_scrop.png -------------------------------------------------------------------------------- /Semiproc_synthesis_Src/Install/SemiProcTexProject/bin/cracked_asphalt_160796_seg_scrop_pptbf_params.txt: -------------------------------------------------------------------------------- 1 | 0.737301 2 | 6 0 49 0.974 1.632 0.019 0.581 4 1 3.846 0.128 2 2 1 0.7 0 2 0.529988 0 0 0 1 0.2 0 0 0.112611 0 0.491883 3 | -------------------------------------------------------------------------------- /Semiproc_synthesis_Src/SptSynthesizer/SptHviewInterface.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ASTex-ICube/semiproctex/af5403a66fce584a34859b0e5e9fbd446fbd141a/Semiproc_synthesis_Src/SptSynthesizer/SptHviewInterface.cpp -------------------------------------------------------------------------------- /Semiproc_synthesis_Src/SptSynthesizer/SptImageHelper.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Publication: Semi-Procedural Textures Using Point Process Texture Basis Functions 3 | * Computer Graphics Forum (EGSR 2020 special issue) 4 | * Authors: P. Guehl , R. AllEgre , J.-M. Dischler, B. Benes , and E. Galin 5 | * 6 | * Code author: Pascal Guehl 7 | */ 8 | 9 | /** 10 | * @version 1.0 11 | */ 12 | 13 | #include "SptImageHelper.h" 14 | 15 | /****************************************************************************** 16 | ******************************* INCLUDE SECTION ****************************** 17 | ******************************************************************************/ 18 | 19 | // stb 20 | #define STB_IMAGE_IMPLEMENTATION 21 | #define STB_IMAGE_WRITE_IMPLEMENTATION 22 | #include 23 | #include 24 | 25 | /****************************************************************************** 26 | ****************************** NAMESPACE SECTION ***************************** 27 | ******************************************************************************/ 28 | 29 | /****************************************************************************** 30 | ************************* DEFINE AND CONSTANT SECTION ************************ 31 | ******************************************************************************/ 32 | 33 | /****************************************************************************** 34 | ***************************** TYPE DEFINITION ******************************** 35 | ******************************************************************************/ 36 | 37 | /****************************************************************************** 38 | ***************************** METHOD DEFINITION ****************************** 39 | ******************************************************************************/ 40 | 41 | // Project 42 | using namespace Spt; 43 | 44 | /****************************************************************************** 45 | * Load image 46 | ******************************************************************************/ 47 | void SptImageHelper::loadImage( const char* pFilename, int& pWidth, int& pHeight, int& pNrChannels, unsigned char*& pData, int desired_channels ) 48 | { 49 | stbi_set_flip_vertically_on_load( 1 ); 50 | pData = stbi_load( pFilename, &pWidth, &pHeight, &pNrChannels, desired_channels ); 51 | } 52 | 53 | /****************************************************************************** 54 | * Free image data 55 | ******************************************************************************/ 56 | void SptImageHelper::freeImage( unsigned char* pData ) 57 | { 58 | // Free memory 59 | stbi_image_free( pData ); 60 | } 61 | 62 | /****************************************************************************** 63 | * Save image 64 | ******************************************************************************/ 65 | int SptImageHelper::saveImage( const char* pFilename, const int pWidth, const int pHeight, const int pNrChannels, const void* pData ) 66 | { 67 | const void* data = pData; 68 | const int stride_in_bytes = pNrChannels * pWidth; 69 | stbi_flip_vertically_on_write( 1 ); 70 | int status = stbi_write_png( pFilename, pWidth, pHeight, pNrChannels, data, stride_in_bytes ); 71 | 72 | return status; 73 | } 74 | -------------------------------------------------------------------------------- /Semiproc_synthesis_Src/Tools/LabelMapGenerator/Spt_generateLabelMap.py: -------------------------------------------------------------------------------- 1 | # ----------------------------------------------------------------------------------------------------------------- 2 | # Technical paper: 3 | # Semi-Procedural Textures Using Point Process Texture Basis Functions 4 | # P. Guehl , R. AllEgre , J.-M. Dischler, B. Benes , and E. Galin 5 | # Computer Graphics Forum (EGSR 2020 special issue) 6 | # ----------------------------------------------------------------------------------------------------------------- 7 | 8 | # -------------------------------------------------------- 9 | # Script to generate label maps from binary structure maps 10 | # -------------------------------------------------------- 11 | 12 | # -------------------------------- 13 | # IMPORT 14 | # -------------------------------- 15 | 16 | # File system management 17 | import sys,os,pathlib 18 | from pathlib import Path 19 | import shutil 20 | import glob, os 21 | 22 | # Timer 23 | import time 24 | 25 | # Numpy: scientific computing 26 | import numpy as np 27 | print('numpy: %s' % np.__version__) 28 | 29 | # Pandas: Python Data Analysis Library 30 | import pandas as pd 31 | print('pandas: %s' % pd.__version__) 32 | 33 | # -------------------------------- 34 | # FUNCTIONS 35 | # -------------------------------- 36 | 37 | # -------------------------------- 38 | # Generate label maps 39 | # -------------------------------- 40 | def generateLabelMaps(): 41 | # LOG info 42 | print( 'Execute generateLabelMaps function...' ) 43 | 44 | 45 | # -------------------------------- 46 | # MAIN 47 | # -------------------------------- 48 | 49 | if __name__ == '__main__': 50 | generateLabelMaps() 51 | 52 | 53 | 54 | 55 | -------------------------------------------------------------------------------- /Semiproc_synthesis_Src/cmake_generateProjects.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | rem ************************************************************************** 4 | rem USER : Choose your compiler 5 | rem ************************************************************************** 6 | 7 | rem Call the script selecting the CMAKE compiler (Visual Studio 2010, 2012, etc...) 8 | rem set GS_COMPILER="Visual Studio 14 2015 Win64" 9 | set GS_COMPILER="Visual Studio 15 2017 Win64" 10 | 11 | rem ************************************************************************** 12 | rem CMAKE GENERATION 13 | rem ************************************************************************** 14 | 15 | set CURRENTSCRIPTPATH=%CD% 16 | 17 | mkdir Generated 18 | cd Generated 19 | cmake -G %GS_COMPILER% .. 20 | 21 | rem exit 22 | if NOT ERRORLEVEL 0 pause 23 | cd %CURRENTSCRIPTPATH% 24 | pause 25 | -------------------------------------------------------------------------------- /Semiproc_synthesis_Src/tool_launchBasicSynthesizer.bat: -------------------------------------------------------------------------------- 1 | @Echo off 2 | 3 | rem SptBasicSynthesizer is a basic synthesizer that only requires 3 files: 4 | rem - an input exemplar name xxx_scrop.png 5 | rem - an input segmented exemplar name xxx_seg_scrop.png 6 | rem - a pptbf parameters file xxx_seg_scrop_pptbf_params.txt 7 | rem where xxx is texture name. 8 | 9 | rem *************************************** 10 | rem CURRENT WORKING DIRECTORY 11 | rem *************************************** 12 | 13 | rem - working directory 14 | cd Install\SemiProcTexProject\bin 15 | 16 | rem - data path 17 | SET PT_PROJECT_BIN_PATH=%~dp0 18 | SET PT_PROJECT_PATH=%PT_PROJECT_BIN_PATH%/.. 19 | SET PT_DATA_PATH=%PT_PROJECT_PATH%/Data 20 | SET PT_IMAGE_PATH=%PT_DATA_PATH%/Images 21 | SET PT_SHADER_PATH=%PT_DATA_PATH%/Shaders 22 | 23 | rem *************************************** 24 | rem USER CUSTOMIZABLE PARAMETERS 25 | rem *************************************** 26 | 27 | rem Input exemplar texture name 28 | SET TEXURE_NAME=cracked_asphalt_160796 29 | 30 | rem Semi-procedural texture synthesis parameter 31 | SET GUIDE=0.9 32 | SET STRENGTH=0.5 33 | SET INITLEVEL=2 34 | SET BLOCSIZE=64 35 | SET INITERR=100 36 | SET INDEXWEIGHT=0 37 | 38 | rem *************************************** 39 | rem LAUNCH PROGRAM 40 | rem *************************************** 41 | 42 | @Echo off 43 | 44 | rem %~dp0Install/SemiProcTexProject/bin/SptSemiProcTex.exe %TEXURE_NAME% %GUIDE% %STRENGTH% %INITLEVEL% %BLOCSIZE% %INITERR% %INDEXWEIGHT% 45 | SptSemiProcTex.exe %TEXURE_NAME% %GUIDE% %STRENGTH% %INITLEVEL% %BLOCSIZE% %INITERR% %INDEXWEIGHT% 46 | 47 | @Echo off 48 | 49 | rem *************************************** 50 | rem CURRENT WORKING DIRECTORY 51 | rem *************************************** 52 | 53 | cd ..\..\.. 54 | -------------------------------------------------------------------------------- /Semiproc_synthesis_Src/visualStudio_openSolution.bat: -------------------------------------------------------------------------------- 1 | start Generated\SemiProcTexProject.sln 2 | -------------------------------------------------------------------------------- /semiProcTex_file_format.txt: -------------------------------------------------------------------------------- 1 | ----------------------------------------------------------------------------------------------------------------- 2 | Technical paper: 3 | Semi-Procedural Textures Using Point Process Texture Basis Functions 4 | P. Guehl , R. AllEgre , J.-M. Dischler, B. Benes , and E. Galin 5 | Computer Graphics Forum (EGSR 2020 special issue) 6 | ----------------------------------------------------------------------------------------------------------------- 7 | 8 | --------------------------------------------------------------------------- 9 | Semi-Procedural Texture file format 10 | --------------------------------------------------------------------------- 11 | 12 | A semi-procedural texture file store parameters of our semi-procedural texture synthesis model. 13 | 14 | // TODO: add description below... 15 | 16 | Example of semi-procedural texture synthesis parameter file: 17 | 18 | [EXEMPLAR] 19 | name parched_cracked_mud_rainspots_2260562 20 | exemplarSize 512 512 21 | [SYNTHESIS] 22 | outputSize 1024 1024 23 | [PYRAMID] 24 | nbMipmapLevels 10 25 | pyramidMaxLevel 3 26 | pyramidMinSize 32 27 | nbPyramidLevels 4 28 | [BLOCK INITIALIZATION] 29 | blockGrid 16 16 30 | blockSize 64 64 31 | useSmartInitialization 1 32 | smartInitNbPasses 131 33 | [CORRECTION PASS] 34 | correctionNbPasses 1 35 | correctionSubPassBlockSize 3 36 | correctionNeighborhoodSize 2 37 | correctionNeighborSearchRadius 6 38 | correctionNeighborSearchNbSamples 19 39 | correctionNeighborSearchDDepth 2 40 | [MATERIAL] 41 | correctionWeightAlbedo 1 42 | correctionWeightHeight 1 43 | correctionWeightNormal 1 44 | correctionWeightRoughness 1 45 | [LABEL MAP] 46 | useLabelMap 1 47 | labelmapType 0 48 | useLabelSampler 0 49 | labelSamplerAreaThreshold 2500 50 | [GUIDANCE] 51 | correctionGuidanceWeight 0.85 52 | correctionExemplarWeightDistance 0 53 | correctionGuidanceWeightDistance 0 54 | correctionLabelErrorAmount 0.25 55 | [SEMI PROCEDURAL] 56 | PPTBFThreshold 0.0859375 57 | relaxContraints 0.078125 0.117188 58 | guidanceWeight 0.937 0 59 | distancePower 0.042 60 | initializationError 0.906 61 | nbLabels 6 62 | [PPTBF] 63 | shift 10 10 64 | --------------------------------------------------------------------------------