Change Log¶
0.10.6¶
Features and improvements¶
- Atmosphere
- Reworked the atmosphere into a physically based sky. Terrain, 3D buildings (B3D), point clouds and water are lit by the same model. Migration is described in
doc/development/atmosphere/Atmosphere-Migration.md. - Added
Atmosphere.applyPreset(), which takes one of the seven built-inAtmosphere.Presetnames or anAtmosphere.PresetValuesbundle. The built-in values are the read-only tableAtmosphere.PRESETS. - Added
Atmosphere.setQuality()with four levels (Atmosphere.Quality:minimal/low/medium/high), independent of the presets.mediumandhighsmooth edges with 2 and 4 samples per pixel. - Added setters and read-only properties for the scattering, sun, exposure, aerial perspective and ground lighting parameters, such as
multi_scattering,mie_gandaerial_perspective_distance. Lengths are in meters. - Presets, setters and
Viewer.Option.render_effectsfollow "the last write wins". Settings made before theViewerexists are applied when it is constructed. - Added
AtmosphereLightingMode(inherit/auto/physical/simple/off) withB3dScene.setAtmosphereLightingMode(),PointCloud.setAtmosphereLightingMode()andAtmosphere.setDefaultLightingMode(). - Added
Atmosphere.setEnvironmentEnabled(). Hiding both the sky and the ground turns the environment off and renders as without an atmosphere. - Added
Atmosphere.setBuildingReflectanceLimit()(default0.8), which keeps untextured 3D buildings (B3D) from glowing under bloom. - The sun and the moon are dimmed by the atmosphere near the horizon.
- Reworked the atmosphere into a physically based sky. Terrain, 3D buildings (B3D), point clouds and water are lit by the same model. Migration is described in
- Render effects
- Added
RenderEffects(Viewer.render_effects,Viewer.Option.render_effects) for tonemap, bloom, auto exposure, sun shafts and output gamma. - Added
hdr_mode(auto/on/off),TonemapMode(aces/exponential/pbr_neutral) andRenderEffects.BloomMode(compact/wide). - Entities are composited after the tonemap and keep their colors.
- Without a floating point color buffer, the viewer draws straight to the canvas.
- Added
- Sun and moon
- Added
Sun.setIlluminance()andSun.setAngularDiameterDegree()(illuminance,illuminance_lux,angular_diameter_degree). The sky, terrain, water and the sun disc follow them. - Added the same to
Moon, with a night-adaptation gain that fades out towards sunrise. - Added
SunVisualizer.setGlowIntensity()andMoonVisualizer.setGlowIntensity()for the glow around the sun and the moon.
- Added
- Water
- The water is driven by physical inputs: wind (
setWindSpeed(),setWindAngleDegree(),setWindFetch()), current (setCurrentSpeed(),setCurrentAngleDegree()),setWaveSteepness()andsetWaterTurbidity(). The wavelength, wave height, wave direction and whitecaps are derived and exposed as read-only properties. - Added
setSeabed()(Seabed.VIRTUAL/REAL/MIXED),setSeabedSlope(),setSeabedSandColor()andsetSeabedRockColor(). - Added effect multipliers such as
setWaveHeightScale()andsetWhitecapScale(), 1 being the physical value. The defaults keep the previous look. - Added
applyPreset()withPreset(INNER_SEA/LAKE/RIVER/OPEN_SEA) orPresetValues, andsetQuality()with the same four levels asAtmosphere.Quality. - Added
Option.usage(Usage.SHORE/Usage.OFFSHORE). - Reflections are traced in screen space against a snapshot of the opaque scene instead of a second, mirrored render of the scene.
- Waves wash up on shores found from the terrain and break by depth. Caustics and the seabed seen through the water are drawn per pixel.
- The water receives moonlight.
- Added
Viewer.load_status.entity_baking. - The inputs, derived values and limitations are described in
doc/development/water/Water-Spec.md.
- The water is driven by physical inputs: wind (
- Point Cloud
- Added
PointCloud.plane_thresholdandPointCloud.setPlaneThreshold(), so the threshold that classifies a box as having a planar point distribution is now configurable instead of being fixed at 0.8. - Added
PointCloudDebugPluginalong withPointCloud.getDebugPlugin()/PointCloud.setDebugPlugin(). Debug rendering (the resolution heat-map shader and the box, axis, ellipsoid and cross-section meshes) and the render statistics are now opt-in: without a plugin attached, no debug meshes are built, no debug draw calls or uniform writes are issued, the debug materials and their shaders are never compiled, and the heat-map branch is no longer part of the point cloud vertex shader.
- Added
- Other Changes
- The pixel_ratio option is now stable and officially supported.
- Added
vectile_loadingtoViewer.load_statusso that pending vector tile requests are included intotal_loading. Viewer.load_status.pc_loadingnow reports the number of in-flight point cloud tile requests. It previously read a debug statistics object that was only allocated when a statistics handler was registered, so it was effectively always 0 and point clouds were not covered bytotal_loading.- Added
background_colortoViewer.Optionalong withViewer.getBackgroundColor()/Viewer.setBackgroundColor(), so the scene background can be set to a color other than the default black.
Breaking Changes¶
- The reworked atmosphere keeps its API, but scenes with an atmosphere look different.
doc/development/atmosphere/Atmosphere-Migration.mdlists what changes and how to get close to the previous look. - A
Viewerwith an atmosphere renders through the HDR pipeline with the ACES tonemap. CallViewer.render_effects.setHDRMode( "off" )to draw straight to the canvas as before. new mapray.Atmosphere()starts from thefilmic-physicalpreset atmediumquality.Atmosphere.applyPreset( "oneil-classic" )reproduces the previous look.- A frame drawn straight to the canvas applies the tonemap chosen with
RenderEffects.setTonemapMode()instead of a fixed exponential curve. SunVisualizer.setIntensity()sets the illuminance of the whole scene, andSunVisualizer.setRadius()scales the angular diameter, so a wider disc is dimmer.- The moon disc is much brighter at night, and the moon no longer lights daytime scenes.
ModelEntityis drawn before the tonemap, so the water reflects 3D models. Models inanchor_modeare unchanged.StandardUIViewerlets the camera pitch up to 180 degrees.- The water setters, the numeric setters of
RenderEffectsandAtmosphere.setGroundRayleigh()/setGroundMie()/setGroundSunRate()/setAmbient()ignore non-finite values and clamp to their documented ranges.Atmosphere.setGroundExposure()ignores non-finite values. TextureSunVisualizerno longer works. UseSunVisualizer.- The water API of 0.10.x is replaced without deprecated shims, and the mirror rendering classes (
MirrorCamera,MirrorRenderer,WaterMirrorRenderer) are removed. The old and new APIs are mapped in "0.10.x からの移行" ofdoc/development/water/Water-Spec.md. WaterPolygonEntityaccepts onlyAltitudeMode.ABSOLUTE. The constructor throws an exception whenoptions.jsonspecifies"relative"or"clamp"foraltitude_mode, and thealtitude_modesetter throws an exception for any value other thanAltitudeMode.ABSOLUTE.Atmosphere.Parametersgained a required field for each new parameter.- Updated minimum requirement for Node.js from 18.18 to 22.22.2.
- Removed
Moon.moon_directionfrom the public type definitions; it is now correctly marked internal, matchingSun.sun_direction. This is a type-definitions-only change with no runtime behavior change; TypeScript code that referencedmoon_directionat the type level will now fail to compile. - Removed the type parameter from
Material, which is now written asMaterialinstead ofMaterial<T>. The parameter only typed an internal tracker that was never exported, so no meaningful argument could be supplied for it. This is a type-definitions-only change with no runtime behavior change; TypeScript code that wroteMaterial<T>will now fail to compile. - Removed
flake_bbox_materialfromRenderStage.RenderCache. The flake bounding box material is now owned by the debug plugin and created on first use, so the render cache no longer holds it. TypeScript code that builds or reads aRenderStage.RenderCachewill fail to compile.
Deprecations¶
Atmosphere.setAureoleIntensity()andaureole_intensity: useSunVisualizer.setGlowIntensity()andMoonVisualizer.setGlowIntensity().Atmosphere.setMoonIlluminance(),MoonVisualizer.setIntensity()andMoonVisualizer.setRadius(): useMoon.setIlluminance()andMoon.setAngularDiameterDegree().SunVisualizer.setIntensity(),SunVisualizer.setRadius(),Atmosphere.setGroundSunRate()andAtmosphere.setSunScale(): useSun.setIlluminance()andSun.setAngularDiameterDegree().Atmosphere.setRayleigh()/setMie()/setSunRate()/setExposure()/setScaleDepth()/setGroundScaleDepth(), andsetRayleigh()/setMie()/setScaleDepth()/setSunRate()ofSunVisualizerandTextureSunVisualizer, are kept but have no effect on the reworked atmosphere.
Bug Fix¶
- Fixed values given to
setRadius()/setIntensity()ofSunVisualizer,MoonVisualizerandTextureSunVisualizerbefore theViewerinitializes being discarded. - Fixed
Viewer.destroy()not releasing theBAKEdepth buffers. - Fixed
WaterPolygonEntity.loadWaterPolygonGeoJSON()ignoringheight: 0. - Fixed the water leaving its textures bound to their texture units after drawing.
- Fixed the water keeping its listeners after
dispose(), and its entity list afterdestroy(). - Fixed a bug in
PointCloud.removeEventListener()where an inverted condition prevented listener removal and could remove an unrelated listener. - Fixed point cloud debug meshes being drawn into the RID buffer, which corrupted picking results while they were visible. They are now restricted to the scene render target.
- Fixed
ComboVectorCurveaccepting non-vector types in its constructor. - Fixed
StandardUIViewerdroppingmapray.Viewerconstructor options such aslogo_controller; all options inherited frommapray.Viewer.Optionare now forwarded. - Fixed a TextEntity bug where all text failed to render when an entry exceeding the maximum text width was present.
- Fixed
TextEntitysharing its default color arrays across all instances, so settingcolor,stroke_color, orbg_coloron one entity no longer overwrites the same property on every other entity. - Fixed a leak where object URLs created for Blob image sources were never revoked.
- Fixed
URLResourcedropping theheadersreturned by itstransformcallback when loadingResource.Type.IMAGE. - Fixed
MarkerLineEntityandPathEntityignoring the translucent factor in anchor mode, so their occluded parts are now drawn semi-transparently likeTextEntityandPinEntity. - Fixed
PolygonEntitythrowing aTypeErrorwhen constructed from JSON containingcolor, and ignoringopacityandextruded_heightgiven in JSON.
0.10.5¶
Features and improvements¶
- Point Cloud
- Added support for box-based filtering in the point cloud module.
- Entities
- Added support for multi-character text in TextPin within PinEntity.
- Added support for
anchor_modeon clamped entities.
- Other Changes
- Added experimental support for high-resolution displays (e.g., Retina).
Bug Fix¶
- Fixed a bug in
GeoRegion.intersects(). - Fixed a LineEntity bounding box calculation bug.
0.10.4¶
Bug Fix¶
- Fix an issue in which optional shader features were utilized without proper capability checks
0.10.3¶
Features and improvements¶
- Dem
- Add support for Version 1.0, enabling fast, high-quality rendering
- Other Changes
- Fixed an issue where entry deletions were not reflected in point entities
- Added some fundamental functions to point entities
0.10.2¶
Features and improvements¶
- Vectile
- Added support for clickinteractions and highlight display
- SceneLoader
- Added support for Atmosphere/DEM/PointCloud/B3D
- Other Changes
- Fixed an issue where the FlyCamera movement was not smooth in certain cases.
- Added automated browser tests
- Improved example codes
- Minor bug fixes
0.10.1¶
Features and improvements¶
- Added WaterPolygonEntity which supports water surface rendering for oceans and rivers
- Added RastermapTilePolygonEntity to support heightmap data visualization
- Supports high resolution data with a pitch of a few centimeters
- Image and contour views are available. Contours can also be displayed only within an arbitrary polygon.
- Supports animated display of two datasets.
- Improved CloudAPI
- Added Vectile Datasets
- Added Tileset Datasets
- Attributions
- The attribution method has changed, and the values set in the Mapray Cloud are now shown automatically.
- Dem
- Added CustomDemProvider which allows flattening of partial areas in the debug app.
- Added an option to show the back faces of the DEM for underground view (experimental).
- Minor bugfix and improvements
- StandardUIViewer
- Fixed issue where the clamped camera position was incorrect.
- Fixed altitude for URL hash generation
- Other Changes
- Added AzuremapsImageProvider in debug apps
- Minor bugfixes of dem module
- Added Z-Index to control order of anchor entities
- Added pixel-offset property to TextEntity
Breaking Changes¶
- Changed the default credentials policy to
Same-Origin. The behavior changes if credentials is not explicitly specified. - The argument of
CloudApi.get3DDatasetAsResource()has been changed. - Refactored functions to get and remove entries of point classes. (Changed
getEntry()togetEntryById())
0.10.0¶
Features and improvements¶
- Dem
- Added a new feature that enables the visualization of multiple DEM tiles
- Supported Dem datasets in Cloud API
- Performed an overall refactoring
- Added DotsPerPixel to optimize quality of the dem
- Improved rendering speed
- Added Atami dataset debug Module
- PointCloud
- Added getter for the bounding box of a dataset
- Keep point values in memory
- Added method to get nearest point position
- B3D
- Supported B3d datasets in Cloud API and refactored provider classes
- Entities
- Added Entity.anchor_mode, which allows visibility for entities hidden due to being underground
- Improved ModelEntity to support Mapray Cloud settings
- Others
- Improved GeoRegion
- Fixed a geographic calculation issue in the triangulator
- Added minimum requirement for the node.js to 18.18.
Breaking Changes¶
- CloudDemProvider has been removed. Use CloudApi.getDefaultDemAsResource() and StandardDemProvider.
- The method of calling functions related to B3dProvider has changed.
0.9.6¶
- Fixed issue that occur when using Webpack with TypeScript
0.9.5¶
Features and improvements¶
- Add direct transition mode to the flyCamera function. #316
- improved GeoRegion class #315
- Improve readability of TypeDoc #314
- Refactor GeoJSONLoader #313
- Added browser tests #312
- Incorrect Sun brightness #311
- Sun and star rendering problems on certain devices #310
- cloud.frag contains unused values #309
- bugfix of slerp #308
- Improve b3d rendering speed #303
- Support transparent image in ImageIconEntity #306
- Support anchor mode in PointEntities #305
- Add lightweight rendering mode #304
- use Viewer.pick() instead of Viewer.pickWithRay() for StandardUIVIewer #302
- Support async/await syntax #301
Breaking Changes¶
0.9.4¶
Features and improvements¶
- Add Quaternion to GeoMath #288
- Issue regarding gaps at tile image boundaries #298
- Addition of ImageProvider switching functionality #295
- Bug report: Incorrect endFrame processing #293
- Support loading sprite images as SDF-enabled images #290
- Issue with target_clamp parameter evaluation in startFlyCamera function #297
- Issue regarding slow watch processing #292
- Proposal to implement Linter for code quality enhancement #291
Breaking Changes¶
- Upgrade to rollup 3 and update typescript version #273
- Improvement of AttributionController #274
- Changed WebGL version to WebGL2 and supported float buffer #289
- Issue regarding clouds image origin location modification. #296
0.9.3¶
Features and improvements¶
- add operation text and fix mouse control in example #284
- Update document generation to include wasm build for successful generation #285
Bug Fix¶
- Resolve build error in vectile/expression.ts #283
0.9.2¶
Features and improvements¶
- Support Vector tiles #238
0.9.1¶
Features and improvements¶
- WebGL2 Support #247
- Added functionality to measure processing time information for point cloud loading #248
- Web Mercator projection does not support drawing of Arctic and Antarctic regions #249
- Add PinEntity and ImageIconEntity to Mapray's Scene definition #251
- Add REST API to access Mapray Cloud Scene data in Mapray Cloud API #252
- Add new mathematical operations to the GeoMath class #254
- Make Material class public API and add support for integer uniform parameters #253
- Add ability to specify elevation and maximum level in FlatDemProvider#255
- Add API to toggle visibility of point clouds and B3D models and standardize their formats #256
- Add the ability to click on B3D models and retrieve their unique IDs via API #257
- Update build-related development tools #258
- Convert remaining JavaScript code to TypeScript #264
- Refactoring #266
- Improve the Debug App #267
- Add an Example for ImageIconEntity #268
- Change default branch name to main #272
Breaking Changes¶
- Added/fixed the features to specify elevation and maximum level to FlatDemProvider
- Pick function interface unification
Bug fix¶
- Improved timing to update URL hash #237
- Dragging near the poles in software is not intuitive #250
- Fix Clamp Calculation Bug in LineEntity #259
- URLHash update process #260
- Enabling CloudVisualize causes B3D to disappear #261
- visibility:false option not being applied when adding layers #262
- Camera does not animate when time parameter is set to 0 #263
0.9.0¶
Features and improvements¶
- Improve b3dtiles, building data #177
- Support texture in b3dtiles #185
- Add select and pick functions for point cloud #230
- Change the language used from ES6 to Typescript #227
- Add atmospheric expression #186
- Add new data visualization method for cloud in the sky #225
- Support star and moon in the night sky #226
- Support Mapray Cloud API for v2 #224
- Add new example and debug applications #229
Breaking Changes¶
- The old b3dtiles format in the prototype can no longer be loaded because b3dtiles has been updated to the latest format.
Bug fix¶
- Set default url for Mapray Cloud #213
0.8.8¶
Bug fix¶
0.8.7¶
Features and improvements¶
- Flat terrain at zero altitude #202, #203
- Change visibility of entity and ground in UI Package #205, #206
- Add GOCS_MATRIX transform mode to ModelEntity #201
0.8.6¶
Features¶
Improved¶
- Modified shader code in the surface #196
Bug fix¶
- Fixed incorrect package name issues #172, #173, #174
- Fixed incorrect link in documents #175, #176
- Fixed build error when generating API documents #178, #179
- Fixed CI build error in loal build 183
0.8.5¶
Features¶
Bug fix¶
0.8.4¶
Features¶
- Implement mouse event for each entities #105, #132
- Support overlay entity#145
- compute geographical distance between two GePoints#152, #155
- Supported smoothly changing camera position and roration#153, #155
- Supported to set position and rotation of camera on URL #154, #155
Improved¶
- Refactor classes which related to resource#146
- Upatate the style for jsdoc#159, #158
- Modified stroke of TextEntity#160, #161
Bug fix¶
- Animation isn't working with sigle KFLCorve#144,#143
- Couldn't rebind EasyBindingBlock #149, #150
- bugfix of depth hit test of anchor object #156, #157
0.8.3¶
Bug fix¶
0.8.2¶
Features¶
Improved¶
Bug fix¶
0.8.1¶
- Support glTF KHR_materials_unlit#115, #112
- Delete non-required packages and add required packages#113, #114
- Modify includiing modules when build dev mode #116
0.8.0¶
0.7.3¶
- fixed that glTF rendering is black and nolighting #97
0.7.2¶
Bug fix¶
- fixed deployment error for npmcom #89
0.7.1¶
Features¶
- Support ClampTpTerrian mode for all entities #60
- Support altitude mode and extruded mode for GeoJSON Loader #63, #69
- Add attribution controller #85
- Organize copyright notices #86
- Add UI Engine #78 #82
- Support Text stroke and background color in TextEntity #72
- Update Examples and tutorials #65, #68 #70
- Add CSS files and support to generate css file #84
Bug fix¶
Breaking Changes¶
Renamed height variable to altitude in GeoPoint.
#73
0.7.0¶
Features¶
- Altitude mode for each entites and schema of scene file #49
- GeoJSON Loader #46
- Support Polygon Entity #35
- Support Pin Entity #34
- Support ImageIcon Entity #56
- Support Mapray API #52
- Support Model entity #50
Breaking Changes¶
0.6.0¶
Features¶
-
Added options and methods to specify object visibility in mapray.Viewer
-
Options
- ground_visibility: Ground visibility
- entity_visibility: Entity visibility
-
Method
- setVisibility
- getVisibility
-
-
Supports loading a glTF model #18
- Supports new scene graph engine that manages 3D models #17 #18
- Added method to calculate KML compatible model transformation matrix in mapray.GeoMath #15
- kml_model_matrix()
- Add entity class mapray.ModelEntity #18
- Support rotate and scale to the transform property in mapray scene file #16
- Added some samples for Mapray JS #10
- Support CI with TravisCI #23
Changed¶
Details about changes to the mapray scene file¶
Rotate (heading, tilt, roll) and scale(scale) to the transform property of each entity
You can now optionally specify the properties.
The following is an example specification of the transform property.
It rotates 45 degrees to the right and makes the scale 10 times larger.
{
"type": "generic",
"transform": {
"cartographic": [139.8, 36.5, 12.3],
"heading": 45,
"scale": [10, 10, 10]
},
...
}
Added entity type corresponding to mapray.ModelEntity.
When using this type, specify model for the type property.
Refers to a model object registered in model_register by the ref_model property.
If there are multiple models in the referenced model object, you can use integers or names in index
It can be selected by specifying.
"model_register": {
"model-x": {
"link": "models/model-x.gltf",
"offset_transform": { "heading": 180, "tilt": -90 }
},
...
},
"entity_list": [
{
"type": "model",
"transform": { "cartographic": [140.0, 35, 0], "heading": 180 },
"ref_model": "model-x"
},
{
"type": "model",
"transform": { "cartographic": [140.1, 35, 0], "scale": 2.5 },
"ref_model": "model-x",
"index": 3
},
{
"type": "model",
"transform": { "cartographic": [140.2, 35, 0] },
"ref_model": "model-x",
"index": "scene-name-x"
},
...
]
0.5.1¶
Features¶
- Published to npm.com
0.5.0¶
- Published as open source software
- Supports layering of image provider
Changed¶
- Renamed Inou to Mapray JS
0.4.2¶
Features¶
- Add new application nextRambler to access the cloud
0.4.1¶
Bug fixed¶
- Fixed the issue with texture cache not being reduced (Occurred in Version 0.4.0).
- Fixed the issue that the
divtag in rambler.html was not closed.
0.4.0¶
Features¶
- Added destroy () method to destroy Inou.Viewer instance.
0.3.1¶
Features¶
- Added Inou Content Developer Guide in
doc/InouDeveloperGuide.md - Added sample source code
Turning
Fixed¶
- Fixed the issue that Inou.TextEntity method was private
- Fixed the issue that Inou.GenericEntity # setTransform () was not implemented
0.3.0¶
Features¶
- Added the function to get the intersection of ray and ground
- Inou.Ray
- Inou.Viewer#getRayIntersection()
- Added the method to get transformation matrix to camera
- Inou.Camera#getCanvasToView()
- Inou.Camera#getCanvasToGocs()
- Inou.Camera#getViewToCanvas()
- Added the method to get rays to the camera
- Inou.Camera#getCanvasRay()
-
Merged Inou.DemBinary and Inou.FlakeMesh cache into Inou.Globe
-
Rambler
- Added camera move operation with dragging
- Changed camera rotation operation from Drag to Ctrl + Drag
- Supports Microsoft Edge
0.2.0¶
Features¶
- Changed Inou.DemProvider of the DEM data provider from the abstract class to public class
- Added an option of dem_provider to Inou.Viewer constructor
- Added property of dem_provider to the Inou.Viewer instance
- Added implementation class Inou.StandardDemProvider of standard DEM data provider
Changed¶
- The interface of Inou.ImageProvider has been changed due to the change of Inou.DemProvider
- Added method
- ImageProvider#requestTile( z, x, y, callback )
- ImageProvider#cancelRequest( id )
- Deleted method
- ImageProvider#getTileAddress( z, x, y )
- Added method
0.1.0¶
Features¶
- Packaged inou engine to npm package
- Added Text Entity
Changed¶
- The scene schema of MarkerL