|
@@ -62383,12 +62383,25 @@ void main() {
|
|
|
|
|
|
Shaders["basicTextured.fs"] = `varying vec2 vUv;
|
|
Shaders["basicTextured.fs"] = `varying vec2 vUv;
|
|
uniform float opacity;
|
|
uniform float opacity;
|
|
-uniform sampler2D map;
|
|
|
|
|
|
+
|
|
|
|
+uniform vec3 color;
|
|
|
|
+#ifdef HasMap
|
|
|
|
+ uniform sampler2D map;
|
|
|
|
+#endif
|
|
|
|
|
|
|
|
|
|
void main() {
|
|
void main() {
|
|
- vec4 texColor = texture2D(map, vUv);
|
|
|
|
- gl_FragColor = vec4(texColor.rgb, texColor.a * opacity);
|
|
|
|
|
|
+
|
|
|
|
+ #ifdef HasMap
|
|
|
|
+ vec4 texColor = texture2D(map, vUv);
|
|
|
|
+ gl_FragColor = texColor * vec4(color, opacity);
|
|
|
|
+ #else
|
|
|
|
+ gl_FragColor = vec4(color, opacity);
|
|
|
|
+ #endif
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ //gl_FragColor = vec4(texColor.rgb, texColor.a * opacity);
|
|
|
|
+
|
|
}
|
|
}
|
|
`;
|
|
`;
|
|
|
|
|
|
@@ -115796,26 +115809,29 @@ ENDSEC
|
|
//MergeEditor.updateEdgeStrength()
|
|
//MergeEditor.updateEdgeStrength()
|
|
}else {
|
|
}else {
|
|
//model.traverse(e=>e.material && setOp(e, opacity))
|
|
//model.traverse(e=>e.material && setOp(e, opacity))
|
|
- model.traverse(mesh=>{
|
|
|
|
|
|
+ model.traverse(mesh=>{
|
|
if(mesh.material){
|
|
if(mesh.material){
|
|
-
|
|
|
|
- mesh.material.opacity = opacity;
|
|
|
|
- if(opacity<1){
|
|
|
|
- mesh.material.transparent = true;
|
|
|
|
- if(model.isPointcloud){
|
|
|
|
- mesh.changePointOpacity(opacity);
|
|
|
|
- }else {
|
|
|
|
- mesh.material.opacity = opacity;
|
|
|
|
- }
|
|
|
|
|
|
+ if(mesh.material.originOpacity == void 0 ){
|
|
|
|
+ mesh.material.originOpacity = mesh.material.opacity;
|
|
|
|
+ }
|
|
|
|
+ mesh.material.opacity = mesh.material.originOpacity * opacity;
|
|
|
|
+
|
|
|
|
+ if(mesh.material.opacity<1){
|
|
|
|
+ mesh.material.transparent = true;
|
|
|
|
+ /* if(model.isPointcloud){
|
|
|
|
+ mesh.changePointOpacity(realOpacity)
|
|
|
|
+ }else{
|
|
|
|
+ mesh.material.opacity = realOpacity
|
|
|
|
+ } */
|
|
|
|
|
|
mesh.renderOrder = Potree.config.renderOrders.model+1;
|
|
mesh.renderOrder = Potree.config.renderOrders.model+1;
|
|
- mesh.material.depthWrite = false;
|
|
|
|
|
|
+ //mesh.material.depthWrite = false
|
|
}else {
|
|
}else {
|
|
mesh.material.transparent = false;
|
|
mesh.material.transparent = false;
|
|
mesh.renderOrder = Potree.config.renderOrders.model;
|
|
mesh.renderOrder = Potree.config.renderOrders.model;
|
|
- mesh.material.depthWrite = true;
|
|
|
|
|
|
+ //mesh.material.depthWrite = true
|
|
}
|
|
}
|
|
-
|
|
|
|
|
|
+ mesh.material.depthWrite = mesh.material.opacity>0.3;
|
|
}
|
|
}
|
|
});
|
|
});
|
|
}
|
|
}
|
|
@@ -124202,8 +124218,9 @@ ENDSEC
|
|
|
|
|
|
super( Object.assign({},{
|
|
super( Object.assign({},{
|
|
uniforms:{
|
|
uniforms:{
|
|
- map: { type: 't', value: o.map },
|
|
|
|
- opacity : {type:'f', value : o.opacity == void 0 ? 1 : o.opacity }
|
|
|
|
|
|
+ color: {type:'v3', value: o.color || new Color("#FFF")} ,
|
|
|
|
+ map: {type: 't', value: o.map },
|
|
|
|
+ opacity : {type:'f', value : o.opacity == void 0 ? 1 : o.opacity }
|
|
},
|
|
},
|
|
vertexShader: Shaders['basicTextured.vs'],
|
|
vertexShader: Shaders['basicTextured.vs'],
|
|
fragmentShader: Shaders['basicTextured.fs']
|
|
fragmentShader: Shaders['basicTextured.fs']
|
|
@@ -124230,8 +124247,12 @@ ENDSEC
|
|
|
|
|
|
set map(o){
|
|
set map(o){
|
|
this.uniforms.map.value = o;
|
|
this.uniforms.map.value = o;
|
|
-
|
|
|
|
-
|
|
|
|
|
|
+ if(o){
|
|
|
|
+ this.defines.HasMap = '';
|
|
|
|
+ }else {
|
|
|
|
+ delete this.defines.HasMap;
|
|
|
|
+ }
|
|
|
|
+ console.log('hasMap', !!o, this.name );
|
|
}
|
|
}
|
|
get map(){
|
|
get map(){
|
|
return this.uniforms.map.value
|
|
return this.uniforms.map.value
|