|
|
@@ -565,6 +565,31 @@ export default class ModelManager extends THREE.EventDispatcher{
|
|
|
}
|
|
|
}
|
|
|
model.structureOpacity = data.structureOpacity || 1
|
|
|
+
|
|
|
+ { //替换成4k 暂时没有不同材质共用贴图的情况,不考虑,一般不同mesh对应不同材质和贴图
|
|
|
+ let materials2 = []
|
|
|
+ model.traverse(e=>{
|
|
|
+ if(e.material && !materials2.includes(e.material)){
|
|
|
+ materials2.push(e.material )
|
|
|
+ }
|
|
|
+ })
|
|
|
+ materials2.forEach(mat=>{
|
|
|
+ let src = Common.joinUrl(model.props.prefixUrl, 'a-4k'+(materials2.length>1? '-'+mat.name:'')+'.jpg')
|
|
|
+ texLoader.load(src, (tex)=>{
|
|
|
+ console.log('替换4k')
|
|
|
+ tex.colorSpace = 'srgb'
|
|
|
+ tex.anisotropy = settings.aniso
|
|
|
+ model.materials_.forEach(mat_=>{
|
|
|
+ if((mat_.originName || mat_.name) == mat.name){
|
|
|
+ mat_.map = tex;
|
|
|
+ }
|
|
|
+ })
|
|
|
+ viewer.dispatchEvent('content_changed')
|
|
|
+ })
|
|
|
+ })
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
model.traverse(e=>{
|
|
|
//console.log('traverseName', e.name)
|
|
|
if(e.material){
|
|
|
@@ -578,10 +603,11 @@ export default class ModelManager extends THREE.EventDispatcher{
|
|
|
let name = "copy_"+a
|
|
|
let mat = materials.find(e=>e.name == name)
|
|
|
if(!mat){
|
|
|
- mat = materials.length ? materials[0].clone() : e.material
|
|
|
+ mat = materials.length ? materials[0].clone() : e.material
|
|
|
materials.push(mat)
|
|
|
mat.emissive.set(data.materials[a].emissive)
|
|
|
mat.emissiveIntensity = 0
|
|
|
+ mat.originName = mat.name
|
|
|
mat.name = name
|
|
|
mat.emiss_texs = data.materials[a].tex || []
|
|
|
}
|
|
|
@@ -646,12 +672,13 @@ export default class ModelManager extends THREE.EventDispatcher{
|
|
|
|
|
|
|
|
|
|
|
|
-
|
|
|
+
|
|
|
|
|
|
model.materials_.forEach(material=>{
|
|
|
//material.premultipliedAlpha = true
|
|
|
//material.glslVersion = THREE.GLSL3
|
|
|
-
|
|
|
+
|
|
|
+
|
|
|
|
|
|
material.initialOpacity = material.opacity
|
|
|
|
|
|
@@ -797,7 +824,7 @@ export default class ModelManager extends THREE.EventDispatcher{
|
|
|
);
|
|
|
|
|
|
//console.log(shader.vertexShader)
|
|
|
- console.log(shader.fragmentShader)
|
|
|
+ //console.log(shader.fragmentShader)
|
|
|
//console.log(shader.uniforms)
|
|
|
|
|
|
|