Affichage en relief de "12112022_0h07 Fracastorius"
La valeur du relief prend en compte l'échantillonnage de l'image. L'image 3D correspondant à l'affichage peut être téléchargée en cliquant sur l'icône "Appareil photo". Le chargement de l'image peut prendre plusieurs dizaines de secondes.
Vous pouvez déplacer le point de vue avec les boutons gauche et droit de la souris ainsi qu'avec la molette. Les effets 3D peuvent être approximatifs en particulier s'ils sont impactés par les aberrations de l'image initiale. Les données altimétriques qui ont servi de base de départ aux calculs des déplacements proviennent de : LROC
';
const win = window.open();
win.document.open();
win.document.write( page );
win.document.close();
}
// lancement après chargement texture
manager.onLoad = function() { // quand toutes les ressources sont chargées
console.log("manager.onLoad");
animate();
}
function init(){
renderer = new THREE.WebGLRenderer({gammaFactor : 0, gammaOutput:true, antialias:true});
renderer.setSize(1300, 850);
document.getElementById('container').appendChild(renderer.domElement);
// camera
let coeffOrtho = 1.2;
camera = new THREE.OrthographicCamera( -coeffOrtho*parseInt(document.getElementById('container').style.width)/2, coeffOrtho*parseInt(document.getElementById('container').style.width)/2,coeffOrtho*parseInt(document.getElementById('container').style.height)/2, -coeffOrtho*parseInt(document.getElementById('container').style.height)/2, 1, 1000000);
camera.position.y = -1302.2;
camera.position.z = 376.66666666667;
// scene
scene = new THREE.Scene();
scene.add(camera);
/*controls = new OrbitControls( camera, renderer.domElement );
controls.rotateSpeed = 0.8;
controls.zoomSpeed = 0.5;*/
controls = new TrackballControls( camera, renderer.domElement );
controls.rotateSpeed = 2.0;
controls.zoomSpeed = 1.4;
controls.panSpeed = 0.4;
//composer
composer = new EFFET.EffectComposer( renderer );
composer.addPass( new PASS.RenderPass( scene, camera ) );
sharpenEffect = new SHADER.ShaderPass( sharpenShader );
sharpenEffect.uniforms.width.value = 1300;
sharpenEffect.uniforms.height.value = 850;
composer.addPass( sharpenEffect );
/*passthrough = new SHADER.ShaderPass( GammaCorrectionShader);
passthrough.renderToScreen = true;
composer.addPass( passthrough );*/
img = new THREE.MeshStandardMaterial({
color:0xc0c0c0,
roughness : 0.8,
metalness:0,
precision:"highp",
side : THREE.DoubleSide , // les 2 faces sont visibles
map: textureLoader.load("../img_caa/1668934833-2022-11-11-2307_DS_gimp_stitch_v2.jpg"),
displacementMap: textureLoader.load( "../img3D/../img3D/fichier-3D-ID195-12112022_0h07 Fracastorius.jpg" ),
displacementScale: 34,
displacementBias : -(34/1.3 )
});
//img.map.minFilter = THREE.LinearFilter;
// plan
let plan = new THREE.Mesh(new THREE.PlaneGeometry(1130, 1532,847,1149),img);
scene.add(plan);
// lumiere ambiante
ambientLight = new THREE.AmbientLight(0xffffff,1.35);
scene.add(ambientLight);
gui = new GUI({ autoPlace: false, width:500 });
document.getElementById('up').appendChild(gui.domElement);
parameters =
{
disp: 34,
lumiere : 1.35,
sharpen : false
};
let dispS = gui.add( parameters, 'disp' ).name('facteur 3D').min(0).max(34*3).step(1).listen();
dispS.onChange(function(value) { //console.log( "value = "+ value);
img.displacementScale=value;
img.displacementBias=-value/1.3;
});
let lum = gui.add( parameters, 'lumiere' ).name('Lumière').min(1).max(3).step(0.05).listen();
lum.onChange(function(value) { //console.log( "value = "+ value);
ambientLight.intensity=value;
});
let sharpenGui = gui.add( parameters, 'sharpen' ).name('Renforcement vue').listen();
sharpenGui.onChange(function(value) {
if ( !value) {
composerActif = false;
}
else {
composerActif = true;
}
});
// snapshot
document.getElementById("snapshot").addEventListener( 'click', function(){SnapShot()}, false );
}// fin init
function animate(){
requestAnimationFrame( animate );
let delta = clock.getDelta();
controls.update(delta);
//controls.update();
if( !composerActif )
renderer.render(scene,camera);
else
composer.render();
}