Create more consistent R2 maps

develop
kaetemi 4 years ago
parent 147cb75a80
commit abf2715fa3

@ -95,7 +95,11 @@ cfg.write("\t\"" + CartographerContinent + "\", \n")
cfg.write("};\n") cfg.write("};\n")
cfg.write("\n") cfg.write("\n")
cfg.write("SeasonSuffixes = {\n") cfg.write("SeasonSuffixes = {\n")
for suffix in MultipleTilesPostfix: if CartographerSeasonSuffixes:
for suffix in CartographerSeasonSuffixes:
cfg.write("\t\"" + suffix + "\", \n")
else:
for suffix in MultipleTilesPostfix:
cfg.write("\t\"" + suffix + "\", \n") cfg.write("\t\"" + suffix + "\", \n")
cfg.write("};\n") cfg.write("};\n")
cfg.write("\n") cfg.write("\n")

@ -33,6 +33,7 @@
#include <nel/misc/progress_callback.h> #include <nel/misc/progress_callback.h>
#include <nel/misc/random.h> #include <nel/misc/random.h>
#include <nel/misc/common.h> #include <nel/misc/common.h>
#include <nel/misc/wang_hash.h>
#include <nel/3d/u_material.h> #include <nel/3d/u_material.h>
#include <nel/3d/u_driver.h> #include <nel/3d/u_driver.h>
@ -1369,6 +1370,7 @@ void CScreenshotIslands::buildIslandsTextures()
// Create and load landscape // Create and load landscape
ULandscape * landscape = scene->createLandscape(); ULandscape * landscape = scene->createLandscape();
landscape->setThreshold(0.0005); landscape->setThreshold(0.0005);
landscape->setTileNear(10000);
if(_InverseZTest) if(_InverseZTest)
{ {
landscape->setZFunc(UMaterial::greaterequal); landscape->setZFunc(UMaterial::greaterequal);
@ -1464,7 +1466,7 @@ void CScreenshotIslands::buildIslandsTextures()
vector<string> zonesAdded; vector<string> zonesAdded;
vector<string> zonesRemoved; vector<string> zonesRemoved;
IProgressCallback progress; IProgressCallback progress;
landscape->refreshAllZonesAround(camera.getMatrix().getPos(), 1000, zonesAdded, zonesRemoved, progress); landscape->refreshAllZonesAround(camera.getMatrix().getPos(), 2000, zonesAdded, zonesRemoved, progress);
if(_Vegetation) if(_Vegetation)
{ {
LandscapeIGManager.unloadArrayZoneIG(zonesRemoved); LandscapeIGManager.unloadArrayZoneIG(zonesRemoved);
@ -1644,8 +1646,8 @@ void CScreenshotIslands::buildIslandsTextures()
// little tga // little tga
bitmapLittle.resample(bitmapLittle.getWidth()/10, bitmapLittle.getHeight()/10); bitmapLittle.resample(bitmapLittle.getWidth() / 20, bitmapLittle.getHeight() / 20);
if(!isPowerOf2(bitmapLittle.getWidth()) || !isPowerOf2(bitmapLittle.getHeight()) ) if (!isPowerOf2(bitmapLittle.getWidth()) || !isPowerOf2(bitmapLittle.getHeight()))
{ {
uint pow2w = NLMISC::raiseToNextPowerOf2(bitmapLittle.getWidth()); uint pow2w = NLMISC::raiseToNextPowerOf2(bitmapLittle.getWidth());
uint pow2h = NLMISC::raiseToNextPowerOf2(bitmapLittle.getHeight()); uint pow2h = NLMISC::raiseToNextPowerOf2(bitmapLittle.getHeight());
@ -1871,15 +1873,19 @@ void CScreenshotIslands::buildBackTextureHLS(const std::string & islandName, con
{ {
_BackColor = maxColor; _BackColor = maxColor;
CRandom randomGenerator; std::string islandNameLwr = toLowerAscii(islandName);
uint32_t seed = 0;
for (ptrdiff_t i = 0; i < (ptrdiff_t)islandNameLwr.size(); ++i)
seed += wangHash(seed ^ islandNameLwr[i]);
uint8 * backPixels = &(_BackBitmap.getPixels(0)[0]); uint8 * backPixels = &(_BackBitmap.getPixels(0)[0]);
uint i = 0;
for(uint x=0; x<_BackBitmap.getWidth(); x++) for(uint x=0; x<_BackBitmap.getWidth(); x++)
{ {
for(uint y=0; y<_BackBitmap.getHeight(); y++) for(uint y=0; y<_BackBitmap.getHeight(); y++, i++)
{ {
sint32 randomVal = randomGenerator.rand(colorsNb-1); sint32 randomVal = wangHash(seed ^ i) % colorsNb;
const CRGBA & color = sortedColors[randomVal]; const CRGBA & color = sortedColors[randomVal];
*backPixels = (uint8) color.R; *backPixels = (uint8) color.R;

Loading…
Cancel
Save