arcgis sceneView 风场

上次的风场在球面不是很好用, 这次给大家带来一个球面用的风场。

```html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="initial-scale=1,maximum-scale=1,user-scalable=no">
<title>Create a local scene - 4.19</title>
<style>
html,
body,
#sss {
height: 100%;
width: 100%;
}

#homeDiv {
left: 15px;
top: 130px;
z-index: 35;
position: absolute;
}
</style>


<script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r124/three.js"></script>
<link rel="stylesheet" href="https://js.arcgis.com/4.19/esri/themes/light/main.css" />
<script src="https://js.arcgis.com/4.19/"></script>

<script>


require([
"esri/Map",
"require",
"esri/request",
"esri/views/3d/externalRenderers",
"esri/config",
"esri/Basemap",
"esri/config",
"esri/geometry/Extent",
"esri/geometry/SpatialReference",
"esri/views/SceneView",
"esri/views/MapView",
"esri/layers/FeatureLayer",
"esri/layers/ImageryLayer",
"esri/layers/TileLayer",
"esri/layers/SceneLayer",
"esri/layers/ElevationLayer",
"esri/renderers/SimpleRenderer",
"esri/symbols/ObjectSymbol3DLayer",
"esri/symbols/IconSymbol3DLayer",
"esri/symbols/PointSymbol3D",
"esri/tasks/QueryTask",
"esri/tasks/support/Query",
"esri/widgets/Home",
"dojo/domReady!"
], function(Map,require,request,externalRenderers,esriConfig,Basemap,esriConfig,Extent,SpatialReference, SceneView,MapView, FeatureLayer,ImageryLayer,TileLayer,SceneLayer,ElevationLayer,
SimpleRenderer, ObjectSymbol3DLayer,
IconSymbol3DLayer, PointSymbol3D, QueryTask, Query, Home
) {

 


var map = new Map({
basemap: "gray",
});

var sceneView = new SceneView({
container:"sss",
viewingMode: "global",
map:map,
})

let view;
class ParticleSystem {
constructor(properties) {

this.numParticlesInTrail = 32;
this.numParticleStreams = 1024 * 1024 / this.numParticlesInTrail;
this.useLines = true;
this.timestep = 1 / 60;

this.totalNumParticles = this.numParticleStreams * this.numParticlesInTrail;
this.particlePotSize = 1 << Math.ceil(Math.log(Math.sqrt(this.totalNumParticles)) / Math.LN2);

this.time = 0;
this.gl = properties.gl;
this.view = properties.view;
this.extent = properties.extent;
this.velocityFieldTexture = properties.velocityField;
this.reprojectionTexture = properties.reprojection;
this.initializeResources();
}

initializeResources() {
this.initializeSimulationFBO();
this.initializeQuadGeometryVBO();
this.initializeParticleGeometryVBO();
this.initializePrograms();
this.initializeParticles();
}

更多参考https://xiaozhuanlan.com/topic/4601892735







posted @ 2022-01-20 16:55  haibalai  阅读(133)  评论(0编辑  收藏  举报