|
@@ -145,8 +145,7 @@
|
|
|
this.resetControl = resetControl;
|
|
|
function init() {
|
|
|
|
|
|
- scene.background = new THREE.Color("#F2F2F2");
|
|
|
- scene.environment = new THREE.Color("#F2F2F2");
|
|
|
+ scene.background = new THREE.Color("#FFFFFF");
|
|
|
|
|
|
// 创建相机位置
|
|
|
camera = new THREE.PerspectiveCamera( 80, window.screen.width / window.screen.height, 0.1, 10000 );
|
|
@@ -155,19 +154,34 @@
|
|
|
that.camera = camera;
|
|
|
|
|
|
// 环境光会均匀的照亮场景中的所有物体
|
|
|
- const ambientLight = new THREE.AmbientLight(0xFFEFE0, 1.48 );
|
|
|
- scene.add( ambientLight );
|
|
|
+ const ambientLight = new THREE.AmbientLight(0xFFEFE0, 3);
|
|
|
+ scene.add(ambientLight);
|
|
|
//平行光
|
|
|
- const light = new THREE.DirectionalLight(0xFFF8E5, 1.96 );
|
|
|
- light.position.set(-14.8, 9.188, -7.448); //default; light shining from top
|
|
|
+ const light = new THREE.DirectionalLight(0xFFF8E5, 3);
|
|
|
+ light.position.set(-3, 9, 3); //default; light shining from top
|
|
|
+ light.castShadow = true; // default false
|
|
|
+ // 默认情况下光投影相机区域是一个长宽高为10x10x500的长方体区域,光源投射方向为通过坐标原点
|
|
|
+ light.shadow.camera.left = -100; // default
|
|
|
+ light.shadow.camera.right = 100; // default
|
|
|
+ light.shadow.camera.top = 100; // default
|
|
|
+ light.shadow.camera.bottom = -100; // default
|
|
|
+
|
|
|
+ light.shadow.mapSize.width = 8192; // default
|
|
|
+ light.shadow.mapSize.height = 8192; // default
|
|
|
+ // light.shadow.camera.near = 0.1; // default
|
|
|
+ // light.shadow.camera.far = 500; // default
|
|
|
+
|
|
|
+ // light.shadow.bias = -0.01;
|
|
|
+ // light.shadow.radius = 1;
|
|
|
+ // light.shadow.darkness = 1; // 设置阴影强度为0.5
|
|
|
scene.add(light);
|
|
|
//antialias 这个值得设置为false,不然IOS上截图会失效
|
|
|
renderer = that.renderer = new THREE.WebGLRenderer({
|
|
|
canvas:canvas3d,
|
|
|
alpha: true,
|
|
|
- // 如果想保存three.js canvas画布上的信息,注意设置preserveDrawingBuffer
|
|
|
- preserveDrawingBuffer: true,
|
|
|
});
|
|
|
+ renderer.shadowMap.enabled = true;//产生阴影
|
|
|
+ renderer.shadowMap.type = THREE.PCFSoftShadowMap; // 阴影属性
|
|
|
renderer.outputEncoding = THREE.sRGBEncoding;
|
|
|
renderer.outputColorSpace = THREE.SRGBColorSpace;
|
|
|
// renderer.toneMappingExposure = 0.1;//色调映射的曝光级别。默认是1
|
|
@@ -518,7 +532,7 @@
|
|
|
}
|
|
|
if(this.curHouseObj){
|
|
|
const spaceDetail = this.curHouseObj;
|
|
|
- const spaceList =spaceDetail.houseJson;
|
|
|
+ const spaceList = spaceDetail.houseJson;
|
|
|
// 交换centerX, centerY;上一页面已经处理过了,这里不在需要处理
|
|
|
for (let index = 0; index < spaceList.length; index++) {
|
|
|
var element = spaceList[index];
|
|
@@ -536,6 +550,7 @@
|
|
|
element.wallMoveValue = "[0,0,0,0]"
|
|
|
this.spaceList.push(element);
|
|
|
this.wallIds.push(element.wallId);
|
|
|
+ this.wallList.push(JSON.parse(element.wallList));
|
|
|
if(element.isSelected){ // 默认选中空间
|
|
|
this.curSpaceObj = element;
|
|
|
}
|
|
@@ -552,13 +567,24 @@
|
|
|
},
|
|
|
// 获取墙体数据
|
|
|
async getHouseTypeSpaceWalls(){
|
|
|
- let data = {id:this.wallIds}
|
|
|
- const res = await requestConfig('getHouseTypeSpaceWalls', data, true);
|
|
|
- console.log("墙体数据:", res.list)
|
|
|
- let wallList = [];
|
|
|
- if(res.success){
|
|
|
- wallList = this.wallList = res.list;
|
|
|
- }
|
|
|
+ // let data = {id:this.wallIds}
|
|
|
+ // const res = await requestConfig('getHouseTypeSpaceWalls', data, true);
|
|
|
+ // console.log("墙体数据:", res.list)
|
|
|
+ // let wallList = [];
|
|
|
+ // if(res.success){
|
|
|
+ // wallList = this.wallList = res.list;
|
|
|
+ // }
|
|
|
+ let wallList = [];
|
|
|
+ if(this.wallList && this.wallList.length>0){
|
|
|
+ wallList = this.wallList;
|
|
|
+ }else{
|
|
|
+ let data = {id:this.wallIds}
|
|
|
+ const res = await requestConfig('getHouseTypeSpaceWalls', data, true);
|
|
|
+ console.log("墙体数据:", res.list)
|
|
|
+ if(res.success){
|
|
|
+ wallList = this.wallList = res.list;
|
|
|
+ }
|
|
|
+ }
|
|
|
let wallArr = []
|
|
|
for (let index = 0; index < wallList.length; index++) {//每个空间对应一个数据
|
|
|
let element = JSON.parse(wallList[index].wallJson);
|