update for test
This commit is contained in:
parent
9ad4bc1c69
commit
bfe8d3f98e
4 changed files with 39 additions and 3 deletions
|
|
@ -8,20 +8,41 @@ namespace LandblockExtraction.AtlasMaker;
|
|||
public class TerrainAtlasManager {
|
||||
private PortalEngine portalEngine;
|
||||
private Dictionary<int, DataId> mapTerrain;
|
||||
private TexturesImage texturesImage;
|
||||
|
||||
public Dictionary<int, Vector2> textureCoord;
|
||||
public Dictionary<int, MagickImage> terrainTexture;
|
||||
public Dictionary<int, Terrain> terrains;
|
||||
public Dictionary<DataId, int> texturesIndex;
|
||||
public TerrainAtlasManager(PortalEngine portalEngine) {
|
||||
this.portalEngine = portalEngine;
|
||||
mapTerrain = new();
|
||||
textureCoord = new Dictionary<int, Vector2>();
|
||||
terrainTexture = new Dictionary<int, MagickImage>();
|
||||
terrains = new Dictionary<int, Terrain>();
|
||||
texturesImage = new TexturesImage(portalEngine);
|
||||
texturesIndex = new Dictionary<DataId, int>();
|
||||
|
||||
GenerateDictionaryTexture();
|
||||
foreach(var img in texturesIndex) {
|
||||
var i = texturesImage.GetImage(img.Key);
|
||||
i.Write($"{img.Value}.jpg");
|
||||
}
|
||||
InitialiseTerrainDic();
|
||||
GenerateTerrain();
|
||||
}
|
||||
private void GenerateDictionaryTexture() {
|
||||
int index = 0;
|
||||
foreach (var surfaces in portalEngine.cSurfaceDesc.surfaces) {
|
||||
foreach (var surface in surfaces.terrainMaterials) {
|
||||
var did = surface.baseMaterials.First().materialDid;
|
||||
if (!texturesIndex.ContainsKey(did)) {
|
||||
texturesIndex.Add(did, index);
|
||||
index++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
public void ExtractTexture() {
|
||||
using (var atlasBuilder = new AtlasBuilder(portalEngine)) {
|
||||
foreach (var terrain in portalEngine.cTerrainDesc.terrains) {
|
||||
|
|
|
|||
|
|
@ -6,10 +6,12 @@ using LandblockExtraction.Tools;
|
|||
namespace LandblockExtraction.AtlasMaker;
|
||||
public class TexturesImage {
|
||||
private PortalEngine portalEngine;
|
||||
private TextureEngine textureEngine;
|
||||
//private TextureEngine textureEngine;
|
||||
|
||||
public TexturesImage(PortalEngine portalEngine) {
|
||||
this.portalEngine = portalEngine;
|
||||
textureEngine = new TextureEngine();
|
||||
//this.textureEngine = new();
|
||||
}
|
||||
|
||||
|
|
@ -40,7 +42,18 @@ public class TexturesImage {
|
|||
if (!portalEngine.datReader.contains(img)) continue;
|
||||
using (var data = portalEngine.datReader.getFileReader(img)) {
|
||||
var image = new RenderSurface(data);
|
||||
if (image.width != 64) continue;
|
||||
if (image.width != 16) continue;
|
||||
var dataImg = DDSHeader.Generate(image);
|
||||
using (MagickImage realImg = new MagickImage(dataImg)) {
|
||||
magickImage = new(realImg);
|
||||
}
|
||||
return magickImage;
|
||||
}
|
||||
}
|
||||
foreach (var img in texture.levelSurfaceDids) {
|
||||
if (!portalEngine.datReader.contains(img)) continue;
|
||||
using (var data = portalEngine.datReader.getFileReader(img)) {
|
||||
var image = new RenderSurface(data);
|
||||
var dataImg = DDSHeader.Generate(image);
|
||||
using (MagickImage realImg = new MagickImage(dataImg)) {
|
||||
magickImage = new(realImg);
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@ namespace Map3DRendering {
|
|||
private PortalEngine portalEngine;
|
||||
private CellEngine cellEngine;
|
||||
private LandBlockExtrator landblockExtraction;
|
||||
private TerrainAtlasManager terrainAtlasManager;
|
||||
|
||||
private readonly int NumberLandBlocks = 255;
|
||||
private readonly int BlockSize = 17;
|
||||
|
|
@ -31,6 +32,7 @@ namespace Map3DRendering {
|
|||
public MapRender() {
|
||||
portalEngine = new PortalEngine();
|
||||
cellEngine = new CellEngine();
|
||||
terrainAtlasManager = new(portalEngine);
|
||||
|
||||
landblockExtraction = new(portalEngine, cellEngine);
|
||||
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ namespace Map3DRendering {
|
|||
|
||||
private readonly Vector3 _lightPos = new Vector3(0x10, 0, 0x10);
|
||||
|
||||
//private MapRender mapRender;
|
||||
private MapRender mapRender;
|
||||
private WorldMapRender _render;
|
||||
private AxesGizmo axesGizmo;
|
||||
|
||||
|
|
@ -34,7 +34,7 @@ namespace Map3DRendering {
|
|||
public Window(GameWindowSettings gameWindowSettings, NativeWindowSettings nativeWindowSettings)
|
||||
: base(gameWindowSettings, nativeWindowSettings) {
|
||||
|
||||
//mapRender = new MapRender();
|
||||
mapRender = new MapRender();
|
||||
_render = new WorldMapRender();
|
||||
|
||||
GL.GetInteger(GetPName.MaxTextureImageUnits, out maxTextures);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue