Trying to load Mars map surface tiles from own server

Hi all,

I am in need of some help in order to go from using Mars map data from an external server (which is nice, but I’m sure not unlimited available- unless you can recommend me one?!) to hosting one myself, as I would like to have proper availability upon high user volume.

What I currently have been using and is working perfectly (using the external server providing the model):

var IMAGERY_SERVER ='; // the base url
var imageryViewModels = [ // containing the two mars surfaces view models
    new Cesium.ProviderViewModel({
        name: 'Viking',
        iconUrl: '/images/myImg.png',
        tooltip: 'Viking',
        creationFunction: function() {
            return new Cesium.TileMapServiceImageryProvider({
                url: IMAGERY_SERVER + 'mars-viking',
                ellipsoid: mars_ellipsoid,
                fileExtension: 'png',
                minimumLevel: 0,
                maximumLevel: 5,
                flipXY: true
            });
        }
    }),
];

viewer = new Cesium.Viewer('cesiumContainer',{
        requestRenderMode: true,
        // baseLayerPicker: true,
        sceneMode: Cesium.SceneMode.MORPHING, // on init from 3d to 2d
        mapProjection: new Cesium.GeographicProjection(mars_ellipsoid),
        globe: new Cesium.Globe(mars_ellipsoid),
        infoBox: true,
        animation: false,
        timeline: false,
        sceneModePicker: true,
        homeButton: false,
        navigationHelpButton: false,
        CreditsDisplay: false,
        geocoder: false,//new CustomGeocoder(),
        fullscreenButton: true,
        selectionIndicator: false,
        //imageryProvider: imageryProvider,
        skyAtmosphere: new Cesium.SkyAtmosphere(new Cesium.Ellipsoid(3372090.0, 3372090.0, 3372090.0)),
        imageryProviderViewModels: imageryViewModels,
        selectedImageryProviderViewModel: imageryViewModels[0],
        terrainProviderViewModels: terrainViewModels,
        selectedTerrainProviderViewModel: terrainViewModels[0],
    });

Now what I would like to get to:
I have 8 png files making up the mars globe surface (mars45n045.png, mars45n135.png, mars45n225.png, mars45n315.png
mars45s045.png, mars45s135.png, mars45s225.png, mars45s315.png) of about 30mb each.

I would like to be able to load from these pics on my own server. How would I go about this? I have tried the code below based on an example in a thread I found, but I am probably missing something important. I have created a folder called textures, in which my png files are located. I renamed them from (mars45n045.png, mars45n135.png, mars45n225.png, mars45n315.png
mars45s045.png, mars45s135.png, mars45s225.png, mars45s315.png) to 0, 1,2…etc. Looking at the xml I understand I need to figure something out with the units per pixel, but I tried it in the shape and form below just to see if it would load. The errors in the console that I am receiving upon running are:

1.)
https://api.cesium.com/v1/assets/2/endpoint?access_token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiIyYmFmMDZjZi03ZTIzLTRmNDYtYmM4MS1hZmUyOTNlZWQ4N2MiLCJpZCI6MjU5LCJzY29wZXMiOlsiYXNyIiwiZ2MiXSwiaWF0IjoxNTgwNzQ2MDQzfQ.I05JcRTUCUA1RWX2y0oQa_p4dFV6tgaAKHrCU5AjlgI 401

2.)
Cesium.js:23 GET https://cesium.com/textures/ 404

I look for anyone to give me a push in the right direction based on the code to make this work or advise a Mars map provider that would allow for a high calling volume, paid I assume, so that I can use it in a commercial setting with high user volume). I am pretty unfamiliar with the whole mapping and map projections and associated tools, so any help or advise is welcome.
See below my JS code and below that the XML code that I have tried to make it work from my own server:

JS
var imageryViewModels = [
new Cesium.SingleTileImageryProvider({
url: Cesium.buildModuleUrl(’/textures/’),credit: ‘New Globe’})
]

viewer = new Cesium.Viewer('cesiumContainer',{
        requestRenderMode: true,
        baseLayerPicker: false,
        sceneMode: Cesium.SceneMode.MORPHING,
        mapProjection: new Cesium.GeographicProjection(mars_ellipsoid),
        globe: new Cesium.Globe(mars_ellipsoid),
        infoBox: true,
        animation: false,
        timeline: false,
        sceneModePicker: true,
        homeButton: false,
        navigationHelpButton: false,
        CreditsDisplay: false,
        geocoder: false,//new CustomGeocoder(),
        fullscreenButton: true,
        selectionIndicator: false,
        skyAtmosphere: new Cesium.SkyAtmosphere(new Cesium.Ellipsoid(3372090.0, 3372090.0, 3372090.0)),
        imageryProviderViewModels: imageryViewModels,
        selectedImageryProviderViewModel: imageryViewModels[0], // Viking is set as standard.
        terrainProviderViewModels: terrainViewModels,
        selectedTerrainProviderViewModel: terrainViewModels[0],
    });

XML → called tilemapresource.xml which is in the textures folder together with the png’s.

<?xml version="1.0" encoding="utf-8"?>
<TileMap version="1.0.0" tilemapservice="http://tms.osgeo.org/1.0.0">
  <Title>newglobe.vrt</Title>
  <Abstract></Abstract>
  <SRS>EPSG:4326</SRS>
  <BoundingBox minx="-90.00000000000000" miny="-180.00000000000000" maxx="90.00000000000000" maxy="180.00000000000000"/>
  <Origin x="-90.00000000000000" y="-180.00000000000000"/>
  <TileFormat width="256" height="256" mime-type="image/png" extension="png"/>
  <TileSets profile="geodetic">
    <TileSet href="0" units-per-pixel="0.70312500000000" order="0"/>
    <TileSet href="1" units-per-pixel="0.35156250000000" order="1"/>
    <TileSet href="2" units-per-pixel="0.17578125000000" order="2"/>
    <TileSet href="3" units-per-pixel="0.08789062500000" order="3"/>
    <TileSet href="4" units-per-pixel="0.04394531250000" order="4"/>
    <TileSet href="5" units-per-pixel="0.02197265625000" order="5"/>
    <TileSet href="6" units-per-pixel="0.01098632812500" order="6"/>
<TileSet href="7" units-per-pixel="0.01098632812500" order="7"/>
  </TileSets>
</TileMap>

I would make it easier. Creates a textured 3D model of Mars in Blender, then exports it to glb and loads it as a 3D model in Cesium, then moves it to the desired position