Difference between revisions of "Generate High resolution LOD textures"

From the Oblivion ConstructionSet Wiki
Jump to navigation Jump to search
imported>Blade9722
imported>Blade9722
Line 61: Line 61:
= Assemble maps =
= Assemble maps =


At this point you can follow Ghanburighan procedure described [[LOD_texture_fix_script]]
At this point you can follow Ghanburighan procedure [[LOD_texture_fix_script]], starting from point 4), using this python script instead:
 
<pre>
import os, Image, ImageOps
 
WRKDIR = 'c:/obwrk'
 
BLX = raw_input('Enter this quads lower left cell x coordinate ')
BLY = raw_input('Enter this quads lower left cell y coordinate ')
 
 
BLX = int(BLX)
BLY = int(BLY)
TRX = BLX+32
TRY = BLY+32
 
BL = (BLX,BLY) 
TR = (TRX,TRY) 
TILESIZE = 241
 
 
os.chdir(WRKDIR)
 
outim = Image.new('RGB', (7712, 7712))
xoffset = -234
yoffset = 7464
xrange = range(BL[0]-1,TR[0], 1) 
yrange = range(TR[1], BL[1]-1, -1)
yrange.reverse()
for x in xrange:
    for y in yrange:
        print "tamriel.%02d.%02d.tga (%d,%d)" % ( x, y, xoffset, yoffset)
        inim = Image.open("tamriel.%02d.%02d.tga" % (x,y))
        outim.paste(inim, (xoffset, yoffset))
        yoffset -= TILESIZE
    xoffset += TILESIZE
    yoffset = 7464
outim = ImageOps.flip(outim)
outim.save("60.%02d.%02d.32.png" % (BLX, BLY))
</pre>
 
 
 
= Miscellaneous =
= Miscellaneous =



Revision as of 07:11, 28 January 2007


--Blade9722 06:30, 28 January 2007 (EST)

Generate Local Maps for LODs

Open your mod in the CS, in the renderer window press shift+C making only landscape visible *.

In the world menu select the "Create Local Maps" field. Choose "Tamriel" World space, and "All cells" if you want to generate all Maps in a single strike.

However the CS systematically crashes if you commit too much maps to be generated, altough it seems being hardware dependent (probably somewhat related to out-of-memory errors).

At this point my recommendation is to split the work generating maps for a single LOD a time.

Simply use the NW Cell, Cell coordinates to define the box you want to be generated.

of course, for a single LOD the coordinates you need to supply are:

If you need the 60.XX.YY.32.dds LOD

NW CELL : XX,YY+31 SE CELL : XX+31,YY

For proper alignment, the python script needs an additional row and column, so :

NW CELL : XX-1,YY+32 SE CELL : XX+31,YY

By splitting the generation into smaller parts CS won't crash.

Here are the settings for the IC Quad LOD (60.00.00.32.dds)

Cs map generator.jpg

Once you have finished the process, check your [Oblivion path]\textures\maps folder if all files have been correctly generated.

Prepare working directory

1] Create a folder named c:\obwrk

2] Create a 256x256 black tga picture and save it as Base.tga in C:\obwrk

3] Now in c:\obwrk create a batch file named basegen.bat and insert this code:


for /L %%a in (-65,1,63) do for /L %%b in (-64,1,64) do copy /b .\base.tga .\"Tamriel."%%a"."%%b".tga"

for /L %%a in (-65,1,63) do for /L %%b in (0,1,9) do move /y .\"Tamriel."%%a"."%%b".tga" .\"Tamriel."%%a".0"%%b".tga"

for /L %%a in (0,1,9) do for /L %%b in (-64,1,64) do move /y .\"Tamriel."%%a"."%%b".tga" .\"Tamriel.0"%%a"."%%b".tga"

for /L %%a in (0,1,9) do for /L %%b in (0,1,9) do move /y .\"Tamriel.0"%%a"."%%b".tga" .\"Tamriel.0"%%a".0"%%b".tga"

for /L %%a in (0,1,9) do for /L %%b in (0,1,9) do move /y .\"Tamriel."%%a".0"%%b".tga" .\"Tamriel.0"%%a".0"%%b".tga"

Double click it. This will copy base.tga lots of times, generating lots of Tamriel.xx.yy.tga files. This because often not all the maps are generated by the CS (i.e. boundary is not exactly stopping at multiple of 32 cells), and the python assembly script will stop if it don't find a required file.

Assemble maps

At this point you can follow Ghanburighan procedure LOD_texture_fix_script, starting from point 4), using this python script instead:

import os, Image, ImageOps

WRKDIR = 'c:/obwrk'

BLX = raw_input('Enter this quads lower left cell x coordinate ')
BLY = raw_input('Enter this quads lower left cell y coordinate ')


BLX = int(BLX)
BLY = int(BLY)
TRX = BLX+32
TRY = BLY+32

BL = (BLX,BLY)  
TR = (TRX,TRY)  
TILESIZE = 241


os.chdir(WRKDIR)

outim = Image.new('RGB', (7712, 7712))
xoffset = -234
yoffset = 7464
xrange = range(BL[0]-1,TR[0], 1)  
yrange = range(TR[1], BL[1]-1, -1)
yrange.reverse()
for x in xrange:
    for y in yrange:
        print "tamriel.%02d.%02d.tga (%d,%d)" % ( x, y, xoffset, yoffset)
        inim = Image.open("tamriel.%02d.%02d.tga" % (x,y))
        outim.paste(inim, (xoffset, yoffset))
        yoffset -= TILESIZE
    xoffset += TILESIZE
    yoffset = 7464
outim = ImageOps.flip(outim)
outim.save("60.%02d.%02d.32.png" % (BLX, BLY))


Miscellaneous

aa -- qq -- aa


-- zz --