I'm trying to integrate Cesium to my web application. Everything was fine until I tried to use TileMapServiceImageryProvider to load custom (to be more precise, WorldWind-friendly) BMNG tiled layer in EPSG:4326 of the following directory structure: zoomLevel > tileX > tileY.jpg. Each tile has 512x512 dimensions and number of tiles on level 0 is: 10 for X and 5 for Y (it ideally suits 2:1 proportion of GeographicTilingScheme). I get the following errors in JavaScript console:
------------------
[GL] Shader program link log: error: Too many fragment shader texture samplers ShaderProgram.js:2616
createAndLinkProgram ShaderProgram.js:2616
ShaderProgram ShaderProgram.js:2199
Context.createShaderProgram Context.js:1004
ShaderCache.getShaderProgram ShaderCache.js:70
CentralBodySurfaceShaderSet.getShaderProgram CentralBodySurfaceShaderSet.js:85
createRenderCommandsForSelectedTiles CentralBodySurface.js:984
CentralBodySurface.update CentralBodySurface.js:123
CentralBody.update CentralBody.js:706
CompositePrimitive.update CompositePrimitive.js:397
Scene.render Scene.js:683
CesiumWidget.render CesiumWidget.js:409
render CesiumWidget.js:67
Uncaught TypeError: Cannot call method 'raiseEvent' of undefined CesiumWidget.js:75
render CesiumWidget.js:75
------------------
Here is how I try to load my tiled layer:
WebGlobe.Cesium.prototype.initialize = function() {
this._cesium = new Cesium.CesiumWidget(this._params['id'], {
'imageryProvider': new Cesium.OpenStreetMapImageryProvider({
'url': this._params['openStreetMapServerUrl']
})
});
var layers = this._cesium.centralBody.getImageryLayers();
var satelliteImageryProvider = new Cesium.TileMapServiceImageryProvider({
'url' : "http://web-catalog/tiles/bmng",
'fileExtension': "jpg",
'tilingScheme': new Cesium.GeographicTilingScheme({
numberOfLevelZeroTilesX: 10,
numberOfLevelZeroTilesY: 5
}),
'tileWidth': 512,
'tileHeight': 512
});
layers.addImageryProvider(satelliteImageryProvider);
}
Removing OpenStreetMapImageryProvider and limiting TileMapServiceImageryProvider by setting maximumLevel to 0 don't make sense. But setting numberOfLevelZeroTilesX to 2 and numberOfLevelZeroTilesY to 1 does. I'm not really familiar with OpenGL and shaders but does it mean that amount of simultaneously rendered tiles is strictly limited? Does it depend on my videocard or I can customize it programatically (on software level)?
My operating system is Ubuntu 12.04 LTS, ASUS X73S.
Thanks a lot for your attention and time!
--
You received this message because you are subscribed to the Google Groups "cesium-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to cesium-dev+...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.