diff --git a/defines.py b/defines.py index 6494065..9ed3a8e 100644 --- a/defines.py +++ b/defines.py @@ -71,7 +71,7 @@ mstr_xp_genscenery = True # Generate normal maps for X-Plane scenery? # Strong recommendation: yes -mstr_xp_scn_normalmaps = False +mstr_xp_scn_normalmaps = True # Paths to required X-Plane scenery tools #mstr_xp_meshtool = "/home/marcus/Developer/Projects/orthographic/bin/MeshTool" diff --git a/photogen.py b/photogen.py index 6fb9698..7535edb 100644 --- a/photogen.py +++ b/photogen.py @@ -215,7 +215,6 @@ class mstr_photogen: # Now we convert this into a DDS _tmpfn = mstr_datafolder + "z_orthographic/orthos/" + self._latlngfld + "/" + str(self._ty) + "_" + str(self._tx) os.system(mstr_xp_ddstool + " --png2dxt1 " + _tmpfn + ".png " + _tmpfn + ".dds" ) - os.remove(mstr_datafolder + "z_orthographic/orthos/" + self._latlngfld + "/" + str(self._ty) + "_" + str(self._tx) + ".png") # Now generate the normal map for this ortho. @@ -223,21 +222,21 @@ class mstr_photogen: if mstr_xp_genscenery and mstr_xp_scn_normalmaps: # Generate the normal normal map first (hah) nrm = mstr_xp_normalmap() - nrmimg = nrm.generate_normal_map_for_layer(self._tile, False) + #nrmimg = nrm.generate_normal_map_for_layer(self._tile, False) # Now we need to walk through the water layers and generate a combined normal map wtrlyr = Image.new("RGBA", (self._imgsize, self._imgsize)) for w in waterlayers: wtrlyr.alpha_composite(w) - wtrlyr = wtrlyr.resize((int(mstr_photores/4), int(mstr_photores/4)), Image.Resampling.BILINEAR) + wtrlyr = wtrlyr.resize((int(mstr_photores/2), int(mstr_photores/2)), Image.Resampling.BILINEAR) wtrimg = nrm.generate_normal_map_for_layer(wtrlyr, True) # Blend - nrmimg.alpha_composite(wtrimg) + #nrmimg.alpha_composite(wtrimg) # Save - nrmfln = mstr_datafolder + "z_orthographic/normals/" + self._latlngfld + "/" + str(self._ty) + "_" + str(self._tx) + ".png" - nrmimg.save(nrmfln) + nrmfln = mstr_datafolder + "z_orthographic/normals/" + self._latlngfld + "/" + str(self._ty) + "_" + str(self._tx) + wtrimg.save(nrmfln + ".png") # Generates some random tree. diff --git a/xp_normalmap.py b/xp_normalmap.py index 9f39266..d40134d 100644 --- a/xp_normalmap.py +++ b/xp_normalmap.py @@ -72,7 +72,7 @@ class mstr_xp_normalmap: # Blue (reflectivity) and alpha (specularity) need to be 1 - but can be adjusted as needed # Resize original - image = image.resize((int(mstr_photores/4), int(mstr_photores/4)), Image.Resampling.BILINEAR) + #image = image.resize((int(mstr_photores/4), int(mstr_photores/4)), Image.Resampling.BILINEAR) nmp = Image.new("RGBA", (image.width, image.height), (128,128,0,0)) @@ -112,7 +112,8 @@ class mstr_xp_normalmap: # Sobel filter dx = (it_tr + 2.0 * it_r + it_br) - (it_tl + 2.0 * it_l + it_bl) dy = (it_bl + 2.0 * it_b + it_br) - (it_tl + 2.0 * it_t + it_tr) - dz = 10 # This is usually a good value for strength + dz = 3 + #dz = 10 # This is usually a good value for strength v = (dx, dy, dz) nrm = self.normalize_vector(v) diff --git a/xp_scenery.py b/xp_scenery.py index 5660e5f..6bcb150 100644 --- a/xp_scenery.py +++ b/xp_scenery.py @@ -186,8 +186,8 @@ class mstr_xp_scenery: terstr = terstr + "\r\n" terstr = terstr + "LOAD_CENTER " + str(cnt_x) + " " + str(cnt_y) + " " + str(dmt) + " 2048\r\n" terstr = terstr + "BASE_TEX_NOWRAP ../../orthos/" + self._latlngfld + "/" + str(lat)+"_"+str(lng)+".dds\r\n" - #if mstr_xp_scn_normalmaps: - # terstr = terstr + "NORMAL_TEX 1.0 ../../normals/" + self._latlngfld + "/" + str(lat)+"_"+str(lng)+".png\r\n" + if mstr_xp_scn_normalmaps: + terstr = terstr + "NORMAL_TEX 1.0 ../../normals/" + self._latlngfld + "/" + str(lat)+"_"+str(lng)+".dds\r\n" terfln = mstr_datafolder + "z_orthographic/terrain/" + self._latlngfld + "/" + str(lat)+"_"+str(lng)+".ter"